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öhere Versionen sind in Zukunft 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 ist jedoch ein Clientport von der .NET Foundation verfügbar. Dieser ist plattformübergreifend, vollständig Open-Source-basiert und wird 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. Seit April 2022 wird CoreWCF offiziell von Microsoft unterstützt. Als Alternative zu WCF können Sie jedoch gRPC in Betracht ziehen.

.NET 5 ersetzt nicht .NET Standard

Bei der Entwicklung neuer Anwendungen kann der Zielframeworkmoniker (Target Framework Moniker, TFM) net5.0 für alle Projekttypen angegeben werden, einschließlich Klassenbibliotheken. Das Freigeben von Code zwischen .NET 5-Workloads wird vereinfacht: Sie benötigen lediglich den TFM net5.0.

Für .NET 5-Apps und -Bibliotheken kombiniert und ersetzt der TFM net5.0 die TFMs netcoreapp und netstandard. 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: Verweistypen mit wertbasierter Gleichheitssemantik und nicht destruktiver Mutation, die von einem neuen with-Ausdruck unterstützt werden.

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

  • Anweisungen der obersten Ebene: Um die Einführung und das Erlernen von C# zu beschleunigen, kann die Main-Methode weggelassen werden. Eine einfache Anwendung, wie die im folgenden Beispiel gezeigte, ist gültig:

    System.Console.Write("Hello world!");
    
  • Funktionszeiger: Sprachkonstrukte, die die folgenden Opcodes der Zwischensprache (Intermediate Language, IL) verfügbar machen: ldftn 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. Eines der neuen Features sind interpolierte Zeichenfolgen, die interpolierten Zeichenfolgen in C# und sogar JavaScript ähneln.

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 sprintf-Funktion, die eine Zeichenfolge basierend auf typsicheren 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