Microsoft .NET is Windows software which executes all .NET language code. Regardless of which .NET language (C#, VB.Net etc) is used, the source is compiled to Common Intermediate Language (CIL). To run any .NET application, the CIL code is executed in a virtual machine (the CLR). .NET comprises of -:
The CLR is a virtual machine that manages the execution of all CIL. The Common Language Runtime is similar to a Java virtual machine. It deals with the low-level platform specific instructions and resources. For example, the CLR manages memory resources of the machine for the .NET application. The CLR ensures that all .NET compliant language source will remain identical, regardless of what machine the software is run on. It also manages communication between different applications running both within .NET and also applications running outside the .NET framework.
All .NET languages such as C# and VB.NET use the same .NET Base Class Library. Support for windows GUI programming (Winforms), database and data handling (ADO.NET) and web content (ASP.NET) is extensive and very easy to use.
The CLI is a standardized specification that describes the basic elements of the .NET language code (types), the structure of the application (metadata), and how the CLR reads the compiled code (the Common Intermediate Language) and executes it.
The CLI specifies how the CLR manages of basic programming elements; all .NET languages must comply with with the CLR's management regime. .NET's core language C# was written specifically for .NET. Other existing languages have been incorporating the .NET framework by adapting the language to suit the CLI standard. For example, the .NET compliant verion of C++, called C++/CLI (formerly known as Managed C++), is a variant of C++ which has additional keywords and operations to standard C++. These changes make C++/CLI compliant with the CLI specification and permit operation with the .NET framework.
Several programming languages have been adapted to comply with the CLI and thus provide programmers to use that language within .NET. Examples include a version of Python (IronPython), and a version of Pascal (Component Pascal).
There are three .NET versions, to suit the capabilities of different platforms.