Co nowego w wersji .NET 5

.NET 5 to kolejna główna wersja platformy .NET Core po wersji 3.1. Nazwaliśmy tę nową wersję .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.
  • Porzuciliśmy wartość "Core" 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 oparta na platformie .NET 5, ale zachowuje nazwę "Core", aby uniknąć mylące jej z ASP.NET MVC 5. Podobnie program Entity Framework Core 5.0 zachowuje nazwę "Core", aby uniknąć mylące jej z programem 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 programu Windows Communication Foundation (WCF) była obsługiwana tylko w systemie Windows. Istnieje jednak port klienta dostępny w programie .NET Foundation. Jest to całkowicie 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 platformy 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

Tworzenie nowych aplikacji może określać docelową net5.0 strukturę Moniker (TFM) dla wszystkich typów projektów, w tym biblioteki klas. Udostępnianie kodu między obciążeniami platformy .NET 5 jest uproszczone: wszystko, czego potrzebujesz, to net5.0 TFM.

W przypadku aplikacji i bibliotek platformy .NET 5 program net5.0 TFM łączy i zastępuje programy netcoreappnetstandard i TFM. 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 serwer 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 semantykami równości opartymi na wartości i mutacją niedestrukcyjną obsługiwaną przez nowe with wyrażenie.

  • 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 najwyższego poziomu: Jako sposób na przyspieszenie wdrażania i uczenia się języka C#, Main można pominąć metodę, a aplikacja jest tak prosta, jak w poniższym przykładzie:

    System.Console.Write("Hello world!");
    
  • Wskaźniki funkcji: konstrukcje języka, które uwidacznia następujące operacje ldftn języka pośredniego (IL): 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 (Wprowadzenie generatorów źródeł języka C# i przykładów generatora źródeł języka C#).

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 typowa. 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 sprintf funkcji, która formatuje ciąg na podstawie bezpiecznych danych wejściowych typu.

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 dotnet new Parametr
Aplikacja konsolowa console
Biblioteka klas classlib
Aplikacja WPF wpf
Biblioteka klas WPF wpflib
Biblioteka kontrolek niestandardowych 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 pliku System.Text.Json i:

Zobacz też