Introducción a la plataforma .NET y Mono - .NET Framework
2 - .NET Framework
Cuando se habla del .NET Framework, normalmente se hace referencia al conjunto de clases Framework Class Library (FCL). Estás librerías ofrecen un gran número de posibilidades y funcionalidades en el desarrollo de aplicaciones modernas. Para ello dispone de librerías orientadas al manejo de colecciones, XML, comunicaciones, IO, threading, bases de datos…
La FCL se sustenta sobre la pieza fundamental del .NET Framework, el entorno de ejecución, o Common Language Runtime (CLR). Éste es el encargado de realizar la ejecución de las aplicaciones desarrolladas para .NET. En la siguiente ilustración se muestran los componentes que forman la arquitectura del .NET Framework.

Common Language Runtime
El CLR es el encargado de gestionar la ejecución de las aplicaciones, proveyendo de servicios como compilación JIT, gestión de memoria, gestión de excepciones, depuración, seguridad o gestión de permisos.

Para entender cómo funciona el CLR conviene entender como funcionan los compiladores que generan código para el .NET framework, a diferencia de los compiladores tradicionales. Los compiladores tradicionales, partiendo de los fuentes de una aplicación en un lenguaje concreto, producen archivos binarios que contienen las instrucciones correspondientes a la plataforma en la que se quiera utilizar el programa compilado. Sin embargo, los compiladores para la plataforma .NET, partiendo de los fuentes de la aplicación generan archivos binarios que contienen una representación intermedia del código compilado, formada por metadatos e instrucciones escritas en Common Intermediate Language CIL. Para que estos archivos binarios se puedan ejecutar es necesaria la presencia del CLR en la máquina en la que se quiera ejecutar la aplicación. Cuando estos binarios se ejecutan se carga el CLR y toma el control de la ejecución.
Desde un punto de vista de eficiencia se podría considerar que el tener la aplicación en código intermedio y ejecutarlo dentro de un entorno de ejecución virtual es una desventaja, sin embargo, esto nos permite poder utilizar las aplicaciones en diversas plataformas para las cuales se disponga del CLR. Así mismo, a la hora de la ejecución el CLR tiene la opción de realizar optimizaciones específicas para la plataforma en la que se está ejecutando, por lo que las aplicaciones se podrían aprovechar automáticamente de determinados avances en materia de procesadores.
La representación de los metadatos y el código en un lenguaje intermedio posibilita el que se puedan desarrollar módulos de una aplicación en diferentes lenguajes y que estos módulos se puedan comunicar entre sí transparentemente.
Para que esto sea posible el CLR necesita conocer bien el código gestionado que está ejecutando, para ello el CLR define un sistema compartido de tipos denominado Common Type System (CTS). El CTS está diseñado para ser suficientemente flexible y potente como para permitir la integración de un amplio número de lenguajes de programación. Para que esta integración sea posible es necesario también que todos los lenguajes que generen código para el CLR dispongan del mismo conjunto de construcciones. Imaginémonos la situación en la que tenemos un lenguaje A que soporta tipos sin signo y otro lenguaje B que no lo hace. ¿Cómo haríamos para llamar desde un método escrito en el lenguaje B a otro escrito en el lenguaje A, el cual necesita un parámetro unsigned?
La solución a este problema la trae el Common Language Specification (CLS). El CLS define un subconjunto del CTS que debería ser suficiente para soportar la integración entre lenguajes y el cual evita áreas conflictivas como sobrecarga de operadores, unsigneds, y otros. De esta forma, cada lenguaje que quiera generar código para la plataforma .NET decide qué parte del CTS acepta.
- Common Language Specification
- Common Type System Overview
Framework Class Library (FCL)
Las necesidades de los desarrolladores han evolucionado mucho en los últimos tiempos debido al continuo incremento en la complejidad de las aplicaciones, esto hace necesario la utilización de marcos de trabajo o frameworks, que permitan a los desarrolladores simplificar el desarrollo de las aplicaciones. La Framework Class Library es un enorme conjunto de clases y estructuras, muy bien estructuradas, que ofrecen a los desarrolladores una API muy diversa y completa.
ECMA
En Noviembre de 2000, Microsoft junto a Intel y HP, enviaron a la European Computer Manufacturers Association (ECMA) la especificación del lenguaje C#, junto a un subconjunto del FCL (297 clases de las más de 3.500 existentes) y el entorno de ejecución. En el proceso de estandarización participaron otras empresas incluidas HP, IBM, Fujitsu, Sun, Netscape, entre otras. Se crearon dos grupos de trabajo, uno orientado a la estandarización del lenguaje C# y otro a la estandarización del Common Language Infraestructure (CLI), que incluye el CLR y las FCL. Tras un año de trabajo se presentó el trabajo en la asamblea general de ECMA, y el 13 de diciembre de 2001, se ratificaron como estándares internacionales con los números ECMA-334 (C#) y ECMA-335 (CLI).
Pueden obtenerse copiar de los estándares en: http://www.ecma-international.org/
|
Opiniona sobre 'Introducción a la plataforma .NET y Mono - .NET Framework' (7)
Opina sobre este tutorial |


