Novidades do .NET 5

O .NET 5 é a próxima versão principal do .NET Core a seguir 3,1. Nomeamos essa nova versão do .NET 5 em vez do .NET Core 4 por dois motivos:

  • Pulamos os números de versão 4.x para evitar confusão com .NET Framework 4.x.
  • Tiramos "Core" do nome para enfatizar que essa é a implementação principal do .NET daqui para frente. O .NET 5 dá suporte a mais tipos de aplicativos e mais plataformas do que .NET Core ou .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 .NET Framework

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

Tecnologia Alternativa recomendada
Web Forms ASP.NET Core Blazor ou Razor Pages
Fluxo de trabalho do Windows (WF) Elsa-Workflows

Windows Communication Foundation

A implementação original do WCF (Windows Communication Foundation) só tinha suporte no Windows. No entanto, há uma porta de cliente disponível no .NET Foundation. Ele é totalmente de código aberto, multiplataforma e compatível com a Microsoft. Os principais pacotes NuGet estão listados abaixo:

Os componentes do servidor que complementam as bibliotecas de clientes mencionadas acima estão disponíveis por meio do CoreWCF. A partir de abril de 2022, o CoreWCF tem suporte oficial da Microsoft. No entanto, para uma alternativa ao WCF, considere gRPC.

O .NET 5 não substitui .NET Standard

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

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

Atualizações de C#

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

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

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

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

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

Para obter mais informações sobre os recursos disponíveis do C# 9, consulte Novidades no C# 9.

Geradores de origem

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

Para obter mais informações sobre geradores de origem, consulte Introdução a geradores de origem C# e Amostras de gerador de origem C#.

Atualizações de F#

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

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

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

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

Esse formato é semelhante à função sprintf que formata uma cadeia de caracteres com base em entradas fortemente tipadas.

Para saber mais, consulte Novidades do F# 5.

Atualizações de Visual Basic

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

Descrição Parâmetro dotnet new
Aplicativo do Console console
Biblioteca de classes classlib
Aplicativo WPF wpf
Biblioteca de classes do WPF wpflib
Biblioteca de Controles Personalizados do WPF wpfcustomcontrollib
Biblioteca de controle de usuário WPF wpfusercontrollib
Aplicativo Windows Forms (WinForms) winforms
Biblioteca de Classes Windows Forms (WinForms) winformslib
Projeto de Teste de Unidade mstest
Projeto de Teste do NUnit 3 nunit
Item de Teste do NUnit 3 nunit-test
Projeto de Teste xUnit xunit

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

Novos recursos de System.Text.Json

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

Confira também