Web-Frontend-Framework: Eine Blazor-App für alle Plattformen

Das Webframework Blazor gibt es in Varianten, die allesamt Vor- und Nachteile haben. Durch Code-Sharing lässt sich das Beste aus allen Blazor-Welten verbinden.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen

(Bild: Semisatch/Shutterstock.com)

Lesezeit: 13 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Das populäre .NET-basierte Web-Frontend-Framework ist in Wahrheit keine einheitliche Plattform, sondern es gibt mittlerweile vier Varianten davon. Blazor WebAssembly läuft komplett eigenständig in allen modernen Browsern, Blazor Server benötigt kontinuierliche Interaktion zwischen Browser und einem Webserver, Blazor Desktop erstellt native Windows-Anwendungen, die auf Windows Forms oder Windows Presentation Foundations (WPF) basieren, Blazor MAUI schließlich läuft auf Windows, macOS, iOS, Android oder Tizen innerhalb einer .NET-MAUI-Rahmenanwendung. Blazor MAUI und Blazor Desktop werden auch zusammen als Blazor Hybrid bezeichnet.

Die einzige bei Blazor bisher nicht angebotene Plattform ist der Linux-Desktop: Der Host .NET MAUI hat diese Plattform bisher vernachlässigt. Das GitHub-Projekt eines Microsoft-Mitarbeiters, das .NET MAUI auf Linux bringen sollte, ist in der Zwischenzeit eingeschlafen.

Auch wenn nur der Browser angesprochen werden soll, wünschen sich Entwickler und Entwicklerinnen oft, dass eine Anwendung gleichzeitig mit Blazor WebAssembly und Blazor Server läuft, denn die Entscheidung zwischen Blazor WebAssembly und Blazor Server fühlt sich in einigen Fällen an wie die Wahl zwischen Pest und Cholera.

Blazor WebAssembly muss zu Beginn große Datenmengen in den Webbrowser laden und die Binärdateien werden von manchen Firewalls und Virenscanner blockiert. Danach läuft Blazor WebAssembly aber eigenständig und funktioniert auch, wenn die Verbindung zum Server schlecht ist oder abbricht. Blazor Server hingegen lädt zu Beginn ausgesprochen schnell, hat keine Probleme mit Sicherheitssoftware und bietet zudem einen guten Schutz vor Spionage, denn der C#-Programmcode verlässt den Webserver nicht. Allerdings braucht Blazor Server eine konstant gute Netzwerkverbindung zwischen Client und Webserver sowie pro Benutzer eine gewisse Menge an RAM und Rechenzeit auf dem Webserver, denn dort liegen der Zustand und eine Kopie des Document Object Model (DOM) für alle aktiven Nutzer.

Daher hat es Vorteile, eine Anwendung gleichzeitig mit Blazor WebAssembly und Blazor Server anzubieten, beispielsweise um Blazor Server als Fallback zu nutzen, wenn Blazor WebAssembly von Sicherheitssoftware geblockt ist. Für .NET 8.0 plant Microsoft Verbesserungen: Blazor WebAssembly-Anwendungen können im neuen WEBCIL-Format übertragen werden, das nicht geblockt werden sollte. Zudem soll es mit Blazor United die Möglichkeit eines automatischen Fallbacks von Blazor WebAssembly auf Blazor Server geben. Blazor MAUI und Blazor Desktop werden aber nicht Teil von Blazor United sein.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.