With the lack of a clear roadmap for MFC it hasn’t been very clear for me and a lot of developers what the future of MFC will look like. For example, when I examine the statistics from my website, I see that a lot of people find my website by entering strings like “Longhorn and MFC” and “MFC not developed anymore” on a search engine.
We’ve been hearing things like “Managed code and Windows Forms are the future, you should move over to it as soon as you can”, but the .NET Framework still lacks a lot of features that MFC has. In addition we’ll soon have Avalon, so moving to Windows Forms may not be a good idea for the long term. And all Microsoft has been talking about recently are Windows Forms and Avalon, with little information being released about the future of MFC.
I contacted Somasegar, Corporate Vice President for the Developer Division at Microsoft, and asked him about the future of MFC. I’ve also been told that more information will be provided soon on the MSDN website. Below is Somasegar’s response:
With Visual Studio 2005, we have made some very significant investments in MFC. Our focus for this release has been three fold:
- .NET integration
One of the key features coming from the libraries team this release is the secure CRTs. The updated runtimes now eliminate many of the potential attack vectors found in previous versions of the libraries. We have replaced all of the unsafe usages of the CRT from within MFC with the safe versions of the at-risk functions.
In addition to using the SafeCRT from within MFC, we have also “fusionized” MFC. Fusion substantially solves many problems related to the classical “dll hell” situation. By fusionizing MFC, we now support side-by-side installations of MFC. Fusion also enables us to much more effectively service these libraries.
MFC now fully supports the use of .NET from within any MFC application. Not only can one compile any C++ code to .NET and leverage any .NET api from within MFC, but, we also now support hosting of WinForms components and windows within MFC. Developers can now leverage the advanced WinForm’s designers and the productivity of the .NET frameworks with the advanced features of MFC.
We have fixed and addressed more defects in this release of MFC than we have ever done in any release of MFC. Building on MFC today will not only yield more secure applications, but more reliable and stable apps as well.
Future of MFC (beyond Visual Studio 2005)
MFC continues to be the most popular C++ library in use to day (by far). It is unique in its feature breadth as well. There remains many features in MFC that aren’t found in other frameworks (including .NET). With Visual Studio 2005, we have made it possible for the C++ developer to leverage existing C++ code, the strengths of MFC, and the strengths of .NET all within a single application.
Going forward, we expect to continue to enhance the integration between .NET and MFC. As Longhorn releases to the market, it is our intention to continue to support Longhorn’s advancements in MFC. Developers can look forward to seeing MFC updated to leverage the latest native and managed API’s and frameworks.
As an MFC developer, you have more access to more frameworks than any other type of developer on the platform. You can leverage the best from all worlds as it makes sense to do so from a business perspective. We fully expect to support this capability into the foreseeable future.