O que há de novo no .NET 5

O .NET 5 é a próxima versão principal do .NET Core após a versão 3.1. Nomeamos esta nova versão de .NET 5 em vez de .NET Core 4 por dois motivos:

  • Ignoramos os números de versão 4.x para evitar confusão com o .NET Framework 4.x.
  • Retiramos "Core" do nome para enfatizar que esta é a principal implementação do .NET no futuro. O .NET 5 suporta mais tipos de aplicativos e mais plataformas do que o .NET Core ou o .NET Framework.

ASP.NET Core 5.0 é baseado no .NET 5, mas mantém o nome "Core" para evitar confundi-lo com ASP.NET MVC 5. Da mesma forma, o Entity Framework Core 5.0 mantém o nome "Core" para evitar confundi-lo com o Entity Framework 5 e 6.

O .NET 5 inclui os seguintes aprimoramentos e novos recursos em comparação com o .NET Core 3.1:

O .NET 5 não substitui o .NET Framework

O .NET 5 e versões posteriores são a principal implementação do .NET no futuro, mas o .NET Framework 4.x ainda é suportado. Não há planos para portar as seguintes tecnologias do .NET Framework para o .NET 5, mas há alternativas no .NET:

Tecnologia Alternativa recomendada
Web Forms ASP.NET Páginas Core Blazor ou Razor
Fluxo de trabalho do Windows (WF) Elsa-Fluxos de trabalho

Windows Communication Foundation

A implementação original do Windows Communication Foundation (WCF) era suportada apenas no Windows. No entanto, há uma porta de cliente disponível no .NET Foundation. É totalmente de código aberto, multiplataforma e suportado pela Microsoft. Os principais pacotes NuGet estão listados abaixo:

Os componentes de servidor que complementam as bibliotecas de cliente acima mencionadas estão disponíveis através do CoreWCF. A partir de abril de 2022, o CoreWCF é oficialmente suportado pela Microsoft. No entanto, para uma alternativa ao WCF, considere gRPC.

O .NET 5 não substitui o .NET Standard

O desenvolvimento de novos aplicativos pode especificar o net5.0 Target Framework Moniker (TFM) para todos os tipos de projeto, incluindo bibliotecas de classes. O compartilhamento de código entre cargas de trabalho do .NET 5 é simplificado: tudo o que você precisa é do net5.0 TFM.

Para aplicativos e bibliotecas do .NET 5, o net5.0 TFM combina e substitui os netcoreapp e netstandard TFMs. No entanto, se você planeja compartilhar código entre cargas de trabalho do .NET Framework, .NET Core e .NET 5, poderá fazê-lo especificando netstandard2.0 como seu TFM. Para obter mais informações, consulte .NET Standard.

Atualizações em C#

Os desenvolvedores que escrevem aplicativos .NET 5 terão acesso à versão e aos recursos mais recentes do C#. O .NET 5 é emparelhado com o C# 9, que traz muitos recursos novos para a linguagem. Aqui estão alguns destaques:

  • Registros: tipos de referência com semântica de igualdade baseada em valores e mutação não destrutiva suportada por uma nova with expressão.

  • Correspondência de padrões relacionais: Estende os recursos de correspondência de padrões a operadores relacionais para avaliações e expressões comparativas, incluindo padrões lógicos - novas palavras-chave and, ore not.

  • Instruções de nível superior: Como um meio para acelerar a adoção e o aprendizado do C#, o Main método pode ser omitido e um aplicativo tão simples quanto o exemplo a seguir é válido:

    System.Console.Write("Hello world!");
    
  • Ponteiros de função: construções de linguagem que expõem os seguintes opcodes de linguagem intermediária (IL): ldftn e calli.

Para obter mais informações sobre os recursos disponíveis do C# 9, consulte O que há de novo no C# 9.

Geradores de origem

Além de alguns dos novos recursos C# destacados, os geradores de código-fonte estão entrando em projetos de desenvolvedores. Os geradores de código-fonte permitem que o código executado durante a compilação inspecione seu programa e produza arquivos adicionais que são compilados junto com o resto do código.

Para obter mais informações sobre geradores de origem, consulte Apresentando geradores de código-fonte C# e exemplos de geradores de código-fonte C#.

Atualizações em F#

F# é a linguagem de programação funcional do .NET e, com o .NET 5, os desenvolvedores têm acesso ao F# 5. Um dos novos recursos são as strings interpoladas, semelhantes às strings interpoladas em C#, e até mesmo JavaScript.

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

Além da interpolação básica de cordas, há a interpolação digitada. Com interpolação digitada, um determinado tipo deve corresponder ao especificador de formato.

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

Este formato é semelhante à função que formata sprintf uma cadeia de caracteres com base em entradas seguras para tipos.

Para obter mais informações, consulte Novidades no F# 5.

Atualizações do Visual Basic

Não há novos recursos de linguagem para Visual Basic no .NET 5. No entanto, com o .NET 5, o suporte do Visual Basic é estendido para:

Description dotnet new parâmetro
Aplicação de Consola console
Biblioteca de classes classlib
Aplicação WPF wpf
Biblioteca de classes do WPF wpflib
Biblioteca de controle personalizado do WPF wpfcustomcontrollib
Biblioteca de controle de usuário do WPF wpfusercontrollib
Aplicativo Windows Forms (WinForms) winforms
Biblioteca de classes do Windows Forms (WinForms) winformslib
Projeto de Teste Unitário mstest
Projeto de teste NUnit 3 nunit
Item de teste NUnit 3 nunit-test
Projeto de Teste xUnit xunit

Para obter mais informações sobre modelos de projeto da CLI do .NET, consulte dotnet new.

Novos recursos System.Text.Json

Há novos recursos em e para System.Text.Json:

Consulte também