Udostępnij za pośrednictwem


Co nowego na platformie .NET 5

.NET 5 to kolejna główna wersja platformy .NET Core po wersji 3.1. Ta wersja nosiła nazwę .NET 5 zamiast .NET Core 4 z dwóch powodów:

  • Pominięto numery wersji 4.x, aby uniknąć pomyłek z programem .NET Framework 4.x.
  • "Core" został porzucony z nazwy, aby podkreślić, że jest to główna implementacja platformy .NET w przyszłości. Platforma .NET 5 obsługuje więcej typów aplikacji i więcej platform niż .NET Core lub .NET Framework.

ASP.NET Core 5.0 jest oparty na platformie .NET 5, ale zachowuje nazwę "Core", aby nie mylić go z ASP.NET MVC 5. Podobnie, Entity Framework Core 5.0 zachowuje nazwę "Core", aby uniknąć pomylenia go z Entity Framework 5 i 6.

Platforma .NET 5 zawiera następujące ulepszenia i nowe funkcje w porównaniu z platformą .NET Core 3.1:

Program .NET 5 nie zastępuje programu .NET Framework

.NET 5 i nowsze wersje są główną implementacją platformy .NET w przyszłości, ale program .NET Framework 4.x jest nadal obsługiwany. Nie ma planów przenoszenia następujących technologii z programu .NET Framework do platformy .NET 5, ale istnieją alternatywy na platformie .NET:

Technologia Zalecana alternatywa
Formularze sieci Web ASP.NET Core Blazor lub Razor Pages
Windows Workflow (WF) Elsa-Workflows

Windows Communication Foundation

Oryginalna implementacja Windows Communication Foundation (WCF) była wspierana tylko w systemie Windows. Istnieje jednak port klienta dostępny w programie .NET Foundation. Jest to całkowicie typu open source, międzyplatformowe i obsługiwane przez firmę Microsoft. Poniżej wymieniono podstawowe pakiety NuGet:

Składniki serwera, które uzupełniają wyżej wymienione biblioteki klienckie, są dostępne za pośrednictwem CoreWCF. Od kwietnia 2022 r. platforma CoreWCF jest oficjalnie obsługiwana przez firmę Microsoft. Jednak w przypadku alternatywy dla programu WCF należy rozważyć gRPC.

Platforma .NET 5 nie zastępuje platformy .NET Standard

Nowe aplikacje mogą określać net5.0 Target Framework Moniker (TFM) dla wszystkich typów projektów, w tym bibliotek klas. Udostępnianie kodu między obciążeniami platformy .NET 5 jest uproszczone: wystarczy net5.0 TFM.

W przypadku aplikacji i bibliotek platformy .NET 5 net5.0 TFM łączy i zastępuje netcoreapp i netstandard TFMs. Jeśli jednak planujesz udostępnianie kodu między obciążeniami .NET Framework, .NET Core i .NET 5, możesz to zrobić, określając netstandard2.0 jako swój TFM. Aby uzyskać więcej informacji, zobacz .NET Standard.

Aktualizacje języka C#

Deweloperzy piszący aplikacje platformy .NET 5 będą mieli dostęp do najnowszej wersji i funkcji języka C#. Platforma .NET 5 jest sparowana z językiem C# 9, co zapewnia wiele nowych funkcji w języku. Oto kilka najważniejszych informacji:

  • Rekordy: typy referencyjne z semantyką równości opartą na wartościach oraz mutacją niedestrukcyjną, które są obsługiwane przez nowe wyrażenie with.

  • dopasowywanie wzorca relacyjnego: rozszerza możliwości dopasowywania wzorców do operatorów relacyjnych na potrzeby ocen porównawczych i wyrażeń, w tym wzorców logicznych — nowych słów kluczowych and, ori not.

  • instrukcje na najwyższym poziomie: Jako środek przyspieszania wdrażania i nauki języka C#, można pominąć metodę Main, a aplikacja tak prosta jak ta w poniższym przykładzie jest poprawna.

    System.Console.Write("Hello world!");
    
  • wskaźniki funkcji: Konstrukcje języka, które uwidaczniają następujące kody operacji języka pośredniego (IL): ldftn i calli.

Aby uzyskać więcej informacji na temat dostępnych funkcji języka C# 9, zobacz Co nowego w języku C# 9.

Generatory źródeł

Oprócz niektórych wyróżnionych nowych funkcji języka C# generatory źródeł umożliwiają tworzenie projektów deweloperskich. Generatory źródeł umożliwiają uruchamianie kodu podczas kompilacji w celu sprawdzenia programu i utworzenia dodatkowych plików skompilowanych razem z resztą kodu.

Aby uzyskać więcej informacji na temat generatorów źródeł, zobacz Introducing C# source generators and C# source generator samples.

Aktualizacje języka F#

Język F# to funkcjonalny język programowania .NET, a deweloperzy programu .NET 5 mają dostęp do języka F# 5. Jedną z nowych funkcji są ciągi interpolowane, podobne do ciągów interpolowanych w języku C#, a nawet JavaScript.

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

Oprócz podstawowej interpolacji ciągów istnieje interpolacja typowana. W przypadku interpolacji typowej dany typ musi być zgodny ze specyfikatorem formatu.

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

Ten format jest podobny do funkcji sprintf, która formatuje ciąg na podstawie bezpiecznych typów danych wejściowych.

Aby uzyskać więcej informacji, zobacz Co nowego w języku F# 5.

Aktualizacje języka Visual Basic

W programie .NET 5 nie ma nowych funkcji językowych dla języka Visual Basic. Jednak w przypadku platformy .NET 5 obsługa języka Visual Basic została rozszerzona na:

Opis parametr dotnet new
Aplikacja konsolowa console
Biblioteka klas classlib
Aplikacja WPF wpf
Biblioteka klas WPF wpflib
Niestandardowa biblioteka kontrolek WPF wpfcustomcontrollib
Biblioteka kontroli użytkownika WPF wpfusercontrollib
Aplikacja Windows Forms (WinForms) winforms
Biblioteka klas formularzy systemu Windows (WinForms) winformslib
Projekt testu jednostkowego mstest
Projekt testowy NUnit 3 nunit
Element testowy NUnit 3 nunit-test
Projekt testowy xUnit xunit

Aby uzyskać więcej informacji na temat szablonów projektów z poziomu interfejsu wiersza polecenia platformy .NET, zobacz dotnet new.

System.Text.Json — nowe funkcje

Istnieją nowe funkcje w i dla System.Text.Json:

Zobacz też