En el año 2000 Microsoft lanzó por primera vez, de forma oficial, la plataforma.NET. Pero, un par de años después, el framework fue lanzado como parte de Visual Studio .NET.
Con el paso del tiempo, las plataformas de cada tecnología han cambiado de forma significativa. En este artículo vamos a explorar las características principales de .NET, su evolución en el tiempo, los componentes de la arquitectura, funcionamiento, así como los lenguajes de programación, entre otros.
. NET ¿Qué es?
.NET es una plataforma de desarrollo de aplicaciones que permite crear y ejecutar servicios WEB y aplicaciones de internet.
En su plataforma de desarrollo se pueden utilizar variedad de lenguajes, herramientas, implementaciones y bibliotecas para la creación de aplicaciones. Hoy en día, es la plataforma más utilizada para la realización de nuevos proyectos de desarrollo de software junto con Java.
.NET es una colección de distintas plataformas de software de Microsoft. El framework fue creado como una competencia directa para la plataforma Java. Los entornos de aplicación se desarrollan y ejecutan en base a .NET.
El término .NET le sirvió a Microsoft como término de moda y de marketing para nuevos productos muy diferentes como sistemas operativos, servidores y software de oficina hasta, aproximadamente, el año 2003. Años posteriores el término se centró en el desarrollo de software.
El entorno Microsoft.NET cambió significativamente a lo largo de los años ganando importancia, aunque inicialmente no tuvo mucho éxito. En la actualidad, el framework .NET es indispensable entre los desarrolladores de aplicaciones.
Arquitectura de .NET y sus componentes
En el desarrollo de aplicaciones, los componentes de la arquitectura de .NET juegan un papel muy importante. A estos componentes los podemos clasificar en .NET Framework, correspondiente a un framework monolítico, siendo el más actual .NET Core framework, siendo modular, la plataforma Xamarin y la específica de Windows UWP.
A continuación, explicamos cada componente de la Arquitectura de .NET.
Componente: implementaciones.
.NET Framework se divide en diferentes categorías y subcategorías de programas. Estos contienen diferentes modelos de ejecución de los cuales, el usuario, debe de elegir al desarrollador del software. La base del desarrollo corresponde a la biblioteca de clases, estando disponible como fuente compartida desde el 2014. Esta biblioteca permite el desarrollo de aplicaciones para varios entornos como Windows o para plataformas como Android o MacOS.
Normalmente, esta plataforma de desarrollo se usa para la creación de aplicaciones de Windows, Windows Server, Windows Mobile, etc. con Asp.net, Windows Forms y WPF.
.NET Core es otra alternativa que se separó en 2015 del .NET Framework. Esta plataforma es muy apreciada por muchos desarrolladores debido a la mejora de la modularidad y a su portabilidad más sencilla.
De forma general desarrolla aplicaciones para Windows UWP y Asp.NetCore. Igualmente es utilizado para crear aplicaciones en la nube. La biblioteca de clases de Core EX es compatible con Windows, Linux y MacOS.
Otra de las implementaciones a resaltar es la plataforma Xamarin. Con ella se pueden desarrollar aplicaciones para iOS, Android, watchOs, twOs y Windows. Dispone de herramientas y bibliotecas específicas.
Por último, destacar la plataforma UWP, que corresponde a la plataforma universal de Windows. Aunque parte de los desarrolladores la sitúan dentro de .NET Core, Microsoft la considera una implementación más.
Componente: Standard Library.
La biblioteca de clases portables o PCL era uno de los componentes que formaban parte de la arquitectura. Por medio de este componente se compartía el código de varios proyectos específicos tanto en Android, IOS, Windows y Windows Phone. Pero la biblioteca de clases portables presentaba desventajas de compatibilidad entre implementaciones.
Con la llegada de la última versión de Visual Studio, en el año 2017, las PCL y las bibliotecas base de cada implementación, fueron borradas del sistema ya que quedaron obsoletas y fueron reemplazadas por .NET Standard Library.
Además, existen otras API que son suplementarias y específicas de los sistemas operativos en los que se ejecuta.
Componente: Entorno en tiempo de ejecución.
Este componente es el encargado de ejecutar el programa administrado o el intervalo de tiempo en el que el software es ejecutado en un sistema operativo. Según la implementación usada:
- .NET framewordk: Common Language Runtime (CLR).
- .NET Core: CoreCommon Language Runtime (Core CLR).
- Xamarin: entorno de implementación Mono.
- UWP: .Net Native.
Componente: Infraestructura común.
En este componente es donde se encuentran los lenguajes de programación: C#, F#, VB y el motor de compilación Ms Build con el fin de compilar los proyectos.
Componente: Herramientas de desarrollo.
Por último, nos encontramos el componente de las herramientas de desarrollo para la realización de aplicaciones web o móviles en los diferentes sistemas operativos.
- Nuget (administrador de paquetes para Microsoft).
- Visual Studio, Xamarin Studio, JetBrains Rider, Visual Studio para Mac (Entorno de desarrollo integrado).
- Vidual Studio Core y Plugin OmniSharp (Editores de código).
Funcionamiento de .NET
Para desarrollar programas sencillos basados en el .NET framework es suficiente un editor de texto y un compilador. Con esto ya se puede desarrollar aplicaciones sencillas de Windows.
Para el desarrollo de proyectos más grandes, Microsoft dispone del entorno de desarrollo Visual Studio en distintas ediciones. Este entorno contiene muchas herramientas como, por ejemplo, para el análisis o solución de problemas además del editor de texto. Por otro lado, el compilador es el responsable de traducir el código escrito a un lenguaje que pueda ser leído por el ordenador.
Desde la estandarización de las versiones de .NET, el lenguaje intermedio se denomina Common Intermediate Language (CIL). Este idioma permite a los desarrolladores trabajar en el mismo proyecto en distintos lenguajes de programación, debido a que el código escrito del programa se traduce al mismo lenguaje intermedio. El framework permite a los usuarios el desarrollo de partes de programas en C#, C++ y VB.NET y, posteriormente, combinarlos y usarlos juntos en un proyecto.
Además, Microsoft ofrece la posibilidad de crear programas con HTML5 y JavaScript basándose en el .NET Framework.
Lenguajes de programación .NET
Entre los lenguajes de programación mayormente utilizados en .NET son C# y Visual Basic .NET. Otros de los lenguajes más comunes son F# junto con JavaScript, el cual, este último fue adherido y aceptado en 2013.
El lenguaje C++ también puede ser utilizado como una extensión del C++/CLI. Esta extensión dispone de la posibilidad de transferir objetos con otros lenguajes basados en objetos. Python también es utilizado de forma regular.
Utilidad de .NET
El objetivo de .NET es el de la creación de una plataforma para el desarrollo de software neutral, moderna y flexible para desarrollar todo tipo de software proporcionando a los usuarios y a los desarrolladores una interfaz interoperable.
.NET sirve para desarrollar todo tipo de aplicaciones como aplicaciones de web, aplicaciones de escritorio, servicios de web, servicios de sistemas, programación de aplicaciones IoT y Machine Learning, rutinas de bases de datos.
Las ventajas de .NET
El entorno de desarrollo de .NET ofrece una amplia gama de ventajas para los programadores como son, entre otras, las siguientes:
- Lenguajes de programación múltiples: brinda flexibilidad a los desarrolladores para elegir el idioma que mejor se adapte a sus necesidades y preferencias.
- Portabilidad: .NET es una plataforma multiplataforma que se puede ejecutar en varios sistemas operativos lo que facilita la creación de aplicaciones que pueden ejecutarse en diferentes entornos.
- Seguridad: Incorpora características de seguridad robustas, como la administración e la seguridad de la memoria, la seguridad de los ensamblados y el código, y la autentificación de usuarios, lo que ayuda a proteger las aplicaciones amenazadas de seguridad.
- Interoperabilidad: los programas desarrollados y elementos de software pueden usar las funcionalidades de programas desarrollados fuera del entorno .NET.
- Herramientas de desarrollo integradas: Microsoft ofrece un conjunto de herramientas de desarrollo integradas, como Visual Studio, que facilita el desarrollo, la depuración y el despliegue de aplicaciones .NET.
- Soporte de la comunidad y de la empresa: .NET cuenta con una gran comunidad de desarrolladores activos y un fuerte respaldo por parte de Microsoft, lo que garantiza un amplio soporte técnico, recursos de aprendizaje y actualizaciones regulares del marco.
- Rendimiento: .NET utiliza la compilación Just-In-Time (JIT) y la compilación anticipada para optimizar el rendimiento de las aplicaciones, lo que resulta en una ejecución más rápida y eficiente del código.
- Amplia biblioteca de clases: proporciona una amplia biblioteca de clases base (Base Class Library-BCL) que contiene una variedad de funcionalidades predefinidas para tareas comunes, lo que permite a los desarrolladores construir aplicaciones de manera rápida y eficiente.
Si estás interesado en que te ayudemos con tu proyecto, ponte en contacto con nosotros y un equipo de profesionales especializados en el área .NET te ayudará a definir tu proyecto personalizado.