CLR - Common Language Runtime

It is the runtime that converts a MSIL code into the host machine language code. It is the execution engine for .NET Framework applications. It provides a number of services, including:

· Code management (loading and execution)

· Memory Management

· Thread Management

· Conversion of IL to native code.

· Access to metadata (enhanced type information)

· Managing memory for managed objects (Garbage collection)

· Enforcement of code access security ( Security Management)

· Exception handling, including cross-language exceptions

· Interoperation btw managed code, COM objects, and pre-existing DLL's (unmanaged code and data)

· Support for developer services (profiling, debugging, and so on).

· Type safety.