Neuigkeiten in .NET 5

.NET 5 ist das nächste Hauptrelease von .NET Core nach Version 3.1. Dieses Release wurde aus zwei Gründen .NET 5 anstelle von .NET Core 4 benannt:

  • Versionsnummer 4.x wurde übersprungen, um Verwirrung im Zusammenhang mit .NET Framework 4.x zu vermeiden.
  • Zudem wurde „Core“ im Namen ausgelassen, um zu verdeutlichen, dass dies künftig die Hauptimplementierung von .NET ist. .NET 5 unterstützt mehr App-Typen und Plattformen als .NET Core oder das .NET Framework.

ASP.NET Core 5.0 basiert auf .NET 5, behält aber die Bezeichnung „Core“ bei, um eine Verwechslung mit ASP.NET MVC 5 zu vermeiden. Ebenso behält Entity Framework Core 5.0 die Bezeichnung „Core“ bei, um eine Verwechslung mit Entity Framework 5 und 6 zu vermeiden.

.NET 5 umfasst die folgenden Verbesserungen und neuen Features im Vergleich zu .NET Core 3.1:

.NET 5 ersetzt nicht das .NET Framework

.NET 5 und höher sind die Hauptimplementierung von .NET, aber .NET Framework 4.x wird weiterhin unterstützt. Es ist nicht geplant, die folgenden Technologien aus .NET Framework in .NET 5 zu portieren, aber es gibt Alternativen in .NET:

Technologie Empfohlene Alternative
Web Forms ASP.NET Core Blazor oder Razor Pages
Windows Workflow (WF) Elsa-Workflows

Windows Communication Foundation

Die ursprüngliche Implementierung der Windows Communication Foundation (WCF) wurde nur unter Windows unterstützt. Es gibt jedoch einen Clientport, der von der .NET Foundation verfügbar ist. Es ist vollständig Open Source, plattformübergreifend und von Microsoft unterstützt. Die wichtigsten NuGet-Pakete werden im Folgenden aufgeführt:

Die Serverkomponenten, die die oben genannten Clientbibliotheken ergänzen, sind über CoreWCF verfügbar. Ab April 2022 wird CoreWCF offiziell von Microsoft unterstützt. Für eine Alternative zu WCF sollten Sie jedoch gRPC berücksichtigen.

.NET 5 ersetzt nicht .NET Standard

Neue Anwendungsentwicklung kann die net5.0 Target Framework Moniker (TFM) für alle Projekttypen angeben, einschließlich Klassenbibliotheken. Die Freigabe von Code zwischen .NET 5-Workloads ist vereinfacht: Alles, was Sie benötigen, ist die net5.0 TFM.

Für .NET 5-Apps und -Bibliotheken kombiniert und ersetzt die net5.0 TFM die netcoreapp und netstandard TFMs. Wenn Sie jedoch planen, Code zwischen .NET Framework-, .NET Core- und .NET 5-Workloads freizugeben, können Sie dies tun, indem Sie netstandard2.0 als TFM angeben. Weitere Informationen finden Sie unter .NET Standard.

C#-Updates

Entwickler, die .NET 5-Apps schreiben, haben Zugriff auf die neueste C#-Version und die neuesten Features. .NET 5 ist mit C# 9 gekoppelt, wodurch viele neue Features für die Sprache genutzt werden können. Dies sind einige Highlights:

  • Datensätze: Referenztypen mit wertbasierten Gleichheitsmanmantik und nicht destruktiven Mutationen, die von einem neuen with Ausdruck unterstützt werden.

  • Relationales Musterabgleich: Erweitert Musterabgleichsfunktionen auf relationale Operatoren für vergleichende Auswertungen und Ausdrücke, einschließlich logischer Muster – neue Schlüsselwörter and, orund not.

  • Anweisungen auf oberster Ebene: Als Mittel zur Beschleunigung der Einführung und des Lernens von C# kann die Methode ausgelassen werden, und eine Anwendung so einfach wie das Main folgende Beispiel ist gültig:

    System.Console.Write("Hello world!");
    
  • Funktionszeiger: Sprachkonstrukte, die die folgenden Zwischensprache (IL)-Opcodes ldftn verfügbar machen: und calli.

Weitere Informationen zu den verfügbaren C# 9-Features finden Sie unter Neuerungen in C# 9.0.

Quellcode-Generatoren

Zusätzlich zu einigen der hervorgehobenen neuen C#-Features finden auch Quellgeneratoren ihren Weg in Entwicklerprojekte. Quellgeneratoren ermöglichen es Code, der während der Kompilierung ausgeführt wird, Ihr Programm zu überprüfen und zusätzliche Dateien zu generieren, die zusammen mit dem restlichen Code kompiliert werden.

Weitere Informationen zu Quellgeneratoren finden Sie unter Einführung in C#-Quellgeneratoren und Beispiele für C#-Quellcodegeneratoren.

F#-Updates

F# ist die funktionale Programmiersprache von .NET, und mit .NET 5 haben Entwickler Zugriff auf F# 5. Eine der neuen Features ist interpolierte Zeichenfolgen, ähnlich wie interpolierte Zeichenfolgen in C#, und sogar JavaScript.

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

Zusätzlich zur grundlegenden Zeichenfolgeninterpolation gibt es eine typisierte Interpolation. Bei der typisierten Interpolation muss ein angegebener Typ mit dem Formatbezeichner übereinstimmen.

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

Dieses Format ähnelt der Funktion, die sprintf eine Zeichenfolge basierend auf typgeschützten Eingaben formatiert.

Weitere Informationen finden Sie unter Neuerungen in F# 5.

Visual Basic-Updates

Es gibt keine neuen Sprachfeatures für Visual Basic in .NET 5. Mit .NET 5 wird die Visual Basic-Unterstützung jedoch auf Folgendes erweitert:

BESCHREIBUNG dotnet new-Parameter
Konsolenanwendung console
Klassenbibliothek classlib
WPF-Anwendung wpf
WPF-Klassenbibliothek wpflib
WPF-Benutzerdefinierte Steuerelementbibliothek wpfcustomcontrollib
Bibliothek mit WPF-Benutzersteuerelementen wpfusercontrollib
Windows Forms-Anwendung (WinForms) winforms
Windows Forms-Klassenbibliothek (WinForms) winformslib
Komponententestprojekt mstest
NUnit 3-Testprojekt nunit
NUnit 3-Testelement nunit-test
xUnit-Testprojekt xunit

Weitere Informationen zu Projektvorlagen über die .NET-CLI finden Sie unter dotnet new.

Neue System.Text.Json-Features

Es gibt neue Features in und für System.Text.Json:

Weitere Informationen