How important is MFC?
-
I am a control theorist with many years of programming experience. I can code in C/C++, Java, FORTRAN, VB6, VB.NET and C#. However, all this time I have avoided Visual C++ and MFC. Now I have a project that really needs the speed and flexibility of an unmanaged platform on Windows 7. It will be a realtime simulation with DirectX 11 graphics. My question is, where should I start? Is MFC still relevant? What is ATL? What are my choices at this juncture? I am a very quick learner and I am willing to learn anything. Where should I start?
-
I am a control theorist with many years of programming experience. I can code in C/C++, Java, FORTRAN, VB6, VB.NET and C#. However, all this time I have avoided Visual C++ and MFC. Now I have a project that really needs the speed and flexibility of an unmanaged platform on Windows 7. It will be a realtime simulation with DirectX 11 graphics. My question is, where should I start? Is MFC still relevant? What is ATL? What are my choices at this juncture? I am a very quick learner and I am willing to learn anything. Where should I start?
Hello MFC users, I asked the same question. Is MFC (still) relevant, because the complexity is higher than e.g. VCL. VCL is a class/ component base for Delphi and C++Builder of Borland. In my opinion the whole .Net environement (Visual Studio) is build on the classes of MFC. For the majority of developers MFC seems to be too complex. It takes a long time to learn and it's not easy to keep hands on with it. Not using it some months often meens starting from scratch again. Microsoft developers themselves belief it to be hard to use MFC. Internally they made other initiatives that sometimes became (unintended) popular outside MS. ATL is one of these. For very quick coding developers still rely on more pure Win32 objects and functions. At the launch of Windows 7 I asked the "stupid" question, wheter Windows 7 is still based upon MFC, as NT and derivatives were. The technical MS people couldn't answer this question. MS believes its own architecture to be to complex to explain to its own technicians in the field. The freedom to mix everything and even mix with STL (standard library for C++; for portability over other operating systems like Unix) makes C and C++ very powerfull. But makes the learnability decrease as well. Because of the installed base for MFC I said good bye to VCL 10 years ago, but to be honest: in MFC I still can't be that productive as I was in Borlands VCL. The use of the wellknown MFCxxx.dll files in the deployement of applications proves the relavance of MFC. Try to remove these dll files and see your self which applications turn out to be not working anymore. The use of these MFCxxx.dll's garantied an enormous reuse of code-elements. On a low level all these elements were tested over and over again. The long lifecycle and the low number of successive versions for these files have been a sign of robustness of these files. More or less they have been the backbone for the successes of MS after Windows95. Very strange that MS did little effort on explaining its object-oriented architecture to a large public. At the moment I try as an amateur-programmer to hide complexity of all function and class libraries with the use of specific DLL's. What was made with VCL can be reused in the future this way. But also reused with ATL, STL, Win32, etc. And it can be reused with all the languages that are supported by .Net. It's the only way to use managed code next to unmanaged code in a robust way. The complexity of using dll's in MFC is one of the reason's that many develo
-
I am a control theorist with many years of programming experience. I can code in C/C++, Java, FORTRAN, VB6, VB.NET and C#. However, all this time I have avoided Visual C++ and MFC. Now I have a project that really needs the speed and flexibility of an unmanaged platform on Windows 7. It will be a realtime simulation with DirectX 11 graphics. My question is, where should I start? Is MFC still relevant? What is ATL? What are my choices at this juncture? I am a very quick learner and I am willing to learn anything. Where should I start?
Sky High wrote:
Is MFC still relevant?
Yes, and it is till being developed as each new version of Windows is released.
Sky High wrote:
What is ATL?
Active Template Library - used for creating COM components.
Sky High wrote:
What are my choices at this juncture?
You could also try WTL (Windows Template Library). This is now open source and many people rate it. There will be some tutorials on Code Project. There is also Qt, which is highly regarded.
Sky High wrote:
Where should I start?
Hmmm, I don't know. MFC is the most widely used for Windows development so you may as well start there. Greater chance of getting help.
Kevin
-
Hello MFC users, I asked the same question. Is MFC (still) relevant, because the complexity is higher than e.g. VCL. VCL is a class/ component base for Delphi and C++Builder of Borland. In my opinion the whole .Net environement (Visual Studio) is build on the classes of MFC. For the majority of developers MFC seems to be too complex. It takes a long time to learn and it's not easy to keep hands on with it. Not using it some months often meens starting from scratch again. Microsoft developers themselves belief it to be hard to use MFC. Internally they made other initiatives that sometimes became (unintended) popular outside MS. ATL is one of these. For very quick coding developers still rely on more pure Win32 objects and functions. At the launch of Windows 7 I asked the "stupid" question, wheter Windows 7 is still based upon MFC, as NT and derivatives were. The technical MS people couldn't answer this question. MS believes its own architecture to be to complex to explain to its own technicians in the field. The freedom to mix everything and even mix with STL (standard library for C++; for portability over other operating systems like Unix) makes C and C++ very powerfull. But makes the learnability decrease as well. Because of the installed base for MFC I said good bye to VCL 10 years ago, but to be honest: in MFC I still can't be that productive as I was in Borlands VCL. The use of the wellknown MFCxxx.dll files in the deployement of applications proves the relavance of MFC. Try to remove these dll files and see your self which applications turn out to be not working anymore. The use of these MFCxxx.dll's garantied an enormous reuse of code-elements. On a low level all these elements were tested over and over again. The long lifecycle and the low number of successive versions for these files have been a sign of robustness of these files. More or less they have been the backbone for the successes of MS after Windows95. Very strange that MS did little effort on explaining its object-oriented architecture to a large public. At the moment I try as an amateur-programmer to hide complexity of all function and class libraries with the use of specific DLL's. What was made with VCL can be reused in the future this way. But also reused with ATL, STL, Win32, etc. And it can be reused with all the languages that are supported by .Net. It's the only way to use managed code next to unmanaged code in a robust way. The complexity of using dll's in MFC is one of the reason's that many develo
oscar1966 wrote:
In my opinion the whole .Net environement (Visual Studio) is build on the classes of MFC
Hmm, not sure about that. It's certainly built with C++. But some parts are written in C# and of course VS 2010 uses WPF.
oscar1966 wrote:
Internally they made other initiatives that sometimes became (unintended) popular outside MS. ATL is one of these
You mean WTL.
oscar1966 wrote:
At the launch of Windows 7 I asked the "stupid" question, wheter Windows 7 is still based upon MFC, as NT and derivatives were.
Windows from at least XP onwards is written mostly in C with some C++, Assembler and Managed C++ (C++/CLI).
Kevin
-
I am a control theorist with many years of programming experience. I can code in C/C++, Java, FORTRAN, VB6, VB.NET and C#. However, all this time I have avoided Visual C++ and MFC. Now I have a project that really needs the speed and flexibility of an unmanaged platform on Windows 7. It will be a realtime simulation with DirectX 11 graphics. My question is, where should I start? Is MFC still relevant? What is ATL? What are my choices at this juncture? I am a very quick learner and I am willing to learn anything. Where should I start?