Vemos un conjunto de servicios de programación diseñados para simplificar el desarrollo de aplicaciones en el entorno altamente distribuido de Internet.
El .NET Framework se instala como un componente aparte en Windows 2000, mientras que Windows XP y las futuras versiones de Windows lo incorporan directamente al sistema operativo. Como por ejemplo Windows Server 2003 o Windows .NET CE.
El .NET Compact Framework permite hacer uso de los servicios Web en dispositivos móviles. Debido a que es un subconjunto del .NET Framework comparte el mismo modelo de programación y herramientas de desarrollo de aplicaciones haciendo posible que los desarrolladores transfieran sus conocimientos existentes al desarrollo de aplicaciones móviles.
Figura IX.3 "El Componente del Marco de trabajo .NET "
Los componentes del .NET Framework proveen los "ladrillos" necesarios para construir las aplicaciones Web, los servicios Web y cualquier otra aplicación dentro de Visual Studio .NET. Ahora que tenemos una visión general del .NET Framework, vamos a estudiar que función cumplen las partes que lo componen.
Figura IX.4: "Runtime del Leguaje Común"
El Common Language Runtime provee lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta. Los servicios son variados:
Figura IX.5: "Librería de Clases .NET"
La librera de clases base son las clases sobre las cuales se construyen todas las demás clases que utilizan los programas de Visual Studio .NET. La clase madre de todas es System. A partir de ella por un mecanismo llamado herencia de clases, se construyen las demás clases.
Debido a que en la librería de clases base hay muchas clases, se utiliza para identificarlas un mecanismo llamado espacio de nombres (namespace). La parte del nombre de la clase que se encuentra a la derecha del último punto se llama tipo de la clase. Todo lo que resta se llama espacio de nombres. Por ejemplo: En la clase llamada System.Runtime.InteropServices, InteropServices es el tipo de la clase y System.Runtime es el espacio de nombre. El espacio de nombre es una manera de organizar en grupos las distintas clases. Esto hace más manejable y fácil su uso.
La librera de clases base es independiente del lenguaje. Permite el uso y la depuración de otros lenguajes. Es extensible ya que por el mecanismo de herencia el usuario puede crear nuevas clases que usan las clases base como "ladrillos". También el usuario puede incorporarlas en bibliotecas para su utilización posterior. Es segura ya que es posible permitir o restringir su uso por medio de distintos mecanismos de seguridad.
Cómo funciona el .NET Framework.
Cuando usted crea una aplicación Windows en algún lenguaje compatible con la plataforma .NET, puede utilizar cualquiera de los servicios que la biblioteca de clases de .NET provee. Por ejemplo: Puede usar clases para hacer ventanas que tengan distintos tipos de controles. Cuando compila la aplicación, se crea un código intermedio llamado MSIL. Este código es independiente de la plataforma de hardware. Una vez compilado, el ejecutor de lenguaje común administra la ejecución de la aplicación.
Figura IX.6: "Funcionamiento del .NET Framework."
Uno de los subsistemas del Common Language Runtime se llama compilación JIT, que transforma el código intermedio MSIL al código de máquina en el sistema donde la aplicación se va a ejecutar. Esta compilación a lenguaje de máquina lo hace en el momento de ejecución del código. Cuando un dispositivo de cliente, por ejemplo, un celular "Smart phone", ejecuta una aplicación hecha con Visual Studio .NET, se ejecuta en el código de máquina del sistema del cliente. La aplicación sin embargo puede interactuar con otras aplicaciones .NET y servicios independientemente del lenguaje en que fueron desarrollados.
El .NET Compact Framework permite hacer uso de los servicios Web en dispositivos móviles. Debido a que es un subconjunto del .NET Framework comparte el mismo modelo de programación y herramientas de desarrollo de aplicaciones haciendo posible que los desarrolladores transfieran sus conocimientos existentes al desarrollo de aplicaciones móviles.
Figura IX.3 "El Componente del Marco de trabajo .NET "
Los componentes del .NET Framework proveen los "ladrillos" necesarios para construir las aplicaciones Web, los servicios Web y cualquier otra aplicación dentro de Visual Studio .NET. Ahora que tenemos una visión general del .NET Framework, vamos a estudiar que función cumplen las partes que lo componen.
Figura IX.4: "Runtime del Leguaje Común"
El Common Language Runtime provee lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta. Los servicios son variados:
- Cargador de Clases: Permite cargar en memoria las clases.
- Compilador MSIL a nativo: Transforma código intermedio de alto nivel independiente del hardware que lo ejecuta a código de máquina propio del dispositivo que lo ejecuta.
- Administrador de Código: Coordina toda la operación de los distintos subsistemas del Common Language Runtime.
- Recolector de Basura: Elimina de memoria objetos no utilizados.
- Motor de Seguridad: Administra la seguridad del código que se ejecuta.
- Motor de Depuración: Permite hacer un seguimiento de la ejecución del código aún cuando se utilicen lenguajes distintos.
- Verificador de Tipos: Controla que las variables de la aplicación usen el área de memoria que tienen asignado.
- Administrador de Excepciones: Maneja los errores que se producen durante la ejecución del código.
- Soporte de multiproceso (threads): Permite ejecutar código en forma paralela.
- Empaquetador de COM: Coordina la comunicación con los componentes COM para que puedan ser usados por el .NET Framework.
- Soporte de la Biblioteca de Clases Base: Interfase con las clases base del .NET Framework.
Figura IX.5: "Librería de Clases .NET"
La librera de clases base son las clases sobre las cuales se construyen todas las demás clases que utilizan los programas de Visual Studio .NET. La clase madre de todas es System. A partir de ella por un mecanismo llamado herencia de clases, se construyen las demás clases.
Debido a que en la librería de clases base hay muchas clases, se utiliza para identificarlas un mecanismo llamado espacio de nombres (namespace). La parte del nombre de la clase que se encuentra a la derecha del último punto se llama tipo de la clase. Todo lo que resta se llama espacio de nombres. Por ejemplo: En la clase llamada System.Runtime.InteropServices, InteropServices es el tipo de la clase y System.Runtime es el espacio de nombre. El espacio de nombre es una manera de organizar en grupos las distintas clases. Esto hace más manejable y fácil su uso.
La librera de clases base es independiente del lenguaje. Permite el uso y la depuración de otros lenguajes. Es extensible ya que por el mecanismo de herencia el usuario puede crear nuevas clases que usan las clases base como "ladrillos". También el usuario puede incorporarlas en bibliotecas para su utilización posterior. Es segura ya que es posible permitir o restringir su uso por medio de distintos mecanismos de seguridad.
Cómo funciona el .NET Framework.
Cuando usted crea una aplicación Windows en algún lenguaje compatible con la plataforma .NET, puede utilizar cualquiera de los servicios que la biblioteca de clases de .NET provee. Por ejemplo: Puede usar clases para hacer ventanas que tengan distintos tipos de controles. Cuando compila la aplicación, se crea un código intermedio llamado MSIL. Este código es independiente de la plataforma de hardware. Una vez compilado, el ejecutor de lenguaje común administra la ejecución de la aplicación.
Figura IX.6: "Funcionamiento del .NET Framework."
Uno de los subsistemas del Common Language Runtime se llama compilación JIT, que transforma el código intermedio MSIL al código de máquina en el sistema donde la aplicación se va a ejecutar. Esta compilación a lenguaje de máquina lo hace en el momento de ejecución del código. Cuando un dispositivo de cliente, por ejemplo, un celular "Smart phone", ejecuta una aplicación hecha con Visual Studio .NET, se ejecuta en el código de máquina del sistema del cliente. La aplicación sin embargo puede interactuar con otras aplicaciones .NET y servicios independientemente del lenguaje en que fueron desarrollados.
Benjamín González C.
Ingeniero de Sistemas