.NET 7 - Die nächste Evolution?
Was noch fehlt, ist die wichtige first-class-Unterstützung im .NET SDK, um Projekte mit NativeAOT zu veröffentlichen, die mit der dritten Preview von .NET 7 einen Schritt näher gerückt ist. NativeAOT bringt in Zukunft das native Kompilieren von .NET-Assemblies für Desktop Client- und Server-Szenarios.
Es ersetzt die aktuell vorhandenen ReadyToRun-Technologien nicht, eröffnet aber in einigen Szenarien erweiterte Funktionalitäten und Möglichkeiten. Das betrifft zum Beispiel die Startzeit von Anwendungen, den Speicherverbrauch oder den Zugriff auf aktuell eingeschränkte Plattformen, die kein Just in Time (JIT) beim Kompilieren erlauben.
Als Trade-off stehen nicht alle Funktionen bei NativeAOT zur Verfügung, wie zum Beispiel das Erzeugen neuen Codes zur Laufzeit über System.Reflection.Emit. Zusätzlich sind Entwickler selbst dafür verantwortlich, dass für alle abzudeckenden Plattformen die nativen Binaries einer Anwendung zur Verfügung stehen. Das übernimmt .NET dann nicht mehr beim Starten.
Da die Performance in .NET 7 ein wichtiger Punkt war und ist, gibt es hier ebenfalls einige Verbesserungen. Das betrifft den Write-Xor-Execute-Modus, bei dem die Anzahl der notwendigen Änderungen nach der Erstellung des ausführbaren Codes deutlich reduziert wurden. Die Performance soll um 10 bis 15 Prozent besser sein. Diese eingeführte Technik verhindert, dass Speicherbereiche nur beschreibbar oder ausführbar sein dürfen, aber nicht beides (Write-Xor-Execute, W^X).
.NET 7 lässt sich bereits heute als Grundlage eigener Anwendungen testen. Die Preview-Versionen sind dabei offensichtlich nicht für produktive Anwendungen geeignet. Um .NET 7 in einem Projekt verwenden zu können, ist ein Target Framework Moniker (TFM) für diese Version notwendig:
<TargetFramework>net7.0</TargetFramework>
Diese TFMs für .NET 7 gibt es für Android, iOS, MacOS, Mac Catalyst, TvOS und Windows. Laut Aussagen von Microsoft wird erwartet, dass der Umstieg von .NET 6 auf Version 7 problemlos erfolgen soll. Wer diesen Umstieg testen möchte, sollte einen Blick auf die Breaking Changes werfen. Diese sind, gruppiert nach Technologie, auf der Webseite aufgeführt - inklusive Information darüber, ob es eine Kompatibilität auf Source-Code- beziehungsweise Binär-Datei-Ebene gibt oder eben nicht.
Ein Issue auf Github fasst weitere problematische Unterschiede zur neuen .NET-Version zusammen. Auch diese Infos und die Diskussionen in den Kommentaren darunter sind einen Blick wert.
Fazit
Mit .NET 7 soll sich im .NET-Universum einiges verändern. Microsoft arbeitet bei den Preview-Versionen im großen Umfang daran, zahlreiche Funktionen nachzurüsten und Ecken und Kanten zu glätten. Das betrifft nicht nur den Kern von .NET, sondern auch die verschiedenen Technologien rund um das Framework wie ASP.NET Core, Entity Framework, ML.NET, .NET MAUI, Windows Forms, Windows Presentation Foundation (WPF), Roslyn und viele weitere Technologien.
Ob die Roadmap und der Zeitplan eingehalten werden können, bleibt abzuwarten. Zu wünschen ist Microsoft, dass im November 2022 die neue Version von .NET inklusive C# erscheint, damit die Neuerungen flächendeckend zum Einsatz kommen können.
Fabian Deitelhoff arbeitet als Tech-Lead Domestics an Cloud-Themen bei Miele. Darüber hinaus ist er mit Brickobotik in der MINT-Bildung und mit Loosely.Ruhr in der Cross-Plattform-Softwareentwicklung tätig. Daneben arbeitet er als freier Autor, Dozent und Softwareentwickler im .NET- und Web-Umfeld.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Microsoft: .NET 7 verbessert Kommandozeile und Performance |
- 1
- 2
Wir haben multi-target builds. D.h. wir bauen für 4.x, 5 und 6 und setzen jetzt einfach...