Muchos cambios han sucedido en Microsoft desde el año 2014, y uno de ellos tiene que ver con Open Source. La diversa oferta de servicios en Azure que no utilizan tecnología propietaria, o proyectos fuertes como el navegador web Microsoft Edge y el editor de código fuente Visual Studio Code se encuentran en la plataforma de GitHub a código abierto para todo el mundo, esperando que cualquier desarrollador o conocedor de programación aporte contribuciones y de retroalimentación.
Lo anterior está bastante bien y se encuentra basado en la mejora de sus productos por gente que no trabaja directamente en la empresa. Que te parecería ahora la idea de “mejorar la tecnología con la que se hacen esos productos”, yo te puedo decir que ya se puede.
Y es que ahora el .NET Framework, la plataforma de desarrollo que permite construir cualquier tipo software basado en su arquitectura, también tiene su lado Open Source, y lo veremos un poco más adelante. Primero recordemos que es el .NET Framework.
¿Qué es el .NET Framework?
.NET Framework es toda una arquitectura tecnológica desarrollada por Microsoft para la creación y distribución del software. Esto quiere decir que, mediante las herramientas de desarrollo proporcionadas por esta tecnología, los programadores pueden crear aplicaciones muy diversas, tales como:
- Aplicaciones basadas en servicios para la web. Aquellas que nos permiten interoperabilidad entre tecnologías distintas para intercambiar información.
- Aplicaciones para escritorio. Aquellas que utilizamos de manera constante principalmente en oficina y que requieren mucha interacción con el teclado y mouse.
- Aplicaciones móviles. Aquellas que tenemos instaladas en nuestros teléfonos inteligentes y están completamente diseñadas para trabajar de modo táctil.
- Aplicaciones para la nube. Aquellas que están hospedadas en los centros de datos de grandes empresas que rentan su infraestructura de computo a cambio de pago por suscripción.
- Aplicaciones web. Aquellas que no requieren estar instaladas en nuestra computadora y que únicamente necesitan ser interpretadas por cualquier navegador web para su correcto funcionamiento
- Aplicaciones embebidas. Aquellas que necesitan instalarse en tarjetas programables como Raspberry Pi y que tienen objetivos muy específicos como: controlar hardware, leer datos desde sensores externos, entre muchas otras cosas. Muy orientadas a Internet de las Cosas.
A groso modo, los principales componentes del .NET Framework son:
Entorno de ejecución común / Common Language Runtime CLR
Se encarga de la ejecución del código de las aplicaciones, sus principales funcionalidades:
- Administra el código en tiempo de ejecución, recupera memoria no utilizada.
- Proporciona un sistema común de tipos para todos los lenguajes, llamado CTS (Common Type System)
- Facilita la distribución e instalación de software mediante las librerías (DLL).
- Gestiona la seguridad del código ejecutado.
Jerarquía de Clases Base / Base Classes
Aquí hablamos de la total funcionalidad a través de las clases en .Net Framework, algunas categorías por mencionar solo unas de ellas:
- Trabajo con archivos.
- Administración bases de datos.
- Construcción de aplicaciones web.
- Software basado en ventanas.
- Aplicaciones de consola.
- Aplicaciones móviles.
- Servicios para la nube.
Motor de generación de interfaces gráficas / Engine of GUI
Nos referimos al código que viene por defecto en cualquier proyecto generado por Visual Studio que permite incluir interfaces graficas listas para manipularse y no construirlas desde cero.
Ahora bien, ya que recordamos que es el .NET Framework, describamos que es .Net Core
¿Qué es el .NET Core?
.NET Core es como el hermano menor de .NET, pero Open Source. Representa una versión compacta (hasta el momento) de .NET diseñada para trabajar en diferentes plataformas (Windows, Linux y Mac OS).
Otra plataforma que no podemos dejar de mencionar es Xamarin, ahora adquirido por la compañía para el desarrollo de aplicaciones móviles multiplataforma. El panorama actual es el siguiente:
Saquemos algunas conclusiones:
- Existen dos versiones .Net: El que ya conocemos hace mucho y con el que podemos programar prácticamente cualquier tipo de software para Windows y el .Net Core con el que podemos programar para Windows, Mac y Linux, sin embargo, no tiene todo el potencial (Clases Base) como .Net Framework. El .Net Framework se mantiene cerrado mientras que .Net Core es Open Source.
- Xamarin, es una plataforma separada del .Net Framework con el que podemos desarrollar código para dispositivos móviles a modo multiplataforma (Android, iOS, Windows Phone) utilizando el mismo código y escribiendo en lenguaje C# con Visual Studio.
La visión que tiene Microsoft en un futuro, es la integración de todo lo que existe hoy en un solo Framework, y ahí encontramos un gran reto.
Estos son algunos enlaces que te recomiendo visitar:
Sigueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand