The .net framework is a whole bunch of things all wrapped up and given a quaint name.
At the bottom of the stack is the Common Language Run time (CLR). The CLR is microsoft's implementation of the Common Language Infrastructure (CLI) standard. The CLI defines the execution environment for the program code that is in a form of byte-code called the Common Intermediate Language (CIL).
Above that you have the base class library. The Base Class Library (BCL) is a standard library available to all languages using the .NET Framework. Then you have the various other libraries on top of that.
On to languages. All .net languages produce CIL code at compile time. At run-time the CIL is just-in-time compiled to code native to the operating system. The 'version' of C++ for .net is C++/CLR (standardized by Ecma as ECMA-372). Using C++/CLR instead of C# has some advantages but only for advanced .net development. If you want to learn .net it is by far easier with C#. If you want to learn C++ avoid .net, mixing C++ and C++/CLR will only lead to pain and confusion.
Mmm, the article is very subjective, especially what appears as a pro/con.
The .NET framework and C# are fine as they go, but in my view is that C++ should never have been extended for CLR support. C# is very well suited to the task and is sufficiently close to C++ and Java to be picked up by both camps without too much grief.
The following may be of interest: A Critical Overview of C++/CLI, Part I
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=274 A Critical Overview of C++/CLI, Part II