Saltar al contenido

.NET Cap 4/ ¿Que es .NET Standard?- BCL, PLC

Microsoft .NET tiene cuatro Implementaciones o Plataformas: .Net Framework, .Net Core, Mono y UWP.

.Net Framework es la alternativa que veníamos usando hasta el día de hoy en el desarrollo de nuestras aplicaciones de escritorio y la nube para la plataforma Windows.

.Net Core es la versión multiplataforma más reducida y compacta, tiene un énfasis muy fuerte en lo que es la optimización del rendimiento, admite Windows, macOS y Linux y puede usarse para compilar aplicaciones de dispositivo, nube e IoT.

Xamarin/Mono nos permite desarrollar aplicaciones móviles basada en el RunTime de mono, compatible con Android, Mac, iOS, tvOS y watchOS, y se centra principalmente en una superficie pequeña. Mono también proporciona juegos creados con el motor de Unity.

UWP (Plataforma Universal de Windows), con ella podemos crear aplicaciones comunes compatibles con todos los dispositivos que ejecutan Windows, tanto Computadoras, tabletas, phablets, teléfonos e incluso la consola Xbox.

Sin embargo; cada una de estas plataformas tiene una forma diferente de implementación, particularmente en las API de bajo nivel, cada implementación tiene su propia biblioteca de clases base y esto genera que todo esté descentralizado. No hay una unificación entre las implementaciones, se supone que todo de .NET  debería ser como una familia, donde debe ver algo común entre todos ellos o la posibilidad de compartir código entre ellos, poder migrar de una plataforma a otra de forma sencilla, o simplemente extender.

Por lo tanto, hubo muchas verticales para las plataformas de .NET y bibliotecas de clase bases similares que evolucionaron por separado y fueron entregadas por equipos separados en Microsoft.

Bueno para solventar este inconveniente, se introdujo una nueva forma de compilar bibliotecas, que se denomina biblioteca de clases portable (PLC).

Biblioteca de clases portable (PLC)

Se trata de un proyecto de biblioteca reutilizable en el que se especifica con qué plataforma (Windows, Android, iOS…) será compatible, este proyecto ha permitido a los desarrolladores construir bibliotecas portátiles que expusieron solo aquellas bibliotecas de clases base que son comunes entre las plataformas seleccionadas, por ejemplo; Si selecciona las plataformas de destino como Android – iOS, la biblioteca puede usar sólo las API que están comúnmente disponibles en ambas plataformas, si a éste agregamos más destino para Xbox, las API disponibles se reducirá.

Las API Común/Disponible se obtienen por la intersección de todas las plataformas y la biblioteca de clases base, entonces cuanto mayor sea el número de plataformas menor será el número de API común. Por lo tanto, las PCL aún tiene muchos inconvenientes, bueno al rescate, aparece .NET Standard.

¿Qué es .NET Standard?

Las bibliotecas de clases de .NET Standard, es simplemente es una fusión entre la biblioteca de clases base y la biblioteca de clases portable.

.Net Standard ha unificado las bibliotecas de clase base de las diferentes plataformas de .NET, y ha allanado la forma de compartir bibliotecas y también ha centralizado la evolución. Ahora reemplaza las bibliotecas de clases portables para crear bibliotecas reutilizables, principalmente tiene dos objetivos; definir un conjunto uniforme de API de bibliotecas de clase base (BLC) para implementar a todas las implementaciones .NET independientemente de la carga de trabajo y permite a los desarrolladores producir bibliotecas portátiles que se pueden usar en implementaciones de .NET utilizando este mismo conjunto de API.

.NET Standard está disponible desde la versión 15.3 de Visual Studio 2017, o la versión 7.1 de Visual Studio para Mac, para versiones anteriores solo tenemos las bibliotecas de clase portable (PCL).


¿Cuándo usar .NET Standard?

  • Cuando se requiera crear código portable para así poder utilizarlo desde cualquier plataforma.
  • Para migrar fácilmente de plataforma, por ejemplo, se tiene una aplicación de gran tamaño en .NET Framework por algún motivo se requiere migrar a .NET Core, lo cual resulta costoso y tiempo.
  • Poder compartir código entre proyectos de otras plataformas.

Conclusión

La finalidad de .NET Standard es establecer una mayor uniformidad en el ecosistema de .NET.

Hay tres tipos de bibliotecas de clases que puede usar:

  • Las bibliotecas de clases específicas de la plataforma (BCL) tienen acceso a todas las API de una plataforma determinada (por ejemplo, .NET Framework, Xamarin iOS), pero solo las pueden usar las aplicaciones y bibliotecas destinadas a esa plataforma.
  • Las bibliotecas de clases portables (PCL) tienen acceso a un subconjunto de API y las pueden usar las aplicaciones y bibliotecas que tienen como destino varias plataformas.
  • Las bibliotecas de clases de .NET Standard son una fusión del concepto de biblioteca específica de la plataforma y portable en un único modelo que ofrece lo mejor de ambas.

Los comentarios están cerrados.