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:
- Aktualizace jazyka C#
- Aktualizace jazyka F#
- Aktualizace jazyka Visual Basic
- Nové funkce System.Text.Json
- Jednosouborové aplikace
- Oříznutí aplikace
- Vnitřní funkce Windows Arm64 a Arm64
- Podpora nástrojů pro ladění výpisu paměti
- Knihovny modulu runtime jsou 80 % opatřené poznámkami pro odkazové typy s možnou hodnotou null.
- Vylepšení výkonu:
.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:
- 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 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
,or
anot
.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
acalli
.
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:
- Zachování odkazů a zpracování cyklických odkazů
- Metody rozšíření HttpClient a HttpContent
- Povolit nebo zapsat čísla v uvozovkách
- Podpora neměnných typů a záznamů jazyka C# 9
- Podpora neveřejných přístupových objektů
- Pole podpory
- Podmíněné ignorování vlastností
- Podpora slovníků jiných než řetězcových klíčů
- Povolit vlastním převaděčům zpracování hodnoty null
- Kopírování JsonSerializerOptions
- Vytvoření JsonSerializerOptions s výchozími nastaveními webu