The CLR is very important part of .net framework. It is execution engine for .net framework application. It also provides important capabilities in optimizing, securing and providing many robust capabilities such as application deployment and side by side execution.
CLR provides no. of services that includes-
- Code management(loading and execution)
- application memory isolation
- veryfication of type safety
- conversion of IL to Native
- Access to metadata(enhance type information)
- Managing memory for managed objects
- Enforcement of code access security
- Exception handling, including cross-language exception
- Interoperation between managed code, COM objects, and pre-existing DLL(Unmanaged code and Data)
- Automation of object layout
- Support for developer service(profiling, debugging and so on)