You make some interesting points and so do the posters who have contributed. Here is my take on it:-D. I have used MFC and the win32 API for over ten years and I still am. I maintain a lot of applications, some of which will never move across to .NET because there is simply no need and they do exactly what they are supposed to as well as when they were introduced. However, .Net brings a goody bag of useful and productive classes and access to the latest GUI controls/Windows forms. A brand new app in VC6 still looks old and yes I know there are ways of merging the technology but in my experience this effort would be better spent on producing the system. Whether you like it or not Microsoft is a huge company and as long as it has a reasonable product it is going to sell because of the sheer weight behind it. As a developer I need to make money and therefore my skills need to be compatible with the largest number of people (future customers) and I need to be the most productive I possibly can be. This is the reason why I don't concentrate on the Mac or Linux which are both great technology but for my particular needs customers want a PC running XP Pro some dedicated hardware and a nice glossy interface which looks familiar and not out of place when used with themes. There is still a large market for MFC/C++ simply because of the sheer size of the code base. But this is not going to increase and .Net is slowly eating into it. If I was a hobbyist then I could afford to choose the little guy. When the next great thing comes along (Vista) I will give it 6 months and then begin learning to program with it. Before I get accused of being a Microsoft diehard my biggest gripe with .Net is the fact that using Reflector most .Net applications can be very easily reverse engineered into source code that is remarkably similar to the original. Do not underestimate the amount of time you are going to spend working with an obfuscator to protect your code. For this reason and that of performance I mix .Net with C++ dll’s. .Net handles the front end and some of the mundane tasks while the unmanaged dll contains all of the IPR and does all of the work. My two cents Jason
J
JaseNet
@JaseNet