Sdílet prostřednictvím


Novinky v .NET 5

.NET 5 je příští hlavní verze .NET Core následující 3.1. Tato verze měla název .NET 5 místo .NET Core 4 ze dvou důvodů:

  • Čísla verzí 4.x byla vynechána, aby nedocházelo k nejasnostem v rozhraní .NET Framework 4.x.
  • "Jádro" bylo vyřazeno z názvu, aby se zdůraznilo, ž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žena na .NET 5, ale zachovává název "Core", aby se zabránilo zmatení s ASP.NET MVC 5. Stejně tak Entity Framework Core 5.0 zachovává název "Core", aby se zabránilo záměně 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) Elsa-Workflows

Windows Communication Foundation

Původní implementace 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 stanovit net5.0 Target Framework Moniker (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 .NET 5 kombinuje a nahrazuje TFM net5.0 s TFM netcoreapp a netstandard. Pokud ale plánujete sdílet kód mezi úlohami .NET Framework, .NET Core a .NET 5, můžete to udělat zadáním netstandard2.0 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 se sémantikou rovnosti založenou na hodnotách a nedestruktivní mutací podporované novým výrazem with.

  • 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.

  • hlavní deklarace: Jako prostředek pro urychlení přijetí a učení jazyka C# je možné vynechat metodu Main a umožňuje vytvořit aplikaci tak jednoduchou, jak je to znázorněno v následujícím příkladu:

    System.Console.Write("Hello world!");
    
  • ukazatele funkcí: Jazykové konstrukce, které zveřejňují následující instrukce mezijazyka (IL): ldftn a calli.

Další informace o dostupných funkcích C# 9 najdete v tématu Novinky v jazyce C# 9.

Generátory zdrojů

Kromě některých zvýrazněných nových funkcí jazyka C# se zdrojové generátory postupně integrují do vývojářských projektů. 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 Představujeme generátory zdrojů jazyka C# a ukázky generátorů 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ů existuje také typová interpolace. 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ů.

Více informací naleznete v části Novinky v 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 parametr dotnet new
Konzolová aplikace console
Knihovna tříd classlib
Aplikace WPF wpf
Knihovna tříd WPF wpflib
Knihovna ovládacích prvků na míru WPF wpfcustomcontrollib
Knihovna uživatelských ovládacích prvků WPF wpfusercontrollib
Aplikace Windows Forms (WinForms) winforms
Knihovna tříd 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 rozhraní příkazového řádku .NET najdete v tématu dotnet new.

Nové funkce System.Text.Json

V systému System.Text.Jsona pro něj jsou nové funkce.

Viz také