Microsoft: .NET 7 verbessert Kommandozeile und Performance
Im knappen Monatsrhythmus veröffentlicht Microsoft Previews für das kommende .NET 7. Im Fokus stehen derzeit Startzeit, CLI und natives AOT-Kompilieren.

Die .NET-Welt dreht sich aktuell sehr schnell. Der Support für .NET 5 endet bereits am 8. Mai 2022, da es sich bei dieser Version um ein sogenanntes Current Release handelt. .NET 6 bekommt als LTS-Release (Long Term Support) noch Unterstützung bis Anfang November 2024. Mittendrin veröffentlicht Microsoft fleißig Preview-Versionen von .NET 7, ebenfalls ein Current Release. Damit bekommt diese Version aber auch nur 18 Monate Support und Patches ab dem Veröffentlichungsdatum.
- Microsoft: .NET 7 verbessert Kommandozeile und Performance
- .NET 7 - Die nächste Evolution?
Das führt gefühlt zu vielen Änderungen beim .NET Framework. Jedes Preview beinhaltet viele kleine und große Anpassungen in der Breite, mit jeweils etwas anderen Schwerpunkten im Detail. Preview 2 legt den Fokus auf das .NET CLI, während sich Preview 3 auf die Startzeit fokussiert.
Updates in der zweiten und dritten Preview
Gegenüber der ersten Preview liegt der Schwerpunkt der Anpassungen in der zweiten Vorabversion auf neuen Möglichkeiten für reguläre Ausdrücke, Anpassungen bei der Code-Generierung, bei einem NativeAOT genannten Feature und bei der .NET CLI.
Die erweiterten Möglichkeiten bei den regulären Ausdrücken beziehen sich primär auf den neuen Regex Source Generator. Dieser bietet die Vorteile bei der Performance, ohne die Kosten beim Starten der spezialisierten Engine zu haben. Zudem werden gute Debugging-Möglichkeiten geboten.
Der neue Generator bietet Vorteile, wenn das Regex-Muster zum Zeitpunkt des Kompilierens bekannt ist. Diese Neuerungen lassen sich nutzen, wenn der reguläre Ausdruck als partieller Typ hinterlegt und mit dem RegexGenerator-Attribut ausgestattet wird. Diese partielle Methode, die wir auf diese Weise definieren und annotieren, wird vom Generator automatisch auf Basis unseres Musters implementiert.
Die Methode können wir in unserem eigenen Code nutzen, um auf das Muster beziehungsweise die Ergebnisse zuzugreifen. Hier ein kurzes Beispiel:
public partial class GolemRegex { [RegexGenerator(@"golem|regex", RegexOptions.IgnoreCase)] public static partial Regex OurGolemRegex(); public bool GolemMatches(string input) { bool isMatch = OurGolemRegex().IsMatch(input); // .. } }
Die Klasse ist als partial deklariert, ebenso wie die Methode, die über das RegexGenerator-Attribut annotiert wird. In der Methode mit der Businesslogik kann auf die Ergebnisse des Musters zugegriffen werden. Die Implementierung der partiellen Methode wird durch den Generator automatisch aktualisiert, wenn wir das Muster anpassen oder andere Regex-Optionen übergeben.
Auf diese Weise bekommen wir eine kompilierte Regex-Engine, abgestimmt auf unser Muster, ohne diese Engine erst zur Laufzeit erzeugen zu müssen, was auf die Performance geht. Der neue Generator führt alle Schritte bereits beim Kompilieren durch.
Zudem gab es etliche Anpassungen beim Command Line Interface (CLI) für .NET. Das Kommando dotnet new hat eine konsistentere und intuitivere Schnittstelle bekommen, um die Nutzung der Unter-Kommandos zu vereinfachen. Darüber hinaus ist das Feature, die Autovervollständigung durch Tab, deutlich verbessert und erweitert worden. Das betrifft insbesondere die Autovervollständigung für Template-Optionen und Argumente.
Des Weiteren ist das NativeAOT-Projekt, was für Ahead-of-time (AOT) steht, wie in der ersten Preview angekündigt, nicht mehr im experimentellen Status. Es befindet sich damit nicht mehr im experimentellen Repository des .NET Runtime Labs, sondern im offiziellen Repository der .NET Runtime.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
.NET 7 - Die nächste Evolution? |
- 1
- 2
Wir haben multi-target builds. D.h. wir bauen für 4.x, 5 und 6 und setzen jetzt einfach...