Red de conocimiento informático - Computadora portátil - ¿Qué es el CLR para .NET?

¿Qué es el CLR para .NET?

1. Para una persona que va a desarrollar para la plataforma .NET, es muy necesario comprender la composición completa de la plataforma .NET. La Figura 1 ilustra la estructura general de la plataforma .NET. Estructura:

Esta imagen es el famoso diagrama de estructura de la plataforma .NET. En esta imagen, puede ver que .NET Framework es la base para el desarrollo en la plataforma Microsoft.NET, Windows Forms. y VS .NET es solo una parte del desarrollo de la plataforma .NET, que se utiliza para el desarrollo y visualización de aplicaciones .NET. Las tecnologías centrales de la plataforma .NET son: Common Language Runtime (CLR: Common Language Runtiome), Base Class Library (BCL: Base Class Library), lenguaje .NET y Visual Studio.NET

De esta imagen Se puede ver que .NET Framework es una plataforma de ejecución virtual construida en la plataforma Windows. Puede imaginarse reemplazar la capa inferior de Windows con otros sistemas operativos, como Linux, y aún puede usar CLS (Especificación de lenguaje común, lenguaje común). Especificación del lenguaje) Lenguaje .NET (VB.NET, C#, JScript.NET, etc.) para crear funciones de aplicación ASP.NET o Windows Forms (puede llamarse Linux Forms). Esta es en realidad la función que Mono planea implementar. lograr. . Entonces se puede decir que, en teoría, C# es un lenguaje multiplataforma, muy parecido a Java. Otra cosa que hace que C# se parezca más a Java es que también es un lenguaje (en un sentido especial, al igual que Java, el compilador de C# (lenguaje intermedio de Microsoft, MSIL) primero compila el código del programa escrito en C# en un código de bytes especial. , Microsoft) lenguaje intermedio, que es compilado en código máquina por un compilador específico (compilador JIT, Just In tIME, ?JITer) en tiempo de ejecución para su ejecución por el sistema operativo.

No solo lenguaje C#, todos . NET (incluirá docenas de lenguajes de codificación modernos que usamos comúnmente) pueden escribir código de programa orientado a CLR. Este tipo de código se llama código administrado (Código administrado) en .NET. Todo el código administrado se ejecuta directamente. en CLR y tiene funciones independientes de la plataforma.

Los lenguajes interpretados son muy seguros y se les pueden dar más funciones a través de su plataforma de ejecución, como administración automática de memoria, manejo de excepciones, etc. De hecho, muchas características del lenguaje C# las proporciona CLR. El diagrama de estructura CLR proporcionado que se muestra en la Figura 2 ilustra este punto. 2. Como puede ver en la figura siguiente, CLR proporciona muchas características de C#, como seguridad de tipos (Type Checker), recolección de basura (Garbage Collector), manejo de excepciones (Exception Manager), compatibilidad con versiones anteriores (COM Marshaler). ), etc. Específicamente, CLR en .NET proporciona a los desarrolladores los siguientes servicios:

◆ Independiente de la plataforma: CLR en realidad proporciona un producto que utiliza tecnología de máquina virtual. Está estructurado en el sistema operativo. No es necesario que la plataforma de ejecución del programa sea un sistema Windows. Siempre que sea un sistema que admita su biblioteca de tiempo de ejecución, se pueden ejecutar aplicaciones .NET en él.

Por lo tanto, una aplicación compuesta enteramente de código administrado se puede ejecutar en cualquier plataforma que admita .NET siempre que se compile una vez.

◆Integración entre lenguajes: desarrollo del orden de palabras CLR. Se puede desarrollar en cualquier lenguaje, El código desarrollado en estos lenguajes se puede realizar llamadas cruzadas de manera estricta y sin problemas en el entorno CLR. Por ejemplo, puede usar VB para declarar un objeto de clase base y luego crear directamente una clase derivada de la clase subbase. el código C#.

◆Administración automática de memoria: CLR proporciona un mecanismo de recolección de bastidores que puede administrar la memoria automáticamente. Cuando finaliza el ciclo de vida de un objeto o variable, el CLR liberará automáticamente la memoria ocupada por ellos.

◆Procesamiento heterogéneo entre lenguajes

◆Control de versiones

◆Seguridad .NET

◆Interoperabilidad de componentes simples.

◆Componente de autodescripción: un componente de autodescripción se refiere a un archivo ejecutable que coloca todos los datos y el código en un solo archivo. Los componentes que se describen a sí mismos pueden simplificar enormemente el desarrollo y la configuración del sistema y mejorar la confiabilidad del sistema.

Common Language Runtime (CommonLanguageRuntiome, CLR) se llamó por primera vez Tiempo de ejecución de servicios de Windows de próxima generación (NGWS Runtime). Es un entorno virtual creado directamente en el sistema operativo y su tarea principal es administrar el código. de operación. El CLR ahora admite docenas de lenguajes de programación modernos para escribir código, que luego se ejecuta en forma de código de lenguaje intermedio (Intermediate Langeoage, IL). Además, CLR proporciona muchas funciones para simplificar el desarrollo de código y la configuración de aplicaciones, al tiempo que mejora la confiabilidad de las aplicaciones. Como sabes, si el compilador de un lenguaje está dirigido al tiempo de ejecución, el código generado por el desarrollo en ese lenguaje se llama código administrado en .NET, porque dicho código se ejecuta directamente en el CLR, por lo que tiene las características de ser independiente de la plataforma.

En el diagrama de estructura de la plataforma .NET, encima de CLR se encuentra la biblioteca de clases base .NET. Este conjunto de bibliotecas de clases base incluye todo, desde entrada y salida básicas hasta acceso a datos, proporcionando un sistema unificado orientado a objetos. Interfaz de programación jerárquica y extensible. También se puede ver en el diagrama de estructura de la plataforma .NET que la biblioteca de clases base se puede llamar y ampliar en varios lenguajes, es decir, ya sea C#, VB.NET o VC.NET, se puede llamar libremente. Biblioteca de clases .NET, porque solo C#