.NET 6: Preview 7 bringt aktualisierte Templates und APIs
In der siebten und voraussichtlich letzten Preview-Version ĂĽberarbeitet Microsoft die Projektvorlagen und verbessert einige Programmierschnittstellen.
- Dr. Holger Schwichtenberg
Die Vorlagen, die das .NET SDK und Visual Studio beim Erstellen neuer Projekte verwenden, sind mit der aktuellen Preview der Programmiersprache .NET mit neueren C#-Sprachfeature gespickt. Dazu gehören async Main
(aus C# 7.1), Nullable Reference Types (aus C# 8), Top-Level Statements und Target-Typed New Expressions (aus C# 9) sowie aus dem mit .NET 6 kommenden C# 10 die Namensräume auf Dateiebene.
In den Projektvorlagen fĂĽr ASP.NET Core-Webprojekte gibt es ab sofort keine Startup.cs mehr; aller Programmcode, der beim Anwendungsstart ausgefĂĽhrt wird, liegt ab sofort in der Datei Program.cs. Die Vorlage fĂĽr Konsolenanwendungen besteht nur noch aus einer Zeile: Console.WriteLine("Hello, World!");
API-Verbesserungen
In den Klassenbibliotheken hat Microsoft in .NET 6 Preview 7 querbeet einige Verbesserungen eingebaut: In der neuen Klasse System.Runtime.InteropServices.NativeMemory
finden .NET-Softwareentwicklerinnen und - entwickler direkte Speicheroperationen, die den C-Befehlen malloc
, free
, realloc
und calloc
entsprechen. Microsoft betont im Blogeintrag, dass diese direkten Speicherzugriffe fĂĽr Low-Level-Code und besondere Algorithmen gedacht sind, nicht fĂĽr die normale Anwendungsentwicklung.
Die Klasse System.IO.Compression.ZipFile
speichert beim Erstellen von ZIP-Datei auch Unix-Dateisystemrechte. Der in .NET Core 3.0 eingefĂĽhrte JSON-Serializer System.Text.Json
erzeugt nun Benachrichtigungen in verschiedenen Arbeitsphasen (z. B. OnSerializing()
und OnDeserialized()
). Zudem erlaubt er in Properties eine Reihenfolgeangabe fĂĽr die Serialisierung: [JsonPropertyOrder(2)]
. Weitere kleinere API-Verbesserungen listet der Blogeintrag von Richard Langer auf.
Verbesserungen fĂĽr Webprojekte
Das relative junge Webframework Blazor kann mit der Annotation [SupplyParameterFromQuery(Name = "abc")]
ab sofort Komponentenparameter direkt aus dem Querystring entnehmen. Beim Navigieren mit NavigationManager.NavigateTo()
lässt sich die aktuelle URL ersetzen, anstatt eine neue URL in die Browser-Historie legen zu müssen. Mit der neuen Komponente <HeadContent>
können Webentwickler den Kopfbereich einer HTML-Seite direkt beeinflussen. Bei einem Drop-Down-Steuerelemente liefert das onchange
-Ereignis gleich eine Mehrfachauswahl als Array.
Die schon in .NET 6 Preview 1 eingefĂĽhrte <DynamicComponent>
hat ein Instance-Property im Gepäck. Die neue Streaming-Schnittstelle IJSStreamReference
erlaubt den Austausch größerer Datenmengen zwischen C# und JavaScript – Dateiuploads von mehr als 2 GB sind möglich.
Weitere, in einem Blogeintrag des ASP.NET-Entwicklungsteams genannte Neuerungen betreffen andere Spielarten von ASP.NET. Dazu gehört die Unterstützung für HTTP/3 im Webserver Kestrel und die Unterstützung für Webserverprotokollierung im W3C Extended Log File Format via AddW3CLogging()
.
Verbesserungen in MAUI
Auch das .NET Multi-Platform App UI (MAUI), der Nachfolger von Xamarin Forms, hat in .NET 6 Preview 7 Überarbeitungen erhalten. Dazu gehören die neuen Layout-Steuerelemente Grid, FlexLayout, HorizontalStackLayout und VerticalStackLayout. Alte aus Xamarin Forms stammende Layoutstrukturen wie AbsoluteLayout und RelativeLayout sind in den Namensraum Microsoft.Maui.Controls.Compatibility
gewandert. Alle Steuerelemente nutzen eine automatische Skalierung der Schriftarten, die Entwickler aber mit FontAutoScalingEnabled="False"
deaktivieren können. Die Accessibility-APIs in MAUI hat Microsoft aufgeräumt, Details dazu finden sich im Blogeintrag.
Ausblick
Preview 7 soll die letzte als "Preview" bezeichnete Vorschauversion von .NET 6 gewesen sein. Danach will Microsoft zwei "Release Candidate"-Versionen im September und Oktober veröffentlichen, bevor es im November die endgültige Version gibt.
Am 23. November 2021 richten heise Developer und dpunkt.verlag in Kooperation mit www.IT-Visions.de mit der betterCode() .NET 6 eine Online-Konferenz zum kommenden LTS-Release (Long-Term Support) von Microsofts Entwicklungsplattform .NET aus. Sie soll im November erscheinen und ist die neue Basis für alle auf Microsofts Entwicklungsplattform aufbauenden Programme – ob Desktop-Applikationen mit Windows Forms und WPF, Webanwendungen mit ASP.NET, mobile Apps auf Basis von Universal Windows Platform und .NET MAUI oder Unity-Spiele. Tickets und weitere Informationen zum Programm der betterCode() .NET 6 bietet die Konferenzwebseite.
(mdo)