Co je nového v .NET 5

.NET 5 je další hlavní verze .NET Core následující po verzi 3.1. Tuto novou verzi jsme pojmenovali .NET 5 místo .NET Core 4 ze dvou důvodů:

  • Vynechali jsme čísla verzí 4.x, abychom se vyhnuli záměně s rozhraním .NET Framework 4.x.
  • Z názvu jsme vyřadili "Core", abychom zdůraznili, že se jedná o hlavní implementaci .NET. .NET 5 podporuje více typů aplikací a více platforem než .NET Core nebo .NET Framework.

ASP.NET Core 5.0 je založený na .NET 5, ale zachovává si název Core, aby si ho nepletl s ASP.NET MVC 5. Stejně tak Entity Framework Core 5.0 zachovává název "Core", aby si ho nepletl s Entity Framework 5 a 6.

.NET 5 obsahuje ve srovnání s .NET Core 3.1 následující vylepšení a nové funkce:

.NET 5 nenahrazuje .NET Framework

.NET 5 a novější verze jsou hlavní implementací rozhraní .NET, ale rozhraní .NET Framework 4.x je stále podporováno. Neexistují žádné plány k přenosu následujících technologií z rozhraní .NET Framework do .NET 5, ale v .NET existují alternativy:

Technologie Doporučená alternativa
webové formuláře ASP.NET Core Blazor nebo Razor Pages
Windows Workflow (WF) Elsa-Workflows

Windows Communication Foundation

Původní implementace Windows Communication Foundation (WCF) byla podporována pouze ve Windows. K dispozici je však port klienta ze služby .NET Foundation. Je zcela open source, pro různé platformy a podporuje ho Microsoft. Základní balíčky NuGet jsou uvedené níže:

Komponenty serveru, které doplňují výše uvedené klientské knihovny, jsou k dispozici prostřednictvím CoreWCF. Od dubna 2022 Microsoft oficiálně podporuje CoreWCF. Jako alternativu k WCF však zvažte gRPC.

.NET 5 nenahrazuje .NET Standard

Nový vývoj aplikací může specifikovat tfm net5.0 (Target Framework Moniker) pro všechny typy projektů, včetně knihoven tříd. Sdílení kódu mezi úlohami .NET 5 je zjednodušené: vše, co potřebujete, net5.0 je TFM.

U aplikací a knihoven net5.0 .NET 5 TFM kombinuje a nahrazuje netcoreapp tfmy a netstandard . 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 TFM. Další informace najdete v tématu .NET Standard.

Aktualizace jazyka C#

Vývojáři, kteří píší aplikace .NET 5, budou mít přístup k nejnovější verzi a funkcím jazyka C#. .NET 5 je spárovaný s jazykem C# 9, který do jazyka přináší mnoho nových funkcí. Tady je několik stručných informací:

  • Záznamy: Odkazové typy se sémantikou rovnosti na základě hodnot a nedestruktivní mutací podporovanou novým with výrazem.

  • Porovnávání relačních vzorů: Rozšiřuje možnosti porovnávání vzorů na relační operátory pro srovnávací vyhodnocení a výrazy, včetně logických vzorů – nová klíčová slova and, ora not.

  • Příkazy nejvyšší úrovně: Jako prostředek pro urychlení přijetí a učení jazyka C# Main může být metoda vynechána a aplikace jednoduchá jako následující příklad je platná:

    System.Console.Write("Hello world!");
    
  • Ukazatele na funkce: Konstrukty jazyka, které zpřístupňují následující kódy zprostředkujícího jazyka (IL): ldftn a calli.

Další informace o dostupných funkcích jazyka C# 9 najdete v tématu Co je nového v jazyce C# 9.

Generátory zdrojů

Kromě některých zvýrazněných nových funkcí jazyka C# se do vývojářských projektů dostávají generátory zdrojů. Zdrojové generátory umožňují kódu, který se spouští během kompilace, kontrolovat program a vytvářet další soubory, které se kompilují společně se zbytkem kódu.

Další informace o zdrojových generátorech najdete v tématech Představení zdrojových generátorů jazyka C# a Ukázek generátorůzdrojů V jazyce C#.

Aktualizace jazyka F#

F# je funkční programovací jazyk .NET a s .NET 5 mají vývojáři přístup k F# 5. Jednou z nových funkcí jsou interpolované řetězce, podobně jako interpolované řetězce v jazyce C#, a dokonce i JavaScript.

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

Kromě základní interpolace řetězců je k dispozici typová interpolace. U interpolace typu musí daný typ odpovídat specifikátoru formátu.

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

Tento formát je podobný sprintf funkci, která formátuje řetězec na základě typově bezpečných vstupů.

Další informace najdete v tématu Co je nového v F# 5.

Aktualizace jazyka Visual Basic

V .NET 5 nejsou k dispozici žádné nové jazykové funkce pro Visual Basic. S .NET 5 je však podpora jazyka Visual Basic rozšířena na:

Description dotnet new Parametr
Konzolová aplikace console
Knihovna tříd classlib
Aplikace WPF wpf
Knihovna tříd WPF wpflib
Knihovna vlastních ovládacích prvků WPF wpfcustomcontrollib
Knihovna uživatelských ovládacích prvků WPF wpfusercontrollib
Aplikace model Windows Forms (WinForms) winforms
knihovna tříd model Windows Forms (WinForms) winformslib
Projekt testování jednotek mstest
Projekt testů NUnit 3 nunit
Testovací položka NUnit 3 nunit-test
Projekt testů xUnit xunit

Další informace o šablonách projektů z rozhraní příkazového řádku .NET najdete v tématu dotnet new.

Nové funkce System.Text.Json

V systémech a pro System.Text.Json jsou k dispozici nové funkce:

Viz také