Microsoft veröffentlicht erste Preview-Version von .NET 6

Zwei Monate nach dem Erscheinen von .NET 5.0 startet die Reihe der Vorschauversionen für die nächste .NET-Version.

Lesezeit: 4 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 12 Beiträge

(Bild: pio3/Shutterstock.com)

Von
  • Dr. Holger Schwichtenberg

Microsoft hat auf seinem Webserver die erste Preview-Version der nächsten .NET-Version bereitgestellt, die im November 2021 erscheinen soll. Offizieller Name der Version soll nun ".NET 6" sein. Auf den Punkt und die Null, die noch bei .NET 5.0 verwendet wurde, will Microsoft laut dem Blogeintrag des Program Managers Richard Lander verzichten. Auf der Downloadseite liest man dennoch ".NET 6.0" (s. Abb. 1).

Auch in anderen Punkten hinkt die Website noch den Ankündigungen im Blog hinterher. So soll es in Preview 1 zumindest eine halbfertige Unterstützung für die Apple-Silicon-Prozessoren und die .NET-Desktop-Runtime für Windows auf Arm64-Prozessoren geben. Tatsächlich stehen aber bisher für die .NET 6 Desktop Runtime nur die x86- und x64-Versionen zum Download bereit, die für Apple-Silicon-Laufzeitumgebung fehlen noch.

In Preview 1 bietet .NET 6 eine neue Implementierung des .NET Thread Pools. Die Komponente System.Threading.AccessControl bietet Verbesserungen für Access Control Lists auf Windows. Auch bei den mathematischen APIs im Namensraum System.Numerics gibt es Erweiterungen. Das in .NET Core 3.0 eingeführte und bisher in C++ geschriebene CrossGen-Werkzeug wurde in C# neu implementiert. Zukünftig will Microsoft damit alle Assemblies im .NET SDK zu Machinencode vorkompilieren.

Auf der .NET-6-Downloadseite gibt es noch einige Abweichungen gegenüber der Ankündigung (Abb. 1)

Mehrere Neuerungen für Entity Framework Core 6.0 sind hingegen bereits in der Preview 1 auf Nuget.org verfügbar. Dazu gehören neue Annotationen wie [Unicode], [Precision] und [EntityTypeConfiguration] sowie Verbesserungen bei den Datenbanktreibern. SQLite unterstützt nun ToString() und das in Version 5.0 eingeführte Savepoints API. Für den Microsoft SQL Server kann der Datenzugriffsentwickler nun per Fluent-API eine Spalte als "Sparse Column" deklarieren und damit Speicherplatz in den Datenbankdateien einsparen, für den Fall, dass es viele Null-Werte gibt. Dies tritt typischerweise beim Table-per-Hierarchy-Mapping auf. Auch die Methode IsNullOrWhitespace() unterstützt der SQL-Server-Treiber nun. Bei Reverse Engineering übernimmt das Werkzeug Kommentare zu Tabellen und Spalten aus dem Datenmodell in den generierten Programmcode. Mit SQL Server, SQLite und Cosmos DB funktioniert die Zufallszahlengenerierung mit EF.Functions.Random().

Das Webframework ASP.NET Core 6.0 bietet in Preview 1 erste Verbesserungen für Blazor-Anwendungen. Mit der neuen Razor Component <DynamicComponent> können Entwickler eine beliebige andere Komponente dynamisch rendern. Bei den Blazor-Eingabesteuerelementen gibt es nun einen direkten Zugang zur Element Reference, die Entwickler brauchen, wenn sie auch per JavaScript darauf zugreifen wollen. Microsoft hat zudem begonnen, die ASP.NET Core-Klassen für die bessere Unterstützung der in C# 8.0 eingeführten Nullable Reference Types zu annotieren. Einzige wirkliche Verbesserung für ASP.NET Core MVC ist die Unterstützung der Schnittstelle IAsyncDisposable für Controller, Page Models und View Components.

Der sehr lang geratene Blogeintrag zur .NET 6 Preview 1 handelt im Übrigen von Microsofts grundsätzlichen Plänen für .NET 6, die aber schon seit Ende November 2020 auf der Website themesof.net veröffentlicht sind, wie heise Developer berichtete.

Zu den bisher nur ansatzweise umgesetzten Plänen gehören die Integration von Xamarin Mobile Apps, neue hybride Desktop-Apps auf Basis von Blazor, Verbesserungen für Single File Applications, die Beschleunigung des Entwicklungsprozesses für Webanwendungen durch schnellere Kompilierung, Hot Reload/Hot Restart sowie Edit&Continue beim Debugging und die Ahead-of-Time-Kompilierung als Alternative zum Just-in-Time-Compiler.

Einige der im November angekündigten Pläne hat Microsoft aber auch schon wieder revidiert. So wurde im Issue "WebAssembly developers want smaller published output to speed up their apps load time" Ende Januar das Ziel, eine "Hello World"-Anwendung auf eine Größe von 0,5 MByte zu drücken, entfernt und durch die Aussage ersetzt, man wolle die bestehende Größe von 2,2 MByte um "wenigstens 20 %" reduzieren.

(map)