Novidades no .NET Standard

O .NET Standard é uma especificação formal que define um conjunto com versões das APIs que devem estar disponíveis em implementações .NET que estejam de acordo com a versão do Standard. O .NET Standard é destinado a desenvolvedores de bibliotecas. Uma biblioteca direcionada a uma versão do .NET Standard pode ser usada em qualquer implementação do .NET ou do Xamarin que dê suporte a essa versão do Standard.

O .NET Standard está incluído no SDK do .NET. Ele também será incluído no Visual Studio se você selecionar a carga de trabalho do .NET.

O .NET Standard 2.1 é a última versão do .NET Standard que será lançada. Para obter mais informações, confira .NET 5+ e .NET Standard.

Implementações .NET com suporte

O .NET Standard 2.1 tem suporte das seguintes implementações do .NET:

  • .NET Core 3.0 ou posterior (incluindo .NET 5 e posterior)
  • Mono 6.4 ou posterior
  • Xamarin.iOS 12.16 ou posterior
  • Xamarin.Android 10.0 ou posterior

O .NET Standard 2.0 tem suporte das seguintes implementações do .NET:

  • .NET Core 2.0 ou posterior (incluindo .NET 5 e posterior)
  • .NET Framework 4.6.1 ou posterior
  • Mono 5.4 ou posterior
  • Xamarin.iOS 10.14 ou posterior
  • Xamarin.Mac 3.8 ou posterior
  • Xamarin.Android 8.0 ou posterior
  • Plataforma Universal do Windows 10.0.16299 ou posterior

Novidades no .NET Standard 2.1

O .NET Standard 2.1 adiciona muitas APIs ao Standard. Algumas delas são novas APIs e outras são APIs existentes que ajudam a convergir ainda mais as implementações do .NET. Para obter uma lista com as APIs que foram adicionadas ao .NET Standard 2.1, confira .NET Standard 2.1 versus 2.0.

Para obter mais informações, consulte a postagem no blog Anunciando o .NET Standard 2.1.

Novidades no .NET Standard 2.0

O .NET Standard 2.0 inclui estes recursos novos.

Um conjunto muito maior de APIs

Na versão 1.6, o .NET Standard incluía um subconjunto de APIs comparativamente pequeno. Entre os excluídos estavam várias APIs usadas normalmente no .NET Framework ou no Xamarin. Isso complica o desenvolvimento, pois exige que os desenvolvedores encontrem substituições adequadas para APIs conhecidas quando desenvolvem aplicativos e bibliotecas direcionadas a várias implementações do .NET. O .NET Standard 2.0 resolve essa limitação adicionando mais de 20.000 APIs que estavam disponíveis no .NET Standard 1.6, a versão anterior do Standard. Para obter uma lista com as APIs que foram adicionadas ao .NET Standard 2.0, confira .NET Standard 2.0 versus 1.6.

Algumas das adições ao namespace System no .NET Standard 2.0 incluem:

  • Suporte para a classe AppDomain.
  • Aprimoramento do suporte para trabalhar com matrizes de membros adicionais na classe Array.
  • Aprimoramento do suporte para trabalhar com atributos de membros adicionais na classe Attribute.
  • Aprimoramento do suporte ao calendário e opções de formatação adicionais para valores DateTime.
  • Funcionalidade de arredondamento Decimal adicional.
  • Funcionalidade adicional na classe Environment.
  • Aprimoramento do controle sobre o coletor de lixo por meio da classe GC.
  • Aprimoramento do suporte para comparação, enumeração e normalização de cadeia de caracteres na classe String.
  • Suporte para ajustes de horário de verão e tempos de transição nas classes TimeZoneInfo.AdjustmentRule e TimeZoneInfo.TransitionTime.
  • Aprimoramento considerável da funcionalidade na classe Type.
  • Aprimoramento do suporte para desserialização de objetos de exceção com a adição de um construtor de exceção com os parâmetros SerializationInfo e StreamingContext.

Suporte a bibliotecas do .NET Framework

Muitas bibliotecas são destinadas ao .NET Framework em vez do .NET Standard. No entanto, a maioria das chamadas nessas bibliotecas são para APIs incluídas no .NET Standard 2.0. A partir do .NET Standard 2.0, você pode acessar bibliotecas do .NET Framework de uma biblioteca do .NET Standard usando uma shim de compatibilidade. Essa camada de compatibilidade é transparente para os desenvolvedores; você não precisa fazer nada para tirar proveito das bibliotecas do .NET Framework.

O único requisito é que as APIs chamadas pela biblioteca de classes .NET Framework estejam incluídas no .NET Standard 2.0.

Suporte para Visual Basic

Agora, você pode desenvolver bibliotecas .NET Standard no Visual Basic. O Visual Studio 2019 e o Visual Studio 2017 versão 15.3 ou posterior com a carga de trabalho do .NET Core instalada incluem um modelo de biblioteca de classes .NET Standard. Para desenvolvedores em Visual Basic que usam outros ambientes e ferramentas de desenvolvimento, use o comando dotnet new para criar um projeto de biblioteca do .NET Standard. Para saber mais, confira o Suporte a ferramentas para bibliotecas .NET Standard.

Suporte a ferramentas para bibliotecas .NET Standard

Com o lançamento do .NET Core 2.0 e do .NET Standard 2.0, o Visual Studio 2017 e a CLI do .NET incluem o suporte a ferramentas para criação de bibliotecas .NET Standard.

Se instalar o Visual Studio com a carga de trabalho desenvolvimento de plataforma cruzada do .NET Core, você poderá criar um projeto de biblioteca .NET Standard 2.0 usando um modelo de projeto, como mostra a figura a seguir:

Add New .NET Standard library project

Se você estiver usando a CLI do .NET, o seguinte comando dotnet new criará um projeto de biblioteca de classes direcionado ao .NET Standard 2.0:

dotnet new classlib

Confira também