Compartilhar via


Novidades no .NET 5

O .NET 5 é a próxima versão principal do .NET Core após a 3.1. Esta versão foi denominada .NET 5 em vez do .NET Core 4 por dois motivos:

  • Os números de versão 4.x foram ignorados para evitar confusão com o .NET Framework 4.x.
  • "Core" foi removido do nome para enfatizar que essa é a principal implementação 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 o .NET Framework

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

Tecnologia Alternativa recomendada
Formulários da Web 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. É totalmente de software livre, multiplataforma e com suporte da Microsoft. Os principais pacotes NuGet estão listados abaixo:

Os componentes do servidor que complementam as bibliotecas de cliente acima mencionadas estão disponíveis através de 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 o .NET Standard

O novo desenvolvimento de aplicativos pode especificar o net5.0 TFM (Target Framework Moniker) 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 TFMs netcoreapp e netstandard. No entanto, se você planeja compartilhar código entre cargas de trabalho do .NET Framework, .NET Core e .NET 5, você pode fazer isso especificando netstandard2.0 como seu TFM. Para obter mais informações, consulte .NET Standard.

Atualizações em C#

Os desenvolvedores que escreverem aplicativos .NET 5 terão acesso à versão e aos recursos mais recentes do C#. O .NET 5 é emparelhado com o C# 9, o que traz muitos novos recursos para o idioma. Aqui estão 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: amplia as capacidades de correspondência de padrões para operadores relacionais em 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 de acelerar a adoção e o aprendizado do C#, o método Main 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 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# destacados, os geradores de código-fonte estão sendo incorporados em projetos de desenvolvimento. Os geradores de origem permitem que o código executado durante a compilação inspecione seu programa e produza arquivos adicionais compilados junto com o restante do código.

Para obter mais informações sobre geradores de código-fonte, consulte Introdução aos geradores de código-fonte em C# e exemplos de geradores de código-fonte C#.

Atualizações do 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 cadeias de caracteres interpoladas, semelhantes a cadeias de caracteres 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 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 de tipo seguro.

Para mais informações, veja O que há de novo no F# 5.

Atualizações do Visual Basic

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

Descrição parâmetro dotnet new
Aplicativo de console console
Biblioteca de classes classlib
Aplicativo 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 de Windows Forms (WinForms) winforms
Biblioteca de classes do 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 CLI do .NET, consulte dotnet new.

Novos recursos de System.Text.Json

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

Consulte também