Ist ASP.NET Core Blazor nun fertig oder noch nicht?

Der Dotnet-Doktor  –  0 Kommentare

Der Dotnet-Doktor erklärt den Unterschied zwischen Blazor Server (im RTM-Status) und Blazor WebAssembly (im Preview-Status).

Blazor wurde von Microsoft im Februar 2018 erstmals vorgestellt als Möglichkeit, mit .NET und C# im Webbrowser zu programmieren – wie einst mit Silverlight, aber doch besser, denn Blazor erfordert keine Browser-Plug-ins, sondern läuft in allen modernen Webbrowsern auf Basis von WebAssembly. Seit dieser Ankündigung ersehnen sich viele .NET-Entwickler Blazor herbei als Alternative zur Programmierung mit JavaScript/TypeScript und diversen Webframeworks.

Mich haben nun in den letzten Wochen schon einige Kunden angesprochen mit der (sinngemäßen) Frage: "Ist Blazor nun fertig oder noch nicht?"

Tatsächlich sind einige Kunden verwirrt, und die Frage ist nicht mit einem einfachen Ja oder Nein zu beantworten, denn es gibt inzwischen zwei Formen von Blazor:

  • Das ursprünglich im Februar 2018 gezeigte Blazor ist weiterhin im Preview-Stadium und wird auch kurzfristig nicht erscheinen. Diese Form von Blazor nennt Microsoft zur Abgrenzung inzwischen Blazor WebAssembly (zwischenzeitlich: Client Side Blazor)
  • Seit August 2018 gibt es auch "Server Side Blazor", das inzwischen Blazor Server heißt. Diese Blazor-Variante ist am 23. September.2019 als Teil von ASP.NET Core 3.0 RTM erschienen und wird am 3. Dezember 2019 (geplant) auch als Teil von ASP.NET Core 3.1 in einer aktualisierten Form erscheinen.

Was ist der Unterschied?

Bei Blazor Webassembly läuft der .NET-Programmcode im Webbrowser auf Basis der Mono-Runtime (in Zukunft .NET 5). Der Programmcode liegt in MSIL vor, die Mono-Runtime in WebAssembly (WASM) interpretiert das MSIL. Eine Ahead-of-Time-Kompilierung von MSIL nach WASM ist geplant, aber noch nicht verfügbar.

Eine Blazor-Server-Anwendung läuft nicht auf Basis von WebAssembly im Browser, sondern – wie der Name auch ausdrückt – auf dem Webserver in einem ASP.NET-Core-Prozess auf der .NET Core Runtime. Dass Benutzer dennoch das Erlebnis einer Single-Page-Web-Application bekommen, liegt am Einsatz von ASP.NET Core SignalR, das die Benutzerinteraktionen mit der Webseite per Websocket zum Server sendet und die auf dem Server vorgenommenen Änderungen auf dem Document Object Model (DOM) zum Browser überträgt. Das dazu notwendige Virtual DOM auf dem Webserver für jeden angeschlossenen Browser schränkt allerdings die Skalierbarkeit ein und verhindert die Offline-Fähigkeit der Anwendung.

Die folgende Abbildung veranschaulicht die Unterschiede (bitte anklicken zum Vergrößern).

Ist Blazor Server für die Praxis geeignet?

Mit Blazor Server konnten wir bei www.IT-Visions.de in den letzten Wochen schon einige kleinere und mittlere SPA-Webanwendungen entwickeln. Wenn man lange Erfahrung mit den verschiedenen Microsoft-Webframeworks einerseits und JavaScript-basierten Frameworks andererseits hat, ist man mit Blazor wirklich sehr produktiv.

Blazor Server ist hingegen sicherlich keine Lösung für hochskalierbare Webanwendungen mit sehr hohen Benutzerzahlen, sondern für Anwendungen von kleinen bis mittleren Nutzerzahlen. Eine Blazor-Server-Anwendung kann auch die Vorstufe zu einer späteren, dann sehr einfachen Umstellung auf Blazor WebAssembly sein. Wie gut die Performance und Skalierbarkeit von Blazor Webassembly sein wird, muss man bewerten, wenn das Produkt fertig ist.

Wenn Sie mehr über Blazor erfahren wollen


Ich habe auf Basis meiner bereits gesammelten praktischen Erfahrungen aus oben genannten Blazor-Projekten begonnen, ein Fachbuch zu Blazor (Blazor Server und Blazor WebAssembly) zu schreiben. Die aktuelle Version des Buchs, das ich in den kommenden Monaten analog zu dem Produkt weiterentwickeln werde, hat 172 Seiten und ist wie folgt verfügbar:

  1. Print-On-Demand bei Amazon.de für 19,99 Euro (der Autor erhält 8,99 Euro)
  2. Kindle-E-Book bei Amazon.de für 9,99 Euro (der Autor erhält 5,61 Euro)
  3. PDF-E-Book bei Leanpub.com für 19,99 Dollar (der Autor erhält ca. 14,50 Euro)