Novidades do .NET 5What's new in .NET 5

O .NET 5,0 é a próxima versão principal do .NET Core a seguir 3,1..NET 5.0 is the next major release of .NET Core following 3.1. Nomeamos essa nova versão do .NET 5,0 em vez do .NET Core 4,0 por dois motivos:We named this new release .NET 5.0 instead of .NET Core 4.0 for two reasons:

  • Ignoramos os números de versão 4. x para evitar confusão com .NET Framework 4. x.We skipped version numbers 4.x to avoid confusion with .NET Framework 4.x.
  • Descartamos "Core" do nome para enfatizar que esta é a principal implementação do .NET em diante.We dropped "Core" from the name to emphasize that this is the main implementation of .NET going forward. O .NET 5,0 dá suporte a mais tipos de aplicativos e mais plataformas do que o .NET Core ou o .NET Framework..NET 5.0 supports more types of apps and more platforms than .NET Core or .NET Framework.

ASP.NET Core 5,0 é baseado no .NET 5,0, mas mantém o nome "Core" para evitar confusão com o ASP.NET MVC 5.ASP.NET Core 5.0 is based on .NET 5.0 but retains the name "Core" to avoid confusing it with ASP.NET MVC 5. Da mesma forma, Entity Framework Core 5,0 mantém o nome "Core" para evitar confusão com Entity Framework 5 e 6.Likewise, Entity Framework Core 5.0 retains the name "Core" to avoid confusing it with Entity Framework 5 and 6.

O .NET 5,0 inclui os seguintes aprimoramentos e novos recursos em comparação com o .NET Core 3,1:.NET 5.0 includes the following improvements and new features compared to .NET Core 3.1:

O .NET 5,0 não substitui .NET Framework.NET 5.0 doesn't replace .NET Framework

O .NET 5,0 é a principal implementação do .NET no futuro e .NET Framework 4. x ainda tem suporte..NET 5.0 is the main implementation of .NET going forward and .NET Framework 4.x is still supported.

Não há planos de portar as tecnologias a seguir de .NET Framework para o .NET 5,0, mas há alternativas no .NET 5,0:There are no plans to port the following technologies from .NET Framework to .NET 5.0, but there are alternatives in .NET 5.0:

TecnologiaTechnology Alternativa recomendadaRecommended alternative
Web FormsWeb Forms ASP.NET Core mais ou Razor PagesASP.NET Core Blazor or Razor Pages
Windows Workflow (WF)Windows Workflow (WF) CoreWF de código-fonte aberto ou Elsa-WorkflowOpen-source CoreWF or Elsa-Workflow

Windows Communication FoundationWindows Communication Foundation

A implementação original do Windows Communication Foundation (WCF) era suportada apenas no Windows.The original implementation of Windows Communication Foundation (WCF) was only supported on Windows. No entanto, há uma porta do cliente disponível no .NET Foundation.However, there is a client port available from the .NET Foundation. Ele é totalmente de software livre , de plataformacruzada e tem suporte da Microsoft.It is entirely open source, cross platform, and supported by Microsoft. Os pacotes principais do NuGet estão listados abaixo:The core NuGet packages are listed below:

A comunidade mantém os componentes de servidor que complementam as bibliotecas de cliente mencionadas anteriormente.The community maintains the server components that complement the aforementioned client libraries. O repositório GitHub pode ser encontrado em CoreWCF.The GitHub repository can be found at CoreWCF. Os componentes do servidor não são oficialmente suportados pela Microsoft.The server components are not officially supported by Microsoft. Para obter uma alternativa ao WCF, considere gRPC.For an alternative to WCF, consider gRPC.

O .NET 5,0 não substitui .NET Standard.NET 5.0 doesn't replace .NET Standard

O novo desenvolvimento de aplicativos pode especificar o net5.0 moniker do Framework de destino (TFM) para todos os tipos de projeto, incluindo bibliotecas de classes.New application development can specify the net5.0 target framework moniker (TFM) for all project types, including class libraries. O compartilhamento de código entre as cargas de trabalho do .NET 5 é simplificado, pois tudo o que você precisa é o net5.0 TFM.Sharing code between .NET 5 workloads is simplified in that all you need is the net5.0 TFM.

Para aplicativos e bibliotecas do .NET 5,0, o net5.0 moniker da estrutura de destino (TFM) combina e substitui o netcoreapp e o netstandard TFMs.For .NET 5.0 apps and libraries, the net5.0 Target Framework Moniker (TFM) combines and replaces the netcoreapp and netstandard TFMs. No entanto, se você planeja compartilhar o código entre as cargas de trabalho .NET Framework, .NET Core e .NET 5, poderá fazer isso especificando netstandard2.0 como seu TFM.However, if you plan to share code between .NET Framework, .NET Core, and .NET 5 workloads, you can do so by specifying netstandard2.0 as your TFM. Para obter mais informações, confira .NET Standard.For more information, see .NET Standard.

Atualizações em C#C# updates

Os desenvolvedores que escrevem aplicativos .NET 5 terão acesso à versão e aos recursos mais recentes do C#.Developers writing .NET 5 apps will have access to the latest C# version and features. O .NET 5 é emparelhado com o C# 9, que traz muitos recursos novos para a linguagem..NET 5 is paired with C# 9, which brings many new features to the language. Aqui estão alguns destaques:Here are a few highlights:

  • Registros: tipos de referência com semântica de igualdade baseada em valor e mutação não destrutiva com suporte por uma nova with expressão.Records: reference types with value-based equality semantics and non-destructive mutation supported by a new with expression.

  • Correspondência de padrão relacional: estende os recursos de correspondência de padrões para operadores relacionais para avaliações e expressões comparativa, incluindo padrões lógicos – novas palavras-chave and , or e not .Relational pattern matching: Extends pattern matching capabilities to relational operators for comparative evaluations and expressions, including logical patterns - new keywords and, or, and 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 o aplicativo tão simples quanto o seguinte é válido:Top-level statements: As a means for accelerating adoption and learning of C#, the Main method can be omitted and application as simple as the following is valid:

    System.Console.Write("Hello world!");
    
  • Ponteiros de função: constructos de linguagem que expõem os seguintes opcodes de linguagem intermediária (IL): ldftn e calli .Function pointers: Language constructs that expose the following intermediate language (IL) opcodes: ldftn and calli.

Para obter mais informações sobre os recursos disponíveis do C# 9, consulte o que há de novo no c# 9.For more information on the available C# 9 features, see What's new in C# 9.

Geradores de origemSource generators

Além de alguns dos novos recursos do C# destacados, os geradores de origem estão fazendo seu caminho em projetos de desenvolvedor.In addition to some of the highlighted new C# features, source generators are making their way into developer projects. Os geradores de origem permitem o código que é executado durante a compilação para inspecionar seu programa e produzir arquivos adicionais que são compilados junto com o restante do seu código.Source generators allow code that runs during compilation to inspect your program and produce additional files that are compiled together with the rest of your code.

Para obter mais informações sobre geradores de origem, consulte introdução aos geradores de código -fonte c# e exemplos do gerador de código-fonte c#.For more information on source generators, see Introducing C# source generators and C# source generator samples.

Atualizações de F #F# updates

O f # é a linguagem de programação funcional do .NET e, com o .NET 5, os desenvolvedores têm acesso ao F # 5.F# is the .NET functional programming language, and with .NET 5, developers have access to F# 5. Aqui estão vários recursos novos do F # 5:Here are several new features of F# 5:

Cadeias de caracteres interpoladasInterpolated strings

Semelhante à cadeia de caracteres interpolada em C# e até mesmo JavaScript, F # dá suporte à interpolação de cadeia de caracteres básica.Similar to interpolated string in C#, and even JavaScript, F# supports basic string interpolation.

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 de tipo.In addition to basic string interpolation, there is typed interpolation. Com a interpolação digitada, um determinado tipo deve corresponder ao especificador de formato.With typed interpolation, a given type must match the format specifier.

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

Isso é semelhante à sprintf função que formata uma cadeia de caracteres com base em entradas de tipo seguro.This is similar to the sprintf function that formats a string based on type-safe inputs.

Atualizações de Visual BasicVisual Basic updates

Não há novos recursos de linguagem para Visual Basic no .NET 5.There are no new language features for Visual Basic in .NET 5. No entanto, com o .NET 5, Visual Basic suporte é estendido para:However, with .NET 5, Visual Basic support is extended to:

DescriçãoDescription Parâmetro dotnet newdotnet new parameter
Aplicativo do ConsoleConsole Application console
Biblioteca de classesClass library classlib
Aplicativo WPFWPF Application wpf
Biblioteca de classes do WPFWPF Class library wpflib
Biblioteca de Controles Personalizados do WPFWPF Custom Control Library wpfcustomcontrollib
Biblioteca de controle de usuário WPFWPF User Control Library wpfusercontrollib
Aplicativo Windows Forms (WinForms)Windows Forms (WinForms) Application winforms
Biblioteca de classes do Windows Forms (WinForms)Windows Forms (WinForms) Class library winformslib
Projeto de Teste de UnidadeUnit Test Project mstest
Projeto de Teste do NUnit 3NUnit 3 Test Project nunit
Item de Teste do NUnit 3NUnit 3 Test Item nunit-test
Projeto de Teste xUnitxUnit Test Project xunit

Para obter mais informações sobre modelos de projeto da CLI do .NET, consulte dotnet new .For more information on project templates from the .NET CLI, see dotnet new.

System.Text.Jssobre novos recursosSystem.Text.Json new features

Há novos recursos no e para o System.Text.Jsem:There are new features in and for System.Text.Json:

Veja tambémSee also