Microsoft Foundation Classes

The first cut at these was a disaster. Objects would get out of synchronization with state held by MicrosoftWindows whenever the latter was called directly. More recent versions leave nothing of value in the C++ "objects".

MFC is ("was") justifiably held up as a cautionary tale regarding a very long list of OO sins and DesignSmells. Most noticeably, it leaves its private parts hanging out in public for others to play with.

The cautionary tale here is not the end-user's, it is MicroSoft's. They bear the burden of their own bad design decisions (even as they carve these in stone) by paying their own engineers to fix and patch while maintaining backwards compatibility with all the client applications.

MFC also notoriously supported the VisualCeePlusPlus ClassWizard, which many newbies used to create objects instead of classes.

See WindowsTemplateLibrary.

See http://www.xpsd.org/cgi-bin/wiki?TfuiForMfc for TestDrivenDevelopment + WorkingEffectivelyWithLegacyCode + TestFirstUserInterfaces for an MFC GraphicalUserInterface.


EditText of this page (last edited November 13, 2014) or FindPage with title or text search