.NET 7.0 (.NET 7)
Eintrag zuletzt aktualisiert am: 01.11.2023

.NET 7.0 ist der Nachfolger von
.NET 6.0, der am 8.11.2022 erschienen ist.
Fakten zu .NET 7.0… Nachfolger von .NET 6.0
… ist am 8.11.2022 erschienen
… eine Zwischenversion - Support nur für 18 Monate ("Standard-Term-Support")
… plattformunabhängig (mit Ausnahme von WPF, Windows Forms, WinUI3 u.a. Klassen)
… sehr modular aufgebaut
… beinhaltet C# 11.0, ASP.NET Core 7.0 (inkl. Blazor 7.0) und Entity Framework Core 7.0
… komplett Open Source https://github.com/dotnet/runtime
Berichte zu den Vorschauversionen.NET 7 Preview 1: 17.2.2022
https://www.heise.de/news/Preview-Reihe-fuer-NET-7-startet-mit-neuen-Webfeatures-6496083.html
.NET 7 Preview 2: 14.3.2022
https://www.heise.de/news/NET-7-Zweite-Preview-erweitert-das-NET-CLI-6550864.html
.NET 7 Preview 3: 13.4.2022
https://www.heise.de/news/NET-7-Preview-3-hat-Startzeit-der-Anwendungen-im-Fokus-6676400.html
.NET 7 Preview 4: 10.5.2022
https://www.heise.de/news/NET-7-0-Preview-4-Die-Rueckkehr-von-Program-Main-7081579.html
.NET 7 Preview 5: 14.5.2022
https://www.heise.de/news/NET-7-0-Preview-5-JWT-Vereinfachungen-und-flexibleres-Vererbungsmapping-7141316.html
.NET 7 Preview 6: 12.7.2022
https://www.heise.de/news/NET-7-Preview-6-Neuigkeiten-vor-allem-fuer-Webentwickler-7178360.html
.NET 7 Preview 7: 9.8.2022
https://www.heise.de/news/NET-7-Preview-7-Mehr-Eingriffspunkte-in-den-OR-Mapper-aber-unvollstaendig-7216017.html
.NET 7.0 RC1: 15.09.2022
https://www.heise.de/news/Einbiegen-auf-die-Zielgerade-NET-7-0-Release-Candidate-1-ist-fertig-7264695.html
.NET 7.0 RC2: 12.10.2022
https://www.heise.de/news/NET-7-0-Release-Candidate-2-erscheint-mit-Multi-Threading-fuer-WebAssembly-7308379.html
Umfang.NET 7.0 umfasstNeue Funktionen im SDK- Angleichung der Syntax von dotnet new an andere SDK-Befehle
- Tabulator Completion für Vorlagennamen
- "Do not use Top Level Statements"
- "Use Controllers" für WebAPIs
- Emojis bei dotnet watch
- Hot Reloading-Erweiterungen (Hinzufügen von neuen Klassen und von statischer Klassenmitgliedern)
- Ahead-of-Time-Kompilierung ("Native AOT") für Konsolenanwendungen und Bibliotheken
- Docker-Deployment mit .NET CLI ohne Dockerfile
Neue Anwendungsarten (experimentell)- WebAssembly Browser App: Kompilieren einer .NET-Library zu WebAssembly-Bytecode für Browser (ohne Blazor/Razor Components!)
- WebAssembly Console App: Kompilieren einer .NET-Library zu WebAssembly-Bytecode für node.js (ohne Blazor/Razor Components!)
- .NET WASI SDK: Kompilieren einer .NET-basierten Konsolen-EXE zu einer WebAssembly-Datei (.wasm) mit WASI (d.h. ohne JavaScript!)
Neue Funktionen in der Klassenbibliothek (Auswahl)- Neue .NET-Basisdatentypen System.Half (2 Bytes), System.Int128 und System.UInt128 (je 16 Bytes)
- Microseconds und Nanoseconds in den Klassen DateTime, TimeStamp, DateTimeOffset und TimeOnly
- LINQ: Order() und OrderDescending() zusätzlich zu OrderBy() und OrderByDescending()
- Archivformat Tarball komprimiert oder unkomprimiert im Namensraum System.Formats.Tar z.B. TarFile.CreateFromDirectory(@"T:\Dokumente", @"t:\DokumenteArchiv.tar");
- Unix-Rechte in den Dateisystem-Klassen: Setzen und Lesen System.IO.UnixFileMode
- MemoryCache im Namensraum Microsoft.Extensions.Caching.Memory liefert nun mit GetCurrentStatistics() die Metriken CurrentEntryCount, CurrentEstimatedSize, TotalHits und TotalMisses
- Nullable Reference Types-Annotationen für alle Klassen in Microsoft.Extensions (z.B. Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.Configuration, Microsoft.Extensions.Logging)
- Neue Source-Generatoren:
System.Text.RegularExpressions.Generator.RegexGenerator: [GeneratedRegex]
Microsoft.Interop.LibraryImportGenerator: [LibraryImport] statt [DllImport]
Neuerungen für System.Text.Json
ohne Änderung des zu serialisierenden Typs- Required Members: Laufzeitfehler, wenn bei der Deserialisierung ein Datenmitglied eines Typs nicht befüllt werden kann, sofern dieses Mitglied besitzt:
Modifizierer required (wirkt aber nicht bei abgeleiteten Typen) oder
Annotation [JsonRequired] oder
propertyInfo.IsRequired = false im Type Info Resolver - JSON-Polymorphismus: Typ-Diskriminatoren in Vererbungshierarchien mit [JsonDerivedType]
Überblick über .NET 7.0Ein Jahr nach der sechsten Version bringt Microsoft .NET 7.0 zahlreiche neue Funktionen für die Sprachsyntax, die Basisklassenbibliothek, das OR-Mapping und die Oberflächen.
.NET 7.0 umfasst neben der Sprachsyntax C# 11.0 und F# 7.0 auch die aktualisierten Versionen der Bibliotheken ASP.NET Core 7.0 für die Webserverprogrammierung, Blazor 7.0 für Browseranwendungen, Windows Forms 7.0 und Windows Presentation Foundation (WPF) 7.0 für Windows-Anwendungen, .NET MAUI 7.0 für Cross-Platform-Apps und Entity Framework Core 7.0 für das Objekt-Relationale Mapping.
Während ASP.NET Core 7.0, Windows Forms 7.0 und WPF 7.0 an .NET 7.0 gebunden ist, lässt sich Entity Framework Core 7.0 auch auf .NET 6.0 nutzen. C# 11.0 lässt sich auf älteren .NET-Versionen nutzen, für diese Konstellation bietet Microsoft jedoch keinen technischen Support.
Neue und eine größere Menge verbesserter Funktionen gibt es in fast allen wesentlichen Bibliotheken in .NET – außer WPF. Dieser Review kann aufgrund der Menge aller Neuerungen nicht alle Punkte erwähnen und fokussiert daher auf die wichtigsten Ergänzungen.
Standard-Support gilt nur für 18 Monate.NET 7.0 ist eine sogenannte "Standard-Support"-Version, für die Microsoft lediglich 18 Monate lang Bugfixes und Sicherheitsupdates liefern wird. Bis Juni 2022 hieß diese Supportdauer noch "Current Release". Dann hatte Microsoft zunächst den Begriff "Short-Term-Support" verwendet (vgl. [https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-7/]). Seit 14. Oktober 2022 heißt die Supportdauer offiziell "Standard Support" (vgl. [https://github.com/dotnet/core/pull/7517#event-7585739701]).
Windows-Nutzer, die Microsoft-Update zusätzlich zu Windows-Update aktiviert haben, erhalten die Aktualisierungen automatisch – sofern die Laufzeitumgebung explizit installiert ist. Auf anderen Betriebssystemen und beim Bundling der Runtime mit der .NET-Anwendung (bei Single-File-Apps, AOT-Apps und WASI-Apps) müssen alle .NET-Updates manuell verteilt werden.
Erst die für November 2023 geplante Version 8.0 von .NET soll wieder einen längeren Support von 36 Monaten bieten.