Novidades no .NET Standard
O .NET Standard é uma especificação formal que define um conjunto de APIs com versão que deve estar disponível em implementações do .NET que estejam em conformidade com essa versão do padrão. O .NET Standard é direcionado para desenvolvedores de biblioteca. Uma biblioteca direcionada a uma versão do .NET Standard pode ser usada em qualquer implementação .NET ou Xamarin que dê suporte a essa versão do padrão.
O .NET Standard está incluído no SDK do .NET. Ele também será incluído com 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, consulte .NET 5+ e .NET Standard.
Implementações .NET com suporte
O .NET Standard 2.1 tem suporte nas 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 nas 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 padrão. 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 das APIs que foram adicionadas ao .NET Standard 2.1, consulte .NET Standard 2.1 vs 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 os novos recursos a seguir.
Um conjunto muito maior de APIs
Por meio da versão 1.6, o .NET Standard incluiu um subconjunto relativamente pequeno de APIs. Entre os excluídos estavam muitas APIs que eram comumente usadas em .NET Framework ou 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 a mais do que estavam disponíveis no .NET Standard 1.6, a versão anterior do padrão. Para obter uma lista das APIs que foram adicionadas ao .NET Standard 2.0, consulte .NET Standard 2.0 vs 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 têm como destino .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 .NET Framework bibliotecas de uma biblioteca .NET Standard usando um 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 devem ser incluídas no .NET Standard 2.0.
Suporte para Visual Basic
Agora, você pode desenvolver bibliotecas .NET Standard no Visual Basic. Visual Studio 2019 e Visual Studio versão 15.3 ou posterior de 2017 com a carga de trabalho do .NET Core instalada incluem um modelo da 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, tanto o Visual Studio 2017 quanto a CLI do .NET incluem suporte a ferramentas para criar 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:

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