Peter Drayton promotes the cause of Managed C++. Admittedly I don't have much experience with Managed C++ yet but I can't see what extra power Managed C++ gives you if you're implementing managed code using managed types. As soon as you start coding with traditional C++ features such as MI you have unmanaged types and the extra work to get them to work with managed types. Working with C# just seems easier all round, not having to use header files for example, and does produce assemblies which are pure IL. If people develop new projects in Managed C++ then there's a risk they will be writing new legacy code which will cause problems in the future as .NET is ported to other platforms.