Pregunta

Quiero saber cuál es exactamente la diferencia entre CLR & amp; CLI? De lo que he leído hasta ahora, parece indicar que CLI es un subconjunto de CLR. Pero, ¿no es obligatorio todo en el CLR? ¿Qué puede quedar exactamente fuera de CLR para crear una CLI?

¿Fue útil?

Solución

El CLR es la implementación de Microsoft del estándar CLI .

Otros consejos

CLR es el entorno de ejecución en el que una aplicación .NET se aloja / ejecuta de forma segura.

Puede verlo como el sistema operativo privado de .NET que se inicia y carga justo antes de que se inicie una aplicación .NET.

El CLR se encarga de ciertos requisitos esenciales de cualquier aplicación .NET que de otro modo requeriría que se escribiera mucho código deliberado para su implementación; requisitos de naturaleza holística y esenciales para que cualquier tipo de aplicación se ejecute de una manera buena, eficiente y segura [p. Maneje la asignación de memoria y suéltela cuando no sea necesario, evite punteros colgantes, evite errores de conversión de tipos, etc.]

CLI, por otro lado, es una especificación / conjunto de pautas que explica cómo implementar un entorno de ejecución de aplicaciones y la naturaleza del código de aplicación generado que permite utilizar múltiples lenguajes de alto nivel en diferentes plataformas informáticas sin tener que volver a escribirlos. arquitecturas específicas.

CLI es desarrollado por Microsoft y estandarizado por ISO y ECMA.

El CLR es una implementación práctica de la sección VES [Sistema de ejecución virtual] de CLI y forma uno de los componentes principales de la plataforma MS.NET

En el lenguaje de un laico, CLI es una receta, mientras que CLR es la cocina :-)

El CLR (Common Language Runtime) es la implementación de Microsoft del VES (Sistema de ejecución virtual). El VES junto con el CTS (Sistema de tipo común), el CLS (especificación de lenguaje común) y la especificación de metadatos son parte de la especificación CLI (Infraestructura de lenguaje común).

El VES es una especificación de máquina virtual estandarizada que debe implementarse para cargar y ejecutar módulos CIL (Common Intermediate Language) (dll y exe). Una implementación de VES también proporciona servicios de tiempo de ejecución como recolección de basura y seguridad.

ECMA C # y estándares de infraestructura de lenguaje común

CLR es el entorno de ejecución .net donde se ejecutan todo tipo de aplicaciones .net. Por ejemplo, cuando escribe su código con C # u otro lenguaje desde la pila dot NET, el compilador compila y lo convierte en un módulo administrado. Un módulo administrado es IL (lenguaje intermedio) y metadatos. Por encima de todo, el punto importante a recordar es que cada vez que compila su código fuente, el compilador lo traduce al módulo administrado. Para aclarar, este no es un código de máquina que ejecutará su procesador. De hecho, IL es un lenguaje intermedio cercano al lenguaje ensamblador. De manera similar, también es famoso como lenguaje de máquina orientado a objetos.

Consulte este artículo sobre una explicación más detallada:

http://alevryustemov.com/programming/common-language-runtime/

CLR es el entorno completo en el que CLI, CTS, CLS trabaja en integración, también incluye recolección de basura, administración de memoria, seguridad, lenguaje intermedio para código nativo ... CLI es una especificación para el formato del código ejecutable y el tiempo de ejecución entorno que puede ejecutar ese código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top