Concepto de Common Language Runtime Environment (CLR)

Concepto de Common Language Runtime Environment (CLR)

CLR o Common Language Runtime es la capa de ejecución principal de .NET framework. Esta capa gestiona todos los detalles de bajo nivel de cualquier aplicación .NET, como la gestión de subprocesos, la realización de comprobaciones de seguridad, la recolección de elementos no utilizados, etc. Si alguna aplicación .NET da un error durante su tiempo de ejecución, CLR le notificará los detalles del error.

El CLR ofrece una función de portabilidad, gracias a la cual puede mover fácilmente su aplicación de una plataforma a otra sin ningún problema. La pregunta es, ¿cómo es posible? Todas las aplicaciones anteriores, que se basaban en el modelo COM, contienen código no administrado. Por otro lado, todas las aplicaciones basadas en .NET framework contienen Código Administrado. Ahora, ¿quieres saber qué es el código administrado y el código no administrado?

El código no administrado pertenece básicamente a los lenguajes basados ​​en COM, que en la compilación genera un código nativo específico de la máquina. Esa es la única razón por la que no puede ejecutar una aplicación de Windows en ninguna otra plataforma. Por otro lado, el código administrado se compila en el conjunto de instrucciones CIL, que se conoce como lenguaje intermedio común. Cada vez que compila una aplicación .NET, se crea un ensamblaje y contiene solo el conjunto de instrucciones CIL. Más tarde, cuando ejecuta ese ensamblaje, CLR convierte ese código administrado en código nativo específico de la máquina mediante el compilador JIT. Esa es la única razón por la que puede ejecutar aplicaciones .NET en cualquier otra plataforma sin ningún problema.

El CLR también ofrece la función de recolección de capturas. En los lenguajes basados ​​en el modelo COM anterior, debe ocuparse de la administración de la memoria para evitar problemas de desbordamiento o pérdida de memoria. Pero en .NET, no es necesario que se ocupe de ello. CLR hará el trabajo por usted y eliminará todos los objetos no necesarios de la memoria cuando sea necesario. Lo discutiremos con más detalle en los capítulos posteriores.