ASP.NET Core Blazor 6.0
Eintrag zuletzt aktualisiert am: 24.11.2022
ASP.NET Core Blazor 6.0 ist im Rahmen von
.NET 6.0 am 8.11.2021 erschienen.
Neuerungen in Blazor 6.0
Die meisten Neuerungen in
ASP.NET Core 6.0 gibt es für die ASP.NET Core-Variante "Blazor", mit der man nun nicht nur Single-Page-Web-Apps, sondern auch hybride Apps für Windows schreiben kann. Dabei werden Blazor-Anwendung mit
HTML-Oberfläche in einem Webview-
Steuerelement in einer Desktop-Anwendung auf Basis von
Windows Forms oder
Windows Presentation Foundation im gleichen Prozess und
Thread gehostet. Die Webanwendung hat dabei vollen Zugriff auf alle System-
APIs.
MAUI zeigt in seinen Vorschauversionen bereits seit Mai 2021, das dies auch auf
Android,
iOS und macOS möglich ist.
Für
Blazor WebAssembly, bei dem bisher immer .NET Intermediate Language im Browser (langsam) interpretiert wurde, hat Microsoft nun einen optionalen
Ahead-of-Time-Compiler (
AOT) zu
WASM-Bytecode eingebaut. Das beschleunigt zwar den Lauf einer Anwendung erheblich, aber es sind beim Anwendungsstart für die .NET-Laufzeitumgebung und den eigenen Code deutlich mehr Megabytes in den Browser zu hieven, was die ansonsten in Blazor 6.0 erzielten Optimierungen im Bereich der Downloadgröße zu Nichte macht. Mehrere Megabytes in den Browser zu laden, kann im Intranet akzeptabel sein, ist aber im öffentlichen Internet ein KO-Kriterium.
Die Integration zwischen C# und
JavaScript hat Microsoft verbessert: Nun ist schnelleres
Streaming von Daten möglich und eine Blazor-Anwendung lässt sich innerhalb einer
JavaScript-Anwendung rendern. Der Konzern arbeitet auch daran, Blazor-
Komponenten als Standard Web Components bereitzustellen. Das zur Erstellung von
HTML Custom Elements bereitgestellte
NuGet-Paket Microsoft.AspNetCore.Components.CustomElements bleibt aber vorerst im experimentellen Alpha-Stadium. Darüber hinaus vermeidet Blazor 6.0 aber nun an mehr Stellen den Einsatz von
JavaScript, z.B. bei der Manipulation des Head-Elements einer Seite und bei DropDowns mit Mehrfachauswahl.
Für die
Komponentenprogrammierung in Blazor bietet Microsoft nun eine Parameterübernahme aus dem Querystring, Typparameter mit Bedingungen, Pflichtparameter (deren Nicht-Belegung allerdings nur zur Entwicklungszeit zu Warnungen führt) und die aus
React bekannten Error Boundaries zur Fehlerbehandlung sowie ein leichteres dynamisches Render mit der neuen <DynamicComponent>.