Answer:There are three options open to the Windows developer from a C++ background:
Stick with standard C++. Don't use .NET at all.
Use C++ with .NET. Microsoft supply a .NET C++ compiler that produces IL rather than machine code. (To make full use of the .NET environment (e.g. garbage collection), a set of extensions are required to standard C++, called C++/CLI.)
Forget C++ and use C#.
Each of these options has merits, depending on the developer and the application, but for most general purpose applications C# is a much more productive environment than C++. Where existing C++ code must be used with a new application, the existing code can be wrapped using C++/CLI to allow it to interop with C#.