Talk:Microsoft Foundation Class Library
From Wikipedia, the free encyclopedia
Contents |
[edit] Down on MFC
While this article describes MFC's positive sides, what it doesn't say is that MFC is an overgrown, macro-rigged, unmaintainable collection of old code that breaks all OOP rules, ignores C++ coding guidelines and must be hacked to write anything more complex than a demo application. Can someone say that in a polite way? - Sikon 13:43, 9 September 2005 (UTC)
- Why? Wasn't your way polite enough? ;-) I agree that MFC tends to incredibly bloat code, but I couldn't come up with a NPOV way of putting it. — Frecklefoot | Talk 16:10, September 9, 2005 (UTC)
-
- I agree that MFC bloats code, but I'd blame C++ as much as Microsoft. C++ isn't really suited for the Windows messaging model. The way Delphi does things is a lot more compact, because the language is written around the windows system.Westprog 12:17, 2 February 2007 (UTC)
[edit] The page is Unstructured
The page is unstructured. Please group the info into various sections like history, advantages, criticisms etc. In that way, both positive and negative points can be presented in a npov way. --Soumyasch 09:19, 26 February 2006 (UTC)
[edit] still on MFC....
It should be pointed out that similar wrappers exist that are cross platform ie GTK QT wxWidgets etc... and make a point that even if MS is still supporting and patching MFC (last alterations in VC 8.0) resources and new up-to-date information and examples are becoming scarce as people start to using .NET as MS resources (or supported by) are realocated to promote the .NET framework (in a not so near future a C++ programer will be an oddity, one capable of doing something complex with MFC would be a rarety)...
[edit] plural or singular
just thought about, whether I have to set the verbs in the german article in plural, because the C don't stands for class but classes. Then I noticied that here also is written of "the MFC was..."
- "MFC" is the name of a library, so it is singular in that usage. If you're talking about the classes of the library, I would say "MFC" is plural because there is more than one class.
- Ah, that makes sense for me.
- I linked with the MFC library.
- You can use the MFC classes to solve your problem.
- At that point, you start getting into wondering if the words in the sentence are redundant to the acronym.
- --Mikeblas 21:17, 6 June 2006 (UTC)
[edit] Discrepancies between English article and other language articles
This article is very different from other language versions of wikipedia. For example, from the French version:
The Microsoft Foundation Class (abridged in MFC) are a set of classes in C++ encapsulating the Win32 API (written in C) of Windows. His/her/its detractors blame him for his/her/its lack of abstraction of the Win32 API, as well as his/her/its lack of encapsulation, while his/her/its aficionados appreciates the possibility of has....
Original:
Les Microsoft Foundation Class (abrégé en MFC) sont un ensemble de classes en C++ encapsulant l'API Win32 (écrite en C) de Windows. Ses détracteurs lui reprochent son manque d'abstraction de l'API Win32, ainsi que son manque d'encapsulation, tandis que ses aficionados apprécient la possibilité d'a
http://fr.wikipedia.org/wiki/Microsoft_foundation_class
Obviously none of this is mentioned in this article.
Note: the translation is not mine. My French, which was once nearly fluent, now sucks. I used the Babylon translation, hence the rather awkward result. But the basic content is clear.
The Italian & German articles also mention controversy. Not being a programmer, and thus not knowing the history of MFC, I can't judge whether the other articles mention of "controversy" is irrelevant or POV; or, conversly, if the English article is incomplete by not mentioning it.
It is interesting that this is not noted in the English version.
PainMan 12:56, 15 August 2006 (UTC)
In the French, "Microsoft Foundation Class" is cited by the official name of the library, but interpreted (though not consistently) as grammatically plural, since it refers to a plurality of classes. The his/her/its construction is an artificial one, since in this case, it's referring to MFC, which is neuter, so "his" and "her" aren't applicable; it should be read as "its." "Abriged in" is a poor choice of words, used here to mean "abbreviated," referring to the acronym, "MFC". "Him" should be "it," probably mistranslated due to an inadequacy in computer translation. I don't know what generated the conflict in grammatical number between "aficionados" (plural) and "appreciates" (single). The translator certainly ought to have recognized the latter as the verb of which the former is the subject. No other parsing makes sense in the context.D021317c 01:39, 7 February 2007 (UTC)
[edit] Difficult to understand, defeats the purpose
This wikipedia entry is written in such a way that only people who already know the content will be able to understand the article, which seems to defeat the purpose.
[edit] Would?
"(many of these features – exceptions or run time type identification, for example – were not built into Microsoft's compiler at the time, but would appear in future versions)" I suspect "would appear" is used here to mean "did appear." D021317c 01:13, 7 February 2007 (UTC)
- I guess you're right. -- Mikeblas 11:16, 7 February 2007 (UTC)
[edit] Some MFC Listed Advantages Need to Be Justified
C++ wrapper types for many common Windows resource-related data types that provide automatic closure of handles when the objects creating them go out of scope.
Not an advantage to .NET, since .NET provides a garbage collector.
provides utility classes such as CString and collection classes, which are usable even by console applications
.NET also provides such classes
capable IDE (integrated development environment) for debugging and code development
Many of the alternatives to MFC use the same IDE - Visual Studio, so how is this an advantage?
relatively small gui executables
Compared to what? (Definately not .NET or WinAPI)
alternatives to MFC either must link with that vendor's library, or supply a .dll
MFC uses .dlls included in the Windows OS. How is this an advantage?
integration with form designer to position controls
Not an advantage, since alternatives can take advantage of this development tool in the Visual Studio IDE (Including WinAPI and .NET).
large amount of resources available, from books to websites to sample code
Not an advantage also. The same is true for alternatives.
fast compilation speed
Compared to what? Not true when compared to .NET.
similar code base (but typically not completely the same) can be used for desktop and Pocket PC applications
.NET has the compact framework library for Pocket PCs.
--Jfrascencio 12:14, 2 March 2007 (UTC)
- Some of your comparison results are off. MFC compiles to optimized native code, for example; while .NET compiles to IL, which is NGENed or JITted to native code; neither process results in code that is always as efficient as optimized native code. Close, sometimes; but not quite there yet. Comparing equal apps will show that the MFC app takes less memory, load faster, requires fewer (and smaller, in total) disk files, and so on; than a WinForms-based .NET applicaiton.
- What you might be neglecting is that the comparison is to other tools in general. While I think you've not sufficiently analyzed the comparisons to .NET, the advantages listed here aren't striclty about comparing MFC to .NET; they're about comparing MFC use to other alternatives. -- Mikeblas 13:40, 2 March 2007 (UTC)
- OTOH, it looks like some of the listed Disadvantages have some serious problems:
-
- Does not provide a complete abstraction layer interface to the underlying Windows API, requiring custom Windows API code for those portions not covered by MFC.
- Not providing a complete abstraction layer is actually an advantage. A complete abstraction layer would pin the developer to MFC, and it would be impossible for MFC to completely and currently wrap every single API in an efficient manner. Bugs in MFC would leave the programmer with literlaly nowhere to go.
-
- .NET does a much better job at providing an object oriented, complete, natural, and well organized API.
- This is simply false. Bugs and shortcomings in the .NET wrappers and reimplementations require far more intervention an rewrite than similar wrappers in MFC. Since .NET doesn't ship source code, developers are helpless to analyse or remedy problems in the frameworks.
- Other bullets here are full of spin. It only makes sense, for example, that the Pocket PC versions of MFC aren't compatible with the desktop versions becasue the Pocket PC OS isn't fully compatible with the desktop OS.
- -- Mikeblas 14:04, 2 March 2007 (UTC)
[edit] WTF is the Book List For?
Why do we need a list of books about MFC? Why not on the Windows page put every single book about Windows? Computer Guru 19:32, 6 March 2007 (UTC)