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 ist in Zukunft die Hauptimplementierungen von .NET, und .NET Framework 4.x wird weiterhin unterstützt.

Es ist nicht geplant, die folgenden Technologien aus dem .NET Framework in .NET 5 zu übertragen, aber es gibt Alternativen in .NET 5:

Technologie Empfohlene Alternative
Web Forms ASP.NET Core Blazor oder Razor Pages
Windows Workflow (WF) CoreWF-Open-Source-Workflows oder 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 .NET Foundation verfügbar. Dabei handelt es sich um einen plattformübergreifenden Open-Source-Client, der von Microsoft unterstützt wird. Die wichtigsten NuGet-Pakete werden im Folgenden aufgeführt:

Die Community verwaltet die Serverkomponenten, die die zuvor genannten Clientbibliotheken ergänzen. Das GitHub-Repository finden Sie unter CoreWCF. Die Serverkomponenten werden von Microsoft nicht offiziell unterstützt. Als Alternative zur WCF sollten Sie gRPC in Betracht ziehen.

.NET 5 ersetzt nicht .NET Standard

Bei der neuen Anwendungsentwicklung kann der Zielframeworkmoniker (TFM) net5.0 für alle Projekttypen angegeben werden, einschließlich Klassenbibliotheken. Das Freigeben von Code zwischen .NET 5-Workloads wird vereinfacht, da Sie lediglich den TFM net5.0 benötigen.

Bei .NET 5-Apps und -Bibliotheken kombiniert und ersetzt der Zielframeworkmoniker (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 dem neuen Ausdruck with 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: Als Mittel zur Beschleunigung der Einführung und des Lernens von C# kann die Main-Methode weggelassen werden, und die Verwendung ist wie im Folgenden gezeigt unkompliziert:

    System.Console.Write("Hello world!");
    
  • Funktionszeiger: Sprachkonstrukte, die die folgenden Opcodes für die 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."

Dies ä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