Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: .NET 9.0 (.NET 9)
Begriff
.NET 9.0
Abkürzung
.NET 9
Eintrag zuletzt aktualisiert am
10.09.2024
Zur Stichwortliste unseres Lexikons
Was ist
.NET 9.0
?
.NET 9.0 ist der Nachfolger von
.NET 8.0
, der im November 2024 erscheinen soll.
Fakten zu
.NET 8.0
erscheint im November 2024
Nachfolger von
.NET 8.0
Standard-Term-Support
(STS) für 18 Monate bis Mai 2026
plattformunabhängig (mit
Ausnahme
von
WPF
,
Windows Forms
,
WinUI3
u.a. Klassen)
sehr modular aufgebaut
beinhaltet
C# 13.0
,
ASP.NET Core 9.0
(inkl.
Blazor 9.0
) und
Entity Framework Core 9.0
komplett
Open Source
https://github.com/dotnet/runtime
erfordert
Visual Studio 2022
Version 17.11 oder höher
Versionsgeschichte inkl. Vorabversionen
Preview 1 am 13.2.2024
Preview 2 am 12.3.2024
Preview 3 am 11.4.2024
Preview 4 am 21.5.2024
Preview 5 am 21.5.2024
Preview 6 am 09.07.2024
Preview 7 am 13.08.2024
Release Candidate 1 am 10.09.2024
Geplante Versionen
Release Candidate 2 --> Oktober 2024
RTM --> 12. November 2024
Neuerungen in der
.NET Runtime
Dass .NET beim Behandeln von Laufzeitfehlern langsam ist, ist seit vielen Jahren bekannt. Daher gehört die Vermeidung von Laufzeitfehlern zu den Best Practices. Insbesondere sollte man Laufzeitfehler nicht als Ersatz für Kontrollflussanweisungen verwenden, etwa um bei ungültigen Werten eine Schleife oder Unterroutine zu verlassen. Microsoft hat aber laut eigener Aussage in den Release Notes zur
.NET Runtime
die Behandlung von Laufzeitfehlern um den Faktor zwei bis vier gesteigert. Das gilt für Windows x64, Windows ARM64,
Linux
x64 und
Linux
ARM64, aber nicht für 32-Bit-Windows. Entwicklerinnen und Entwickler können via Umgebungsvariable
DOTNET_Legacy
Exception
Handling = 1
oder Projektdateieinstellung
<RuntimeHostConfigurationOption Include="System.Runtime.Legacy
Exception
Handling" Value="true" />
die Laufzeitumgebung dazu zwingen, das alte, langsamere Fehlerbehandlungsverfahren einzusetzen.
Neuerungen im
.NET SDK
in .NET 9.0 (Auswahl)
Das Kommandozeilenwerkzeug dotnet test konnte bisher schon automatisierte Tests für ein Projekt mit mehreren .NET-Versionen nacheinander ausführen. Neu in .NET 9.0 Preview 2 ist, dass dies parallel passiert. Zudem verwendet dotnet test den in
.NET 8.0
eingeführten, übersichtlicheren Terminal Logger
https://www.heise.de/tests/Microsofts-NET-8-0-im-Test-Grosse-Innovationen-beim-Webframework-Blazor-9567319.html?seite=7
, was sich insbesondere positiv auf die Darstellung der Testergebnisse während und nach der Testausführung auswi
rkt
.
Bei
.NET SDK
-basierten Werkzeugen haben Entwicklerinnen und Entwickler nun die Möglichkeit, mit der Option --allow-roll-forward das Werkzeug auf einer neueren .NET-Hauptversion laufen zu lassen, wenn die .NET-Laufzeitumgebung, für die das Werkzeug kompiliert wurde, nicht verfügbar ist. Diese neue Option kann sowohl bei dotnet tool install als auch dotnet tool run verwendet werden. Es gibt freilich keine aufgrund der Breaking Changes zwischen .NET-Hauptversionen keine Garantie, dass das Werkzeug auf einer neueren .NET-Laufzeitumgebung funktioniert.
Der in
.NET 8.0
eingeführte, prägnantere Terminal Logger (zum Beispiel bei dotnet build /tl und msbuild /tl) zeigt nun Fehlermeldungen mit Zeilenumbrüchen besser an und zudem am Ende seiner Ausgabe eine Zusammenfassung der Anzahl der Fehler und Warnungen. Was nicht in der Dokumentation steht, aber aus den Screenshots von Microsoft (siehe Abbildungen 2 und 3) hervorgeht und sich im Schnelltest bestätigte: Bei dotnet build kann man nun auf den Parameter /tl beziehunsgweise -tl verzichten, um den Terminal Logger zu aktivieren. Bei
MSBuild
ist aber ohne diesen Parameter auch im .NET 9.0 SDK weiterhin der klassische Logger aktiv.
Neuerungen bei den .NET-Basisklassen (Auswahl)
In der
Basisklassenbibliothek
gibt es neuen
LINQ
-Operatoren CountBy() und AggregateBy(). Eine neue Remove()-
Methode
in der in
.NET 6.0
eingeführten Mengenklasse PriorityQueue entfernt Elemente, auch wenn diese nicht an der Reihe sind. Beim
Debugging
von Dictionary-Klassen zeigen die
Debugger
nun die Inhalte deutlich übersichtlicher an.
Bei den kryptographischen Funktionen liefert Microsoft ab .NET 9.0 eine Implementierung des KECCAK Message Authentication Code (KMAC) des US-amerikanischen National Institute of Standards and Technology (NIST)
https://csrc.nist.gov/pubs/sp/800/185/final.
.NET 9.0 erlaubt nun auch wieder das Persistieren zur Laufzeit erzeugter Assemblies im
Dateisystem
mit der
Methode
Save() in der Klasse PersistedAssemblyBuilder. Diese Möglichkeit gab es schon im Klassen
.NET Framework
in AssembyBuilder (vgl. Dokumentation zu Save()
https://learn.microsoft.com/en-us/dotnet/api/system.reflection.emit.assemblybuilder.save).
Im modernen .NET konnte man bisher zur Laufzeit erzeugte Assemblies nur im RAM halten.
Bei der
Datenstruktur
System.TimeSpan, die es seit der ersten Version des
.NET Framework
aus dem Jahr 2002 gibt, war bisher eine Herausforderung, dass die Konvertierungsmethoden FromMicroseconds(), FromSeconds(), FromMinutes(), FromHours() und FromDays() als Parameter einen double-Wert erwarteten. Der double-Typ ist als Fließkommazahl aber ungenau. Microsoft führt daher in .NET 9.0 zusätzlich neue Varianten der From-
Methode
n ein, die Ganzzahlen als Parameter erhalten, z.B.
public static FromDays(int days, int hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0)
public static TimeSpan FromHours(int hours, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0);
public static TimeSpan FromMilliseconds(long milliseconds, long microseconds = 0);
Neuerungen bei
System.Text.Json
Die neuste Version der JSON-Bibliothek
System.Text.Json
erlaubt die Anpassung der Einrückung in den JsonSerializerOptions. Dazu gibt es dort neue Einstellungen IndentCharacter und IndentSize. Mit JsonSerializerOptions.Web können Entwicklerinnen und Entwickler nun auf einfache Weise dieselben Einstellungen für die JSON-Serialisierung und -
Deserialisierung
wählen, die in
ASP.NET Core WebAPI
voreingestellt ist.
AllowOutOfOrderMetadataProperties in
System.Text.Json
: siehe
https://github.com/dotnet/runtime/pull/97474
Querverweise zu anderen Begriffen im Lexikon
Entity Framework Core 9.0
Basisklassenbibliothek
Standard-Term-Support (STS)
ASP.NET Core WebAPI
Visual Studio 2022 (VS17)
System.Text.Json
Deserialisierung
ASP.NET Core 9.0
.NET Framework
Windows Forms (WinForms)
Datenstruktur
.NET Runtime
Open Source
Dateisystem
Blazor 9.0
Debugging
Exception
.NET 8.0 (.NET 8)
Ausnahme
.NET 6.0 (.NET 6)
Debugger
Methode
C# 13.0
Linux
.NET Software Development Kit (.NET SDK)
Microsoft .NET Build Engine (MSBuild)
Windows UI Library 3.0 (WinUI3)
Language Integrated Query (LINQ)
Rocket (rkt)
Windows Presentation Foundation (WPF)
Beratung & Support
Anfrage für Beratung/Consulting zu .NET 9.0 .NET 9
Gesamter Beratungsthemenkatalog
Technischer Support zum .NET 9.0 .NET 9
Schulungen zu diesem Thema
.NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
.NET-Entwickler-Update 2024
Anfrage für eine individuelle Schulung zum Thema .NET 9.0 .NET 9
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr