Introduction to CLR in .Net framework.

Introduction

The CLR stands for  Common Language Runtime  is an Execution Environment . It works as a layer between Operating Systems and the applications written in .Net languages that conforms to the Common Language Specification (CLS). The main function of Common Language Runtime (CLR) is to convert the Managed Code into native code and then execute the Program. The Managed Code compiled only when it needed, that is it converts the appropriate instructions when each function is called . The Common Language Runtime (CLR) 's just in time (JIT) compilation converts Intermediate Language (MSIL) to native code on demand at application run time.
 
When .Net application is executed at that time control will go to Operating System,then Operating System Create a process to load CLR
The program used by the operating system for loading CLR is called runtime host,which are diffrent depending upon the type of application that is desktop or web based application i.e.

The runtime host for desktop applicaitons is API function called CorbinToRuntime.
The runtime host for web based applications is asp.net worker process(aspnet-wp.exe).

CLR runtime engine comes with set of services,which are classified are as follows

CLR services

  • Assembly Resolver
  • Assembly Loader
  • Type Checker
  • COM marshaller
  • Debug Manager
  • Thread Support
  • IL to Native compiler
  • Exception Manager
  • Garbage Collector 
let us know about these services in brief.

Assembly Resolver

Assembly reslover will read manifest of application, it will identify private and shared assembly required for application execution , the request will be send to assembly loader.

Assembly Loader

Assembly loader will load assembly into applicaiton process based on assembly resolver intstructions.

Type Checker

Type checker will verify types used in the application with CTS or CLS standards supported by CLR, this provides type safety.

COM marshaller

COM marshaller will provide communication with COM component, this supports COM interoperability.

Debug Manager

Debug Manager service will activate debugger utility to support line by line execution , the developer can make changes as per requirement without terminating application execution.

Thread Support

Thread support will manage more than one execution path in applicaiton process. This provides multithreading support.

IL to Native compiler 

IL to native compiler is called JIT compiler(just-in-time compiler) , this will convert IL code into operating System native code.

Exception Manager

Exception Manager will handle exceptions thrown by application by executing catch block provided by exception, it there is no catch block , it will terminate application.

Garbage Collector 

Garbage Collector will release memory of unused objects, this provides automatic memory management.

this is the brief introduction about the CLR,In future i will write the detail blog about each services.I hope its helpful for all readers.

References