Neuerungen in .NET 8
Noch ein halbes Jahr bis zum Release von .NET 8 - Zeit sich anzuschauen, was wir neues erwarten dürfen.
LTS Release
.NET 8 ist erneut ein LTS-Release; wie alle geraden Versionsbezeichner. Das bedeutet:
- Fixes für die Stabilität
- Grundlegend keine experimentellen Features
- Längerer Supportzeitraum für Fixes
- In der Regeln bessere Kompatibilität zu Paken
Entsprechend halten sich die Neuerungen der Runtime in Grenzen. Framework-Bestandteile wie EF Core oder ASP.NET Core erhalten weit mehr Neueres.
Ganz im Zeichen von Native
.NET Native und Native AOT ist seit .NET 7 mit das wichtigste Feature; und zeitgleich unter der Haube das wohl größte und Ressource-bindenste Feature. Durch .NET Native wird es möglich, dass .NET Assemblies (endlich) wirklich nativen Code darstellen - keinen ILCode mehr.
Das bedeutet auch: Assemblies sind deutlich schwerer zu dekompilieren; die Inhalte sind "besser" geschützt - im Endeffekt als ob man C++ programmieren würde. Dies ist ein Feature, das vor allem Enterprise-Unternehmen sich schon sehr lange wünschen: und nun endlich kommt.
Da nativer Code ohne ILCode auskommt heisst das zeitgleich, dass alle Vorteile des JIT-Compilers zur Runtime nicht mehr enthalten sind.
Neue CLI Features
Seit .NET 8 Preview 3 gibt es einen neuen dotnet workload clean
Befehl, mit dem der aktuelle Workspace von Überbleibseln aufgeräumt werden kann.
Neues Verzeichnis für Artifakte
Bisher war es für .NET-Entwickler völlig normal, dass es in jedem Projekt bin
und obj
Ordner gibt. Und genausolange wünschen sich eigentlich Entwickler, dass diese Ordner in einem zusammenfassenden Unterordner abgelegt werden können.
Dies ist nun durch eine aktuell noch optionale Eigenschaft konfigurierbar, die alle Artifakte in einem .artifacts
unterordner zusammen fassen wird; jedoch nicht nur bin/obj
, sondern auch Outputs von Publish-
bzw. Package-
Befehlen.
.artfiacts - Simplified output paths
C# 12
Wie fast alle, zumindest fast alle LTS Versionen gibt es auch diesmal ein erneutes Update der Sprache C#: mit .NET 8 wird C# 12 Einzug halten.
Die wichtigsten Updates von C# 12 sind
Ob alle Features hierbei auch wirklich Teil der Release-Version werden, ist noch nicht final bekannt. Besonders bei den Alias Types hatte man sich erhofft, dass dies "echte Alias" sind wie man sie aus F# kennt (F# Type Abbreviations) - es handelt sich aber nur um using-Aliase.
.NET 8 wird toll und .NET weiter nach Vorn bringen!