The CLR is the foundation of the .NET framework. Basically, CLR acts as a virtual machine, providing an execution environment for the programs. The programmer can use Visual Basic, Jscript, and C # to write codes and the CLR manages the code written in these different languages at execution time. The other important features provided by CLR are memory management, thread management, garbage collection, exception handling and security.
Residing above the operating system, it acts as a buffer for the programmer and handles and manages the execution of the applications without the programmer having to counter the technicalities and complexities of the operating system.
On compilation of our programs using any of the .NET compatible high level languages, it does not get directly converted into the executable binary code but has to pass through an intermediate conversion state called MSIL or IL. This is done because IL is comprehensible by the CLR. Also that this IL makes the comparison and inter operability between codes of different high level languages possible as all the .NET compliant languages produce similar IL code.