Microsoft should make MFC open source
This suggestion is migrated to Developer Community. Please use below link to view the current status.
MFC is still used in several C++ legacy projects (including very large enterprise applications) still active in maintenance mode.
With MFC open source, the community and Microsoft could submit new code and patches while Microsoft could monitor the quality of the submitted code and support an official branch.
Would something similar to open-sourcing ASP.NET work fine for MFC?
Scott Guthrie sums up an interesting approach when he announced the open-sourcing of ASP.NET MVC, Web API and Razor:
“[…] Doing so will enable a more open development model where everyone in the community will be able to engage and provide feedback on code checkins, bug-fixes, new feature development, and build and test the products on a daily basis using the most up-to-date version of the source code and tests.”
If you can't do it, then we do it
Filip Kunc commented
Incomplete sources to MFC are available with Visual Studio. However it is not possible to build from them a functional library like in the past. It is very hard to workaround MFC from application layer for fixes regarding Windows 10 Fall Creators Update issue, DPI scaling (per monitor) and others.
If you have bought microsoft visual c++ then mfc is opensource.
MFC is old but still viable.It seems that Qt is much more expanded over the years than MFC. For example charts and graphs would be a nice addition to MFC, besides support for STL (e.g. overloads which use std::(w)string) and modern C++. Alternatively they could hire BCGSoft to do the work for them. They produce good looking end results though their documentation is virtually absent and their source code a bit sloppy.
Make it available via NuGet to
Moritz Leutenecker commented
Hello Eric, please consider releasing the WinCE versions of MFC (at least ARM) as open source too!
That would help very much in creating industry custom devices. Because at the moment Microsoft does not seem to have any codebase apart from MFC where I can create native C++ Applications and deploy them to Windows XP, 7, 8, 10 and WinCE 5, 6, 6.5, 7 and 2013 !
I can target PCs, Industry automation devices, HMI Panels, Barcode Scanner devices etc...
MFC does still support this till today! MFC should be the new UWP as it already serves...
Greetings, Moritz Leutenecker
Edwig Huisman commented
MFC is still widely used in many legacy and even new desktop applications. It's about the only real way to build quickly reactive components integrated with the MS-Windows API.
Please, please put the source - and the missing parts and build scripts - in open source and it will fly from there.......
We (the community) will expand it from there......
Thanks for your suggestions and comments, we are working on this idea...
Vitold S commented
I thhink, that problem in another aspect. Now MS-Windows is common and base platform on most computers but developer support in Microsoft is tottaly ugly.
1. WinAPI have no common way to create new and modern component like component menu like office and etc. Don't tell me about use COM it tottaly hard technology and it really hard for inject to old and plain application and it make hard-on-empty-place on old application. (No bridge between new component, forms and etc. to old application). Broken backward compatibility!!!! This is first microsoft aspect on MS demo.
2. MFC is "manager solution" to resolv problem but tottaly does not make really resolv problem. it create pattern and does not resolv common problem LTS and new modern techonolgy.
3. QT / GTK and another platform it eazy to use and eazy to learn and tottaly support more than 10-20 years it amazing solution for any aspect of develop XML, GUI and etc. Lost platform corner.
4. Next point is always rewraite anythink on Microsoft every day, week, year, every version, 2 year and no WinAPI, 2 year no MFC, 2 year no Widnows Form, 2 year and no WPF? whats next ??? Microsoft managers doens not want to create LTS component and make it support always.
5. When MS lost this point most developer start using wrapper about GUI and as result migrate to more ABI, API stable platform. When you does not understand this you lost all developer and decrease application count and lost users. This is we can see now.
They won't open source MFC if they don't do the same with VB6!
Ofek Shilon commented
The online voices are inevitably louder about newer and shinier technologies, but I have reason to believe that MS telemetry indicates that MFC users are far from being a minority. For good reasons too: beyond the heavy burdeon of legacy – MFC is still the only native UI framework properly integrated into VS (integrated visual editor).
It seems nearly official that MS devotes just enough dev resources to keep MFC barely alive, so opening it up to the community seems an obvious win-win.
(and beyond makefiles, quite a few internal sources are still missing. The shipped sources are far from buildable).
David Ching commented
Is there a lot of backlog of MFC tasks, and is MS interested in getting the user community involved with it? If so, then open sourcing makes sense. But if MS simply wants MFC to die, the faster to move to their latest desktop-strategy-du-jour (UWA previously Windows Store app previously Metro app), then it would be better to simply release all the source code. (@Christophe, there seems to be some missing makefiles so that it is not possible to build MFC, you can only access the source code e.g. during debugging.) So at the least, it should be made buildable again.
Christophe Pichaud commented
We already have the source code for MFC and ATL. What do you want more ?
Does the community approach will bring something more ? I am not sure. We are in legacy WIndows development. No more space to make MFC/ATL under the starlight. It exists but Microsoft have no intention to invest anymore here. It is a pity but the rules are clear...