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:
- aktualizace jazyka C#
- aktualizace F#
- Aktualizace jazyka Visual Basic
- nové funkce System.Text.Json
- jednosouborové aplikace
- ořezávání aplikace
- Vnitřní funkce Windows Arm64 a Arm64
- Podpora nástrojů pro ladění výpisů paměti
- Knihovny modulu runtime jsou 80% anotovány pro odkazové typy s možnou hodnotou null
- Vylepšení výkonu:
- uvolňování paměti (GC)
- System.Text.Json
- System.Text.RegularExpressions
- sdružování hodnot Async ValueTask
- optimalizace velikosti kontejneru
- mnoho dalších oblastí
.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:
- System.ServiceModel.Duplex
- System.ServiceModel.Federation
- System.ServiceModel.Http
- System.ServiceModel.NetTcp
- System.ServiceModel.Primitives
- System.ServiceModel.Security
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
,or
anot
.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
acalli
.
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.
- Zachování odkazů a zpracování cyklických odkazů
- metody rozšíření serializace na HttpClient
- Povolit nebo psát čísla v uvozovkách
- Podpora neměnných typů a záznamů C# 9
- Podpora neveřejných přístupových objektů
- Podporovaná pole
- Podmíněně ignorovat vlastnosti
- podpora slovníků bez řetězce klíče
- Povolit vlastním převaděčům zpracovávat hodnotu null
- Kopírovat JsonSerializerOptions
- Vytvořte JsonSerializerOptions s výchozími nastaveními webu
Viz také
- Cesta k jednotnému .NET
- vylepšení výkonu v rozhraní .NET 5
- Stáhnout sadu .NET SDK