Microsoft zeigt erste Pläne für .NET 6.0
Etwas mehr als ein halber Monat ist es her, dass .NET 5.0 vorgestellt wurde. Nun wird das Bild klarer, was in etwa einem Jahr als .NET 6.0 erscheinen wird.
- Dr. Holger Schwichtenberg
Rund einen halben Monat nach dem Erscheinen von .NET 5.0 am 10. November 2020 hat Microsoft erste Pläne für die Version 6.0 veröffentlicht, die im November nächsten Jahres erscheinen soll. Die Planung ist auf GitHub aufgeteilt in zahlreiche Themes, Epics und User Stories verfügbar. Zur einfacheren Übersicht bietet Microsoft die Website themesof.net mit einer hierarchischen Darstellung an.
AOT soll endlich kommen
Zu den größten Innovationen in .NET 6.0 soll die Realisierung eines Ahead-of-Time-Compilers (als Alternative zum Just-In-Time-Compiler) gehören – nicht nur für Blazor WebAssembly, sondern auch für andere .NET-Anwendungsarten. Das war schon für .NET 5.0 geplant, wurde aber verschoben. Microsoft will die Anwendungsgröße von .NET-Anwendungen auch durch Verbesserungen beim Application Trimming (Tree Shaking) optimieren. Profitieren soll davon insbesondere Blazor WebAssembly, dessen Startverhalten bisher problematisch ist. Für die Downloadgröße einer minimalen Blazor-WebAssembly-Anwendung in .NET 6.0 hat sich Microsoft 0,5 MByte als Ziel gesetzt.
Nachdem Microsoft auf der .NET Conf 2020 wenig zu .NET 6.0 verraten hatte, wird der .NET-Produktmanager Immo Landwerth die Planung zu .NET 6.0 im Rahmen der von heise Developer, iX und dpunkt.verlag ausgerichteten Online-Veranstaltung betterCode() .NET 5.0 am 3. Dezember 2020 vorstellen.
Die schichtenweise Kompilierung, die seit .NET Core 3.0 der Standard ist, soll in .NET 6.0 durch sogenannte Profile-Guided Optimization (PGO) verbessert werden. Dabei zeichnen Entwickler typische Wege durch die Anwendung auf, die dem JIT-Compiler zur Entscheidung dient, welcher Code zuerst und wie genau zu übersetzen ist. Single-File-Apps sollen in Zukunft für alle .NET-Anwendungsarten möglich sein und sich in Visual Studio im Debugger analysieren lassen.
Für Blazor- und andere ASP.NET-Core-Anwendungsarten sowie Xamarin will Microsoft ein Hot Reloading beziehungsweise Hot Restart anbieten, bei dem während der Entwicklungszeit geänderte Programmteile ohne Neustart der Anwendung aktiv werden. "Edit and Continue" beim Debugging soll auch für Razor-Code in Razor Views, Razor Pages und Razor Components funktionieren. Dazu soll der Razor Compiler mit C#-9.0-Sourcecode-Generatoren neu implementiert werden. Diese Generatoren will Microsoft auch allgemein für Performanceverbesserungen einsetzen, und zwar an Stellen, an denen bisher mit Reflection und Codegenerierung zur Laufzeit gearbeitet wird.
Integration von Xamarin und hybrid
Wie schon auf der Build 2020 angekündigt, soll Xamarin in .NET 6.0 integriert werden und damit das gleiche SDK und die gleichen Klassenbibliotheken wie andere .NET-Anwendungsarten nutzen. Anstelle von Xamarin will Microsoft dann von ".NET for iOS", ".NET for Android" sowie ".NET Multi-Platform App UI" (ehemals Xamarin.Forms) sprechen.
Blazor will Microsoft auch für hybride Desktop-Anwendungen anbieten. Daran entwickelt Microsoft schon seit mehr als einem Jahr unter dem Namen "ComponentsElectron". Neben der Gestaltung der Oberfläche mit HTML und CSS soll es die Möglichkeit geben, native Steuerelemente einzubinden.
Optimierter Netzwerkverkehr
Auch an der Integration von Google RPC will Microsoft weiterarbeiten. So sollen sich fehlgeschlagene API-Aufrufe automatisch wiederholen lassen (Client Retry Support), und man will allgemein die Performance von gRPC und ASP.NET Core weiter steigern. Zudem soll .NET 6.0 auch HTTP/3 auf Basis von Quick UDP Internet Connections (QUIC) anstelle von TCP anbieten.
Für neue .NET-Entwickler will Microsoft den Einstieg erleichtern. So sollen zum Beispiel in der Visual Studio Community Edition im Standard nur noch .NET-6.0-Projekte angeboten werden. Alte Projektvorlagen für klassisches .NET Framework sollen aber etwas versteckt weiterhin vorhanden sein. Auch bei der Entwicklung von ASP.NET Core WebAPIs will Microsoft die Einstiegshürden verringern durch ein neues, "leichtgewichtigeres" Programmiermodell. Für ASP.NET Core will Microsoft außerdem einen anpassbaren Reverse Proxy ausliefern.
(ane)