Common Language Runtime shortly called as CLR provides a universal execution engine for .NET applications and it is provided by the .NET Framework. Every target computer should require CLR for executing .NET applications. One of the most interesting points to note is that the CLR itself manages the life of objects. This is the effect of Automatic Garbage Collection system built into it. When the CLR finds an object that is not being used, it destroys them and thus freeing memory allocation.
The corresponding compilers (C#, Visual Basic .NET) generate meta code upon successful compilation. This meta code contains lot of information about code types, its members and references used. The CLR generates Simple Object Access Protocol (SOAP) when it makes remote procedure calls. SOAP is a protocol used to access .NET Web Services. In addition to the garbage collection, CLR also provides support for Managed Code, Effective Memory Management, Type Safety Verification, Conversion of IL to native code, Structured Exception Handling and Effective Interoperability between COM components and Unmanaged Code. You can build secured applications using the runtime since the .NET Framework provides support for advanced security features as well.