In the beginning, there was MFC. For developers wanting to write robust, fast, and flexible double-clickable Windows applications, MFC was the framework of choice. As a class-based framework, MFC made it easier to create applications. Using MFC is far easier than using the raw API.
Over the years, MFC has matured into a popular framework. However, like a snowball growing as it careens down a mountainside, MFC has managed to gain a lot of weight over the years. In addition, MFC is tightly coupled to itself. For example, buying into one part of the framework architecture often means investing one's development attention towards other parts of the framework that might cloud the issues involving the task at hand. For instance, electing to use MFC's Object Linking and Embedding support means using MFC's Document/View architecture.
Then while MFC was maturing, the Component Object Model became a prominent fixture within the Windows software development community, spurring the development of a framework named the Active Template Library (ATL). While ATL is mostly useful for writing COM servers very quickly, the addition of ActiveX Control Support to ATL in 1997 introduced a windowing framework within ATL.
For developers wishing to build single, double-clickable applications, MFC provides a complete framework. On the other hand, ATL is poised as a potential application development framework for lighter-weight applications. The only problem is that ATL's windowing support is oriented toward controls and not toward whole applications. Developers wishing a smaller, more modern, templatized approach to Windows development can use ATL combined with the Stingray Foundation Library (SFL) classes.
Copyright © Rogue Wave Software, Inc. All Rights Reserved.
The Rogue Wave name and logo, and Stingray, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.