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>.