¿Qué es .NET Framework? La respuesta de Microsoft a Java

¿Qué es .NET Framework? .NET definido

 .NET es un marco de desarrollo de software, y un ecosistema de herramientas, lenguajes y tiempos de ejecución que lo acompaña, creado por Microsoft para facilitar el desarrollo de aplicaciones en varias plataformas, desde computadoras de escritorio hasta dispositivos móviles. Aunque .NET (pronunciado dot net, y a veces escrito como .Net) estaba originalmente vinculado al sistema operativo y las plataformas Windows patentados de Microsoft cuando se lanzó a principios de la década de 2000, las aplicaciones .NET ahora se pueden escribir para la web, MacOS, iOS , Android, Linux y más, y .NET es un estándar formal y está oficialmente disponible como código abierto.

Microsoft describe .NET como "un entorno de programación consistente orientado a objetos, ya sea que el código de objeto se almacene y ejecute localmente, se ejecute localmente pero se distribuya por Internet o se ejecute de forma remota". .NET tiene como objetivo proporcionar una ejecución segura de código, ofrecer un mejor rendimiento que los lenguajes interpretados y hacer que la experiencia del desarrollador sea coherente en una amplia variedad de aplicaciones. 

Componentes principales de .NET Framework

.NET Framework ha existido durante casi 20 años y ha sufrido muchos cambios, con componentes que se implementaron y luego se desaprobaron durante ese tiempo. Por el momento, hay tres capas principales en .NET:

  • La biblioteca estándar .NET incluye los componentes que formarán la infraestructura para casi cualquier aplicación que escriba: clases y tipos que son útiles para realizar tareas cotidianas como tratar con cadenas y primitivas, crear conexiones de bases de datos, realizar E / S operaciones, etc.
  • Los modelos de aplicaciones opcionales contienen código de plomería para las diversas plataformas en las que puede implementar su aplicación .NET. Hay varios modelos de aplicaciones para aplicaciones de Windows (un legado de la estrecha asociación de .NET con el sistema operativo insignia en constante evolución de Microsoft) y también para otras plataformas: ASP.NET para aplicaciones web, por ejemplo, y modelos para Mac y varios plataformas móviles.
  • La infraestructura común es la capa base de componentes que permiten que todo el ecosistema se ejecute realmente en la práctica, desde compiladores hasta lenguajes y componentes de tiempo de ejecución. Estos son cruciales para comprender lo que .NET tiene para ofrecer, por lo que los veremos con más detalle en las siguientes secciones. 

Cómo funciona .NET Framework

Los componentes principales de .NET Framework trabajan juntos para facilitar el proceso de escritura de aplicaciones. La biblioteca estándar y los modelos de aplicaciones proporcionan una gran cantidad de código para manejar las tareas básicas de programación para que no tenga que reinventar la rueda con cada aplicación que cree. Y la infraestructura común se encarga de gran parte del trabajo de implementación de esas aplicaciones.

El código escrito en cualquiera de los lenguajes .NET (más sobre este tema en un momento) se compila en un lenguaje de código de bytes intermedio llamado Common Intermediate Language , o CIL. El código CIL no es legible por humanos, pero se puede portar a través de sistemas operativos y plataformas. El CIL se compila de nuevo por el Common Language Runtime , o CLR. Las implementaciones de CLR son específicas de la plataforma y compilan el código CIL en código legible por máquina que se puede ejecutar en la plataforma del momento. Las diferentes versiones de CLR admiten compilaciones justo a tiempo y anticipadas.

En el proceso de creación de código local legible por máquina, el CLR también administra una gran cantidad de funciones de aplicaciones de bajo nivel, como la recolección de basura y el subproceso, que es crucial para el rendimiento de la aplicación, pero que a menudo resulta tedioso para los desarrolladores. Juntos, el CIL y el CLR conforman la Infraestructura de lenguaje común de .NET (CLI, y sí, sabemos que todas estas abreviaturas son similares y confusas).

Todo esto debería sonar familiar para cualquiera que haya trabajado con la plataforma Java, ya que sigue el mismo paradigma básico: las grandes bibliotecas de clases disponibles, el código de bytes intermedio y el tiempo de ejecución específico de la plataforma que automatiza la gestión de la memoria son características de ambas ofertas. .NET se desarrolló a finales de los 90, durante el apogeo inicial de Java, y originalmente se posicionó como un competidor de la plataforma Java Enterprise Edition; el lenguaje Java y C #, el primer y más destacado lenguaje .NET, se derivan de C y son semánticamente similares.

¿Cuáles son los lenguajes de programación .NET?

C #, anunciado con mucha fanfarria tras el lanzamiento de .NET en 2000, es el lenguaje de programación .NET más famoso y utilizado. Microsoft lo desarrolló internamente como parte de la iniciativa .NET, y la mayoría de las clases de la biblioteca estándar .NET están escritas en C #. El lenguaje está orientado a objetos y está diseñado para ser lo suficientemente similar a C para que los desarrolladores de C, C ++, Java y JavaScript lo aprendan y usen rápidamente.

Actualmente, Microsoft también destaca otros dos lenguajes de programación que se pueden usar para escribir para .NET Framework. Uno es F #, un lenguaje de programación funcional que forma parte de la familia de lenguajes ML que, en última instancia, tiene sus raíces en LISP; el otro es Visual Basic, el venerable lenguaje de programación fácil de aprender de Microsoft para desarrollar aplicaciones cliente-servidor. Pero estos son solo la punta del iceberg: debido a que .NET está compuesto por estándares abiertos, cualquiera puede escribir un lenguaje que se compile en código de bytes CIL y que CLR pueda ejecutar. Wikipedia tiene una lista de más de 20 proyectos de lenguaje CLI que se mantienen actualmente. Casi todos representan puertos .NET de lenguajes existentes, desde Pascal hasta JavaScript e incluso COBOL.

El hecho de que esta diversidad de lenguajes pueda coexistir dentro de .NET Framework es uno de los puntos fuertes de la plataforma. Debido a que todo el código se compila en código de bytes CIL, a .NET realmente no le importa en qué idioma lo escriba; puede elegir un idioma en función de sus propias preferencias, las diferentes fortalezas y debilidades de cada idioma, o los diferentes aspectos de .NET Framework a los que cada idioma le da acceso (aquí hay algunas variaciones). Como se señaló, la mayor parte de la biblioteca estándar se escribió en C #, pero eso no le impide acceder a esas clases desde el código escrito en otros lenguajes CLI. De hecho, los componentes escritos en diferentes lenguajes CLI pueden interoperar libremente a través de una aplicación .NET.

.NET Framework frente a .NET Core (y más allá) 

Notará que hemos estado usando “.NET Framework” a lo largo de este artículo para referirnos a la plataforma en general. Estrictamente hablando, eso no es correcto: Microsoft usa esa frase para referirse a su propia implementación de larga data de .NET Standard, que se centra exclusivamente en Windows. Históricamente ha habido otras implementaciones de .NET; uno de los más famosos es Mono, una implementación de código abierto lanzada por primera vez en 2004 que hizo posible ejecutar aplicaciones .NET en Linux. (El lanzamiento dio lugar a cierta controversia, ya que esta era la época en la que todavía había bastante mala sangre entre Microsoft y la comunidad de código abierto). Mono ahora forma la base de la plataforma Xamarin, lo que hace posible construir .NET aplicaciones para iOS, Android y MacOS, así como Linux. Xamarin nació como una creación de los fundadores de Mono,pero la empresa que fundaron para respaldar el proyecto fue finalmente adquirida por Microsoft.

La tercera implementación principal de .NET de Microsoft es .NET Core, una implementación multiplataforma de .NET Standard que se lanzó como código abierto en 2016.NET Core se creó desde cero y eliminó parte del cruft que se había acumulado en .NET Framework, aunque también carecía de la gama completa de funciones. Tener varias versiones de .NET Standard, todas de Microsoft, es comprensiblemente algo confuso. En 2017, el columnista Simon Bisson se enfrentó a la cuestión de qué implementación debería usarse en qué contextos.

Pero todo eso va a cambiar en un futuro no muy lejano. En noviembre de 2020, Microsoft tiene la intención de unificar las tres implementaciones de .NET como .NET 5. .NET 5 será, en esencia, la próxima generación de .NET Core, con muchos componentes de .NET Framework y Xamarin incorporados. Sin embargo, varias API de .NET Framework no harán el viaje a .NET 5. La medida tiene como objetivo simplificar las cosas para los desarrolladores y centrar los esfuerzos de Microsoft.

¿Qué .NET Framework tengo?

Sin embargo, al momento de escribir estas líneas, eso es más de un año de descanso. La última versión actual de .NET Framework es 4.8; la versión actual de .NET Core es 3.0. Microsoft tiene una página con instrucciones sobre cómo puede saber qué versión de .NET Framework está instalada actualmente en su computadora.

¿Para qué se utiliza .NET? 

Así que todo eso te da una gran cantidad de qué y cómo; pero lo que quizás todavía se pregunte es por qué. ¿Por qué utilizar .NET Framework? El blog de Altexsoft tiene un buen desglose de los pros y los contras de .NET. En el lado positivo, .NET proporciona un modelo de programación orientado a objetos con un sistema de almacenamiento en caché simple y confiable y un IDE maduro, y permite una implementación flexible y un fácil mantenimiento. Además, la naturaleza multiplataforma de .NET permite que el código se transfiera a muchos tipos diferentes de puntos finales. .NET es más apropiado si está creando aplicaciones multiplataforma en infraestructuras a escala empresarial que desea poder escalar sin tener que reacondicionarse por completo.

Descargue .NET Framework

¿Listo para comenzar a experimentar con .NET? Descargue .NET Framework (para Windows) o .NET Core (para Windows, Linux o MacOS) del sitio web de Microsoft; Las imágenes de Docker también están disponibles. Puede encontrar Xamarin para iOS y Android en GitHub. ¡Feliz explorando!