Explorando los Fundamentos de .NET: MSIL, POO y Componentes Clave
Clasificado en Informática
Escrito el en español con un tamaño de 4,52 KB
Fundamentos de .NET
MSIL (Microsoft Intermediate Language)
Durante el proceso de compilación, el código fuente es tomado por el compilador del lenguaje utilizado y convertido, no directamente a código binario, sino a un lenguaje intermedio llamado Microsoft Intermediate Language (MSIL o IL).
Tanto el código MSIL como los metadatos generados se guardan en un fichero de tipo EXE o DLL, basado en la especificación tradicional de Microsoft para ficheros con formato ejecutable transportable.
Los compiladores de .NET no producen código máquina para ninguna CPU concreta, sino que crean código MSIL, similar al Java bytecode. Este código es el que ejecuta la máquina virtual.
Conceptos Clave de la Programación Orientada a Objetos (POO)
Namespace
Un namespace (espacio de nombres) es el medio proporcionado por la plataforma para organizar las clases dentro del entorno, agrupándolas de un modo más lógico y jerárquico. Ejemplo: System.Data
(ADO, SQL, Design).
POO
La POO es una manera de construir software basada en un nuevo paradigma. Propone resolver problemas de la realidad a través de la identificación de objetos y relaciones de colaboración entre ellos. El objeto y el mensaje son fundamentales.
Constructor y Destructor
Son dos métodos de las clases que existen por defecto. El constructor inicia los valores, y el destructor libera recursos al finalizar la vida de una instancia de una clase creada en memoria.
Abstracción
La abstracción es la ignorancia selectiva, decide qué es importante y qué no lo es. Se enfoca en lo importante e ignora lo que no lo es, usando la encapsulación para reforzar la abstracción.
Herencia
La herencia es un tipo de relación entre clases:
- Herencia Simple: La clase hija deriva de una única clase padre.
- Herencia Múltiple: La clase hija deriva de varias clases padre.
Polimorfismo
El polimorfismo, como su nombre sugiere (múltiples formas), se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo interfaz. En la práctica, un mismo identificador puede tener distintas formas.
Encapsulamiento
El encapsulamiento es el ocultamiento de la información. Permite que los objetos no puedan cambiar el estado interno de otros objetos de maneras inesperadas.
Clase
Una clase es una declaración de objetos, también se puede definir como abstracciones de objetos. La definición de un objeto es la clase. La clase es una construcción estática que describe un comportamiento común y atributos. Los métodos son los que definen el comportamiento. Los objetos son instancias de una clase.
Componentes Clave de .NET
Class Loader
El Class Loader es responsable de cargar en memoria el código necesario para ser ejecutado. Además, analiza los metadatos de cada ensamblado con el objetivo de proveer la información requerida para la ejecución.
IL to Native Compilers
Al momento de ejecutar la aplicación, el código MSIL se traduce al código nativo de la máquina. Esta tarea es llevada a cabo por el CLR a través de los compiladores de código intermedio a código nativo.
Garbage Collector
El Garbage Collector es el responsable de liberar la memoria cuando ya no queda espacio, al desechar aquellos objetos que no se utilizan. En .NET, el desarrollador no necesita preocuparse por pedir memoria para los datos, ni por liberarla cuando ya no la necesita. El CLR provee servicios de administración automática de memoria.
Security Engine
El Security Engine es el motor de seguridad de .NET. Se especifican niveles de confianza que dependen del origen de la aplicación o del lugar donde se encuentren los archivos.
Debug Engine
El Debug Engine permite depurar las aplicaciones y hacer el seguimiento del código durante la ejecución.
Exception Manager
Una excepción es una situación anormal que ocurre durante la ejecución de una aplicación.
Assemblies
En su interior, un ensamblado contiene código MSIL junto con una sección denominada manifiesto.