Co je nového v .NET 5

.NET 5 je příští hlavní verze .NET Core následující 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 nejasnostem s rozhraním .NET Framework 4.x.
  • Z názvu jsme vynechali "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á název Core, aby se zabránilo matoucím ASP.NET MVC 5. Stejně tak entity Framework Core 5.0 zachovává název "Core", aby se zabránilo matoucí s Entity Framework 5 a 6.

.NET 5 zahrnuje následující vylepšení a nové funkce v porovnání s .NET Core 3.1:

.NET 5 nenahrazuje rozhraní .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 portovat následující technologie z rozhraní .NET Framework do .NET 5, ale existují alternativy v .NET:

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

Windows Communication Foundation

Původní implementace technologie Windows Communication Foundation (WCF) byla podporována pouze ve Windows. V .NET Foundation je ale k dispozici port klienta. Je to zcela opensourcový, multiplatformní a podporovaný Microsoftem. Základní balíčky NuGet jsou uvedené níže:

Součásti serveru, které doplňují výše uvedené klientské knihovny, jsou k dispozici prostřednictvím CoreWCF. Od dubna 2022 je CoreWCF oficiálně podporován Microsoftem. Pro alternativu k WCF však zvažte gRPC.

.NET 5 nenahrazuje .NET Standard

Vývoj nových aplikací může určit net5.0 moniker cílové architektury (TFM) 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, je net5.0 TFM.

Pro aplikace a knihovny net5.0 .NET 5 TFM kombinuje a nahrazuje netcoreapp tfmy.netstandard Pokud ale plánujete sdílet kód mezi úlohami .NET Framework, .NET Core a .NET 5, můžete to udělat tak netstandard2.0 , že zadáte jako TFM. Další informace naleznete 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ý přináší do jazyka mnoho nových funkcí. Tady je několik hlavních bodů:

  • Záznamy: Odkazové typy sémantikou rovnosti založené na hodnotách a nedestruktivním mutováním podporovaným 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 je možné tuto metodu vynechat a aplikace je tak jednoduchá, jak je v následujícím příkladu platné:

    System.Console.Write("Hello world!");
    
  • Ukazatele funkce: Jazykové konstrukce, které zveřejňují následující zprostředkující jazyky (IL) opcode: ldftn a calli.

Další informace o dostupných funkcích 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# vytvářejí zdrojové generátory cestu k vývojářským projektům. Generátory zdrojů umožňují kód, který se spouští během kompilace, kontrolovat program a vytvářet další soubory kompilované společně se zbytkem kódu.

Další informace o generátorech zdrojů najdete v tématu Úvod k generátorům zdrojového kódu jazyka C# a ukázkám generátoru zdrojů jazyka 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í je 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ůch U typované interpolace 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ý funkci sprintf , která formátuje řetězec na základě typů bezpečných vstupů.

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

Aktualizace jazyka Visual Basic

Visual Basic v .NET 5 neobsahuje žádné nové jazykové funkce. S .NET 5 se ale podpora jazyka Visual Basic rozšiřuje na:

Popis 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
NUnit 3 – testovací projekt nunit
NUnit 3 Testovací položka nunit-test
Testovací projekt xUnit xunit

Další informace o šablonách projektů z .NET CLI najdete v tématu dotnet new.

Nové funkce System.Text.Json

Existují nové funkce v souboru System.Text.Json:

Viz také