Co je nového v .NET 5What's new in .NET 5

.NET 5,0 je další hlavní verzí rozhraní .NET Core následující po 3,1..NET 5.0 is the next major release of .NET Core following 3.1. Toto nové vydání .NET 5,0 místo rozhraní .NET Core 4,0 se jmenuje ze dvou důvodů:We named this new release .NET 5.0 instead of .NET Core 4.0 for two reasons:

  • Čísla verzí 4. x se přeskočila, aby nedocházelo k záměně .NET Framework 4. x.We skipped version numbers 4.x to avoid confusion with .NET Framework 4.x.
  • Z názvu jsme přetáhli "Core", aby se zdůraznilo, že se jedná o hlavní implementaci .NET, která se bude přesměrovat.We dropped "Core" from the name to emphasize that this is the main implementation of .NET going forward. .NET 5,0 podporuje více typů aplikací a více platforem než .NET Core nebo .NET Framework..NET 5.0 supports more types of apps and more platforms than .NET Core or .NET Framework.

ASP.NET Core 5,0 je založen na rozhraní .NET 5,0, ale zachová název "Core", abyste se vyhnuli jeho odmítnutí s 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. Podobně Entity Framework Core 5,0 zachová název "Core", abyste se vyhnuli jeho odmítnutí Entity Framework 5 a 6.Likewise, Entity Framework Core 5.0 retains the name "Core" to avoid confusing it with Entity Framework 5 and 6.

.NET 5,0 obsahuje následující vylepšení a nové funkce v porovnání s .NET Core 3,1:.NET 5.0 includes the following improvements and new features compared to .NET Core 3.1:

.NET 5,0 nenahrazuje .NET Framework.NET 5.0 doesn't replace .NET Framework

.NET 5,0 je hlavní implementace rozhraní .NET, která se bude přesměrovat a .NET Framework 4. x se pořád podporuje..NET 5.0 is the main implementation of .NET going forward and .NET Framework 4.x is still supported.

Nejsou k dispozici žádné plány pro přenos následujících technologií z .NET Framework na rozhraní .NET 5,0, ale v rozhraní .NET 5,0 existují alternativy:There are no plans to port the following technologies from .NET Framework to .NET 5.0, but there are alternatives in .NET 5.0:

TechnologieTechnology Doporučená alternativaRecommended alternative
webové formulářeWeb Forms ASP.NET Core Blazor nebo Razor PagesASP.NET Core Blazor or Razor Pages
Pracovní postup Windows (WF)Windows Workflow (WF) Open Source CoreWF nebo Elsa-WorkflowOpen-source CoreWF or Elsa-Workflow

Windows Communication FoundationWindows Communication Foundation

Původní implementace Windows Communication Foundation (WCF) byla podporovaná jenom ve Windows.The original implementation of Windows Communication Foundation (WCF) was only supported on Windows. V rozhraní .NET Foundation je však k dispozici klientský port.However, there is a client port available from the .NET Foundation. Je to zcela Open Source, pro různé platformy a podporuje Microsoft.It is entirely open source, cross platform, and supported by Microsoft. Základní balíčky NuGet jsou uvedené níže:The core NuGet packages are listed below:

Komunita uchovává součásti serveru, které doplňují výše uvedené klientské knihovny.The community maintains the server components that complement the aforementioned client libraries. Úložiště GitHub najdete na adrese CoreWCF.The GitHub repository can be found at CoreWCF. Microsoft tyto součásti serveru oficiálně nepodporují.The server components are not officially supported by Microsoft. Pro alternativu k WCF zvažte gRPC.For an alternative to WCF, consider gRPC.

.NET 5,0 nenahrazuje .NET Standard.NET 5.0 doesn't replace .NET Standard

Vývoj nových aplikací může určovat net5.0 moniker cílového rozhraní (TFM) pro všechny typy projektů, včetně knihoven tříd.New application development can specify the net5.0 target framework moniker (TFM) for all project types, including class libraries. Sdílení kódu mezi úlohami .NET 5 je zjednodušené v tom, že vše, co potřebujete, je net5.0 TFM.Sharing code between .NET 5 workloads is simplified in that all you need is the net5.0 TFM.

Pro aplikace a knihovny .NET 5,0 je net5.0 cílový moniker rozhraní (TFM) kombinován a nahrazuje a netcoreapp netstandard TFM.For .NET 5.0 apps and libraries, the net5.0 Target Framework Moniker (TFM) combines and replaces the netcoreapp and netstandard TFMs. Pokud ale plánujete sdílet kód mezi úlohami .NET Framework, .NET Core a .NET 5, můžete to udělat tak, že zadáte netstandard2.0 jako své 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. Další informace najdete v tématu .NET Standard.For more information, see .NET Standard.

Aktualizace jazyka C#C# updates

Vývojáři napisující aplikace .NET 5 budou mít přístup k nejnovější verzi a funkcím jazyka C#.Developers writing .NET 5 apps will have access to the latest C# version and features. .NET 5 se spáruje s C# 9, což přináší mnoho nových funkcí do jazyka..NET 5 is paired with C# 9, which brings many new features to the language. Tady je několik nejdůležitějších:Here are a few highlights:

  • Záznamy: odkazy na typy s sémantikou rovnosti na základě hodnoty a nedestruktivní mutace podporované novým with výrazem.Records: reference types with value-based equality semantics and non-destructive mutation supported by a new with expression.

  • Porovnávání relačních vzorů: rozšiřuje možnosti porovnávání vzorů s relačními operátory pro srovnávací hodnocení a výrazy, včetně logických vzorů – nová klíčová slova and , or a 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.

  • Příkazy nejvyšší úrovně: jako způsob urychlení přijetí a učení jazyka C# Main může být metoda vynechána a aplikace je jednoduchá, protože následující je platná: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!");
    
  • Ukazatele na funkce: jazykové konstrukce, které zveřejňují následující operační kódy mezilehlého jazyka (IL): ldftn a calli .Function pointers: Language constructs that expose the following intermediate language (IL) opcodes: ldftn and calli.

Další informace o dostupných funkcích C# 9 najdete v tématu co je nového v c# 9.For more information on the available C# 9 features, see What's new in C# 9.

Generátory zdrojůSource generators

Kromě některých zvýrazněných nových funkcí jazyka C# vytváří generátory zdrojů svůj způsob, jak vytvářet vývojářské projekty.In addition to some of the highlighted new C# features, source generators are making their way into developer projects. Zdrojové generátory umožňují kódu, který běží během kompilace, pro kontrolu programu a vytváření dalších souborů, které jsou kompilovány společně se zbytkem kódu.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.

Další informace o generátorech zdrojového kódu naleznete v tématu Představujeme zdrojové generátory c# a ukázky generátoru zdrojového kódu jazyka c#.For more information on source generators, see Introducing C# source generators and C# source generator samples.

Aktualizace F #F# updates

Jazyk f # je programovací jazyk funkcí .NET a s rozhraním .NET 5 mají vývojáři přístup k F # 5.F# is the .NET functional programming language, and with .NET 5, developers have access to F# 5. Tady je několik nových funkcí F # 5:Here are several new features of F# 5:

Interpolované řetězceInterpolated strings

Podobně jako interpolované řetězce v jazyce C# a dokonce i JavaScript, F # podporuje základní interpolaci řetězců.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."

Kromě základní interpolování řetězcové interpolace je zadána interpolace.In addition to basic string interpolation, there is typed interpolation. U typovaného interpolování musí daný typ odpovídat specifikátoru formátu.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."

Jedná se o podobnou sprintf funkci, která formátuje řetězec na základě typově bezpečných vstupů.This is similar to the sprintf function that formats a string based on type-safe inputs.

Aktualizace Visual BasicVisual Basic updates

V rozhraní .NET 5 nejsou k dispozici žádné nové funkce jazyka pro Visual Basic.There are no new language features for Visual Basic in .NET 5. Nicméně s .NET 5 je podpora Visual Basic rozšířena na:However, with .NET 5, Visual Basic support is extended to:

PopisDescription dotnet new ukazateledotnet new parameter
Konzolová aplikaceConsole Application console
Knihovna třídClass library classlib
Aplikace WPFWPF Application wpf
WPF – knihovna třídWPF Class library wpflib
Knihovna vlastních ovládacích prvků WPFWPF Custom Control Library wpfcustomcontrollib
Knihovna uživatelských ovládacích prvků WPFWPF User Control Library wpfusercontrollib
Aplikace model Windows Forms (WinForms)Windows Forms (WinForms) Application winforms
Knihovna tříd model Windows Forms (WinForms)Windows Forms (WinForms) Class library winformslib
Projekt testu jednotekUnit Test Project mstest
Projekt testů NUnit 3NUnit 3 Test Project nunit
NUnit 3 položka testuNUnit 3 Test Item nunit-test
Projekt testů xUnitxUnit Test Project xunit

Další informace o šablonách projektů z rozhraní .NET CLI naleznete v tématu dotnet new .For more information on project templates from the .NET CLI, see dotnet new.

System.Text.Jspro nové funkceSystem.Text.Json new features

K dispozici jsou nové funkce v systémecha proSystem.Text.Js:There are new features in and for System.Text.Json:

Viz takéSee also