Novedades de .NET Standard

.NET Standard es una especificación formal que define un conjunto de API con control de versiones que debe estar disponible en las implementaciones de .NET que cumplen con esa versión del estándar. .NET Standard está dirigido a los desarrolladores de bibliotecas. Una biblioteca que tenga como destino una versión estándar de .NET Standard se puede usar en cualquier implementación de .NET o Xamarin que admita esa versión del estándar.

.NET Standard se incluye con el SDK de .NET. También se incluye con Visual Studio si selecciona la carga de trabajo de .NET.

.NET Standard 2.1 es la última versión que se publicará de .NET Standard. Para obtener más información, vea .NET 5+ y .NET Standard.

Implementaciones de .NET compatibles

.NET Standard 2.1 es compatible con las implementaciones siguientes de .NET:

  • .NET Core 3.0 o posterior (incl. .NET 5 y versiones posteriores)
  • Mono 6.4 o versiones posteriores
  • Xamarin.iOS 12.16 o versiones posteriores
  • Xamarin.Android 10.0 o versiones posteriores

.NET Standard 2.0 es compatible con las implementaciones siguientes de .NET:

  • .NET Core 2.0 o posterior (incl. .NET 5 y versiones posteriores)
  • .NET Framework 4.6.1 o versiones posteriores
  • Mono 5.4 o versiones posteriores
  • Xamarin.iOS 10.14 o versiones posteriores
  • Xamarin.Mac 3.8 o versiones posteriores
  • Xamarin.Android 8.0 o versiones posteriores
  • Plataforma universal de Windows 10.0.16299 o versiones posteriores

Novedades de .NET Standard 2.1

.NET Standard 2.1 agrega muchas API al estándar. Algunas de ellas son nuevas API y otras son API existentes que ayudan a converger aún más las implementaciones de .NET. Si quiere obtener una lista de las API agregadas a .NET Standard 2.1, vea comparación entre .NET Standard 2.1 y 2.0.

Para obtener más información, consulte la entrada de blog Anuncio de .NET Standard 2.1.

Novedades de .NET Standard 2.0

.NET Standard 2.0 incluye las siguientes características nuevas.

Un conjunto de API ampliamente expandido

Con la versión 1.6, .NET Standard incluía un subconjunto relativamente pequeño de API. Entre las excluidas había muchas API usadas habitualmente en .NET Framework o Xamarin. Esto complica el desarrollo, ya que los desarrolladores tienen que encontrar sustitutas adecuadas para API familiares para desarrollar aplicaciones y bibliotecas destinadas a varias implementaciones de .NET. .NET Standard 2.0 soluciona esta limitación con la incorporación de más de 20 000 API más de las que estaban disponibles en .NET Standard 1.6, la versión anterior del estándar. Si quiere obtener una lista de las API agregadas a .NET Standard 2.0, vea comparación entre .NET Standard 2.0 y 1.6.

Alguna de las adiciones al espacio de nombres System de .NET Standard 2.0 incluyen:

  • Compatibilidad con la clase AppDomain.
  • Mayor compatibilidad para trabajar con matrices de miembros adicionales en la clase Array.
  • Mayor compatibilidad para trabajar con atributos de miembros adicionales en la clase Attribute.
  • Mayor compatibilidad del calendario y opciones de formato adicionales para los valores DateTime.
  • Funcionalidad de redondeo Decimal adicional.
  • Funcionalidad adicional en la clase Environment.
  • Control mejorado sobre el recolector de elementos no utilizados en la clase GC.
  • Compatibilidad mejorada para la comparación de cadenas, la enumeración y la normalización en la clase String.
  • Compatibilidad para los tiempos de transición y los ajustes del horario de verano en las clases TimeZoneInfo.AdjustmentRule y TimeZoneInfo.TransitionTime.
  • Funcionalidad mejorada significativamente en la clase Type.
  • Mejor compatibilidad para la deserialización de objetos de excepción mediante la adición de un constructor de excepción con los parámetros SerializationInfo y StreamingContext.

Compatibilidad con las bibliotecas .NET Framework

Muchas bibliotecas tienen como destino .NET Framework en lugar de .NET Standard. Sin embargo, la mayoría de las llamadas de esas bibliotecas se realizan a las API incluidas en .NET Standard 2.0. A partir de .NET Standard 2.0, puede acceder a las bibliotecas de .NET Framework desde una biblioteca de .NET Standard usando una corrección de compatibilidad. Este nivel de compatibilidad es transparente para los desarrolladores; no tiene que hacer nada para aprovechar las ventajas de las bibliotecas de .NET Framework.

El único requisito es que las API a las que llaman las bibliotecas de clases .NET Framework estén incluidas en .NET Standard 2.0.

Compatibilidad con Visual Basic

Ahora puede desarrollar bibliotecas de .NET Standard en Visual Basic. Visual Studio 2019 y Visual Studio 2017, versión 15.3 o una posterior con la carga de trabajo de .NET Core instalada, incluyen una plantilla de la biblioteca de clases .NET Standard. Para los desarrolladores de Visual Basic que usan otras herramientas y entornos de desarrollo, puede usar el comando dotnet new para crear un proyecto de biblioteca de .NET Standard. Para más información, vea Compatibilidad con herramientas de bibliotecas estándar de .NET.

Compatibilidad con herramientas de bibliotecas de .NET Standard

Con la versión de .NET Core 2.0 y .NET Standard 2.0, Visual Studio 2017 y la CLI de .NET incluyen compatibilidad con herramientas para crear bibliotecas de .NET Standard.

Si instala Visual Studio con la carga de trabajo de desarrollo multiplataforma de .NET Core, puede crear un proyecto de biblioteca de .NET Standard 2.0 al usar una plantilla de proyecto, como se muestra en la ilustración siguiente:

Add New .NET Standard library project

Si usa la CLI de .NET, el comando dotnet new siguiente crea un proyecto de biblioteca de clases que tiene como destino .NET Standard 2.0:

dotnet new classlib

Vea también