Managed C++ vs. C#
The .NET platform has introduced a new C++-like language named C#. C# is a curly-brace-oriented language without all the headaches of C++. Much of C#'s appeal is due to the fact that it's missing some of the more problematic elements of C++ (such as raw pointer management) while maintaining the useful features (such as virtual functions). The C# compiler eventually emits managed code—the kind that runs under the common language runtime.However, the entire world isn't going to switch over to C# overnight. There's just too much C++ code out there to convert. Also, it will take a bit of time for developers to become fully comfortable with C#. In the meantime, .NET has introduced extensions to C++ for producing managed code (code that runs under the common language runtime). Managed Extensions for C++ will help ease the burden of developing software for the .NET platform because they allow you to quickly update existing C++ code to work with .NET. Getting the managed code features in C++ means sprinkling your code with various keywords. In the end, C# and managed C++ boil down to the same executable code once the compilers are done with it. In the .NET world, you'll probably find yourself writing new components using C# while using managed C++ to add .NET features to your existing code base.