22
Ago

Qué es la plataforma .NET y cuáles son sus principales partes

La plataforma .NET es un amplio conjunto de bibliotecas de desarrollo que pueden ser utilizadas con el objetivo principal de acelerar el desarrollo de software y obtener de manera automática características avanzadas de seguridad, rendimiento, etc…

En realidad, .NET es mucho más que eso, ya que ofrece un entorno gestionado de ejecución de aplicaciones, lenguajes de programación y compiladores, y permite el desarrollo de todo tipo de funcionalidades: desde programas de consola o servicios Windows, hasta aplicaciones para dispositivos móviles pasando por desarrollos de escritorio o para Internet.

El funcionamiento del CLR no es trivial, trabaja encima del sistema operativo para aislar a la plataforma de éste. Su funcionamiento es muy parecido, para entendernos, al hipervisor de una máquina virtual. Esto le permite ejecutar aplicaciones .NET multiplataforma. Hoy en día es posible desarrollar aplicaciones .NET para diversas plataformas, como por ejemplo Windows, iOS, Android o Linux.

El CLR nos garantiza también la seguridad de los tipos de datos, avalando que no se producen errores en la conversión de tipos en la ejecución de una aplicación .NET. Este aspecto y algunos otros vienen regulados por lo que se conoce el Common Type System (CTS) o Sistema Común de Tipos de datos.

El CTS define los tipos de datos de .NET y las construcciones de programación de los lenguajes que el CLR puede utilizar de forma adecuada y correcta. En otras palabras, el CTS es lo más parecido a las reglas de juego que permiten el correcto entendimiento entre diferentes lenguajes de programación y el propio entorno de ejecución de .NET.

Otra característica del CLR es la posibilidad de reutilizar porciones de código escritos en diferentes lenguajes. Esto es posible gracias a que todo el código, esté escrito en el lenguaje que esté escrito, debe utilizar las mismas «reglas de juego» de las que hablábamos antes, marcadas por el CLR.

Adicionalmente, el CLR se encarga también de gestionar la vida de los objetos, declaraciones y recursos a lo largo de la ejecución de una aplicación .NET. Esto se lleva a cabo a través de lo que se conoce como recolector de basura o garbage collector. Por lo tanto, a la hora de programar no debemos preocuparnos de reservar espacio de memoria para ejecutar nuestra aplicación .NET. Ni tampoco de liberar los recursos del sistema una vez finaliza la ejecución de la aplicación. El CLR se encarga de ello y nos exime de esta responsabilidad, facilitando el desarrollo enormemente frente a otros lenguajes «tradicionales» como C/C++.

Hoy día es indispensable hablar de ejecución de aplicaciones multi-hilo y multi-subproceso. La posibilidad de ejecutar varios procesos simultáneos dentro de una aplicación .NET es una tarea de la que se encarga también el CLR.

Por último, comentar que el CLR es también el responsable de garantizar la seguridad de ejecución de nuestras aplicaciones .NET.

En definitiva, el CLR es el encargado de gestionar la ejecución de una aplicación .NET. Debido a esta responsabilidad, a las aplicaciones de .NET se las conoce como aplicaciones «manejadas» o aplicaciones de código gestionado.