Introduction
CLR is a Common Language Runtime . As the name suggests it's Common Runtime to all dotnet related languages like Vb,C#,VC++ ,J# etc.
When ever we compile any application in dotnet the corresponding langauge compiler will take care of it and convert into MSIL(Microsoft Intermediate Language) code , CLR will handle the code and convert into operating system native code with the help of JIT(Just In Time) compiler.There are many components in CLR which are used to do specific tasks or functions of CLR.
Functions of CLR
1.Convert IL code into Operating System native code
2. Execption handling
3. Type safety
4. Memory management.
5. Security etc.
Components in CLR
The above functionalities achieved by all these componets .Each component is responsible for specific functionality.
1.Class Loader:
It is used to load all the classes at runtime
2.MSIL to native Compiler:
It is a JIT (Just In Time) compiler it will convert MSIL code to native code
3.Code manager:
It manages the cade during runtime
4.Garbage Collector:
It manages memory .It collects all the unused objects in the memory and deallocate them when the memory is less.
5.Security Engine:
It has all the security restrictions.
6.Type checker:
It enforces strict type checking.
7.Thread support:
It provides multithreading support to our application.
8.Exception manager:
It provides mechanisum to handle execptions at runtime.
9.Debug Engine:
Which allows you to debug applications.
10.Com Marshaler:
Which allows interoperability to our applications
11.Base class library support:
Which provides all types that application need at runtime
Advantages of CLR and MSIL Code
Note:CLS and CTS are the specifications not components of CLR
