One of the things that I love about Microsoft is that once you learn a Microsoft technology parts of it are transferable to other Microsoft Platforms. The .Net technologies are an excellent example of this. There’s also DirectX (portions of which can be used on Windows Mobile devices) and MFC.
Another such technology is MFC (Microsoft Foundation Classes). MFC is a library of C++ application framework library for creating Windows applications. It is a native code library, so you have full access to the native API without the need of platform invoke declarations or re-declaring structures for making native calls. But it also provides several high level classes for creating UI elements and responding to windows messages. I would say that MFC lives half way between .Net based programs and traditional native non-MFC applications.
I am engaging in a project for which it will be easier to use native code. The project is going to rely on some third party native code libraries with a massive amount structures. For the first phase of this project I plan to use MFC so that I can make a prototype with the third party library. Later on I will make an abstraction layer that gives simpler access to the functionality that I need and then I will create a .Net wrapper for it. In the coming weeks once the project reaches a certain level of functionality, stability, and presentability I’ll be posting the code on CodeProject.com. I don’t want to say anything about the nature of the project just yet, but I’m sure it will be very popular!