Freigeben über


Neuerungen in .NET 5

.NET 5 ist die nächste Hauptversion von .NET Core nach 3.1. Diese Version wurde aus zwei Gründen als .NET 5 anstelle von .NET Core 4 bezeichnet:

  • Versionsnummer 4.x wurde übersprungen, um Verwirrung mit .NET Framework 4.x zu vermeiden.
  • "Core" wurde aus dem Namen entfernt, um hervorzuheben, dass dies die Hauptimplementierung von .NET in Zukunft ist. .NET 5 unterstützt mehr Arten von Apps und mehr Plattformen als .NET Core oder .NET Framework.

ASP.NET Core 5.0 basiert auf .NET 5, behält jedoch den Namen "Core" bei, um eine Verwechslung mit ASP.NET MVC 5 zu vermeiden. Ebenso behält Entity Framework Core 5.0 den Namen "Core" bei, um Verwechslungen mit Entity Framework 5 und 6 zu vermeiden.

.NET 5 enthält die folgenden Verbesserungen und neuen Features im Vergleich zu .NET Core 3.1:

.NET 5 ersetzt .NET Framework nicht

.NET 5 und höhere Versionen sind die Hauptimplementierung von .NET in Zukunft, aber .NET Framework 4.x wird weiterhin unterstützt. Es gibt keine Pläne, die folgenden Technologien von .NET Framework zu .NET 5 zu portieren, aber es gibt Alternativen in .NET:

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

Windows Communication Foundation

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

Die Serverkomponenten, die die oben genannten Clientbibliotheken ergänzen, sind über CoreWCFverfügbar. Ab April 2022 wird CoreWCF offiziell von Microsoft unterstützt. Als Alternative zu WCF können Sie jedoch gRPC in Betracht ziehen.

.NET 5 ersetzt .NET Standard nicht

Neue Anwendungsentwicklung kann den net5.0 Target Framework Moniker (TFM) für alle Projekttypen angeben, einschließlich Klassenbibliotheken. Das Teilen 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 der net5.0 TFM die netcoreapp und netstandard TFMs. Wenn Sie jedoch Beabsichtigen, 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 -Features. .NET 5 ist mit C# 9 gekoppelt, was viele neue Features in die Sprache bringt. Hier sind einige Highlights:

  • Records: Referenztypen mit wertbasierter Gleichheitssemantik und nicht-destruktiver Mutation, unterstützt durch einen neuen with Ausdruck.

  • 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 Main Methode weggelassen werden, und eine Anwendung ist so einfach wie das folgende Beispiel gültig:

    System.Console.Write("Hello world!");
    
  • Funktionszeiger: Sprachkonstrukte, die die folgenden Intermediate Language (IL) Opcodes offenlegen: ldftn und calli.

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

Quellgeneratoren

Neben einigen der hervorgehobenen neuen C#-Features machen Quellgeneratoren ihren Weg in Entwicklerprojekte. Quellcode-Generatoren ermöglichen es Code, der während der Kompilierung ausgeführt wird, Ihr Programm zu prüfen und zusätzliche Dateien zu erzeugen, die zusammen mit dem restlichen Code kompiliert werden.

Weitere Informationen zu Quellgeneratoren finden Sie unter Einführung in C#-Quellgeneratoren und C#-Quellgeneratorbeispiele.

F#-Updates

F# ist die .NET-Funktionale Programmiersprache, und mit .NET 5 haben Entwickler Zugriff auf F# 5. Eines 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 String-Interpolation existiert 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
WPF-Benutzersteuerungsbibliothek wpfusercontrollib
Windows Forms (WinForms)-Anwendung winforms
Windows Forms (WinForms) Klassenbibliothek winformslib
Komponententestprojekt mstest
NUnit 3 Test Project nunit
NUnit 3 Testelement nunit-test
xUnit-Testprojekt xunit

Weitere Informationen zu Projektvorlagen aus der .NET CLI finden Sie unter dotnet new.

Neue Features von System.Text.Json

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

Siehe auch