Blazor WASM (WebAssembly) ist ein relativ neues Framework, das von Microsoft entwickelt wurde. Es ermöglicht Entwicklern, komplexe Webanwendungen mit C# zu erstellen, ohne dass sie JavaScript schreiben müssen. Die Entwicklung ist dadurch effizienter und günstiger.
Hauptmerkmale von Blazor WASM
- C# anstatt JavaScript:
Blazor WASM Apps werden in C# geschrieben und dann als WASM Code kompiliert. Dies ermöglicht Entwicklern, die .NET-Plattform für Web-Anwendungen zu nutzen. - WASM Code läuft direkt im Browser:
Da WASM im Browser des Benutzers läuft, wird der Server entlastet. So lässt sich auch mit geringen Hardware-Resourcen eine hohe Performance erreichen. - Interaktivität:
Blazor WASM Apps bieten eine nahtlose Benutzererfahrung, da sie reaktive und interaktive Elemente enthalten können.
Die 4 Vorteile von Blazor WASM
- Besseres Resourcen-Management:
Da der Code in WebAssembly kompiliert wird, kann er effizienter verwaltet werden als JavaScript. - Schnelle Ladezeiten:
Blazor Apps laden in der Regel schneller und bieten eine bessere Benutzerleistung. - Leicht zu entwickeln:
C# ist eine weit verbreitete Sprache und verfügt über ein mächtiges Ökosystem. - Einfaches Deployment:
Blazor WASM Apps beinhalten bereits das .NET Runtime und können somit auf jedem Webserver sehr einfach installiert werden.
Nachteile einer WASM App
- WASM Apps werden in der Browser Sandbox ausgeführt:
Das ist in Sachen Sicherheit perfekt, jedoch ist der Zugriff auf System-Resourcen (z.B. Filesystem) gesperrt. Bei Desktop Apps kann das Je nach Anforderungen ein K.O.-Kriterium für ein Projekt sein. Alternativ kann man hier jedoch auf Blazor MAUI Apps ausweichen. - Verzögerter 1. Start:
Je nach Komplexität und Größe kann der Vorgang etwas dauern, da das komplette .NET Framework zusammen mit der App geladen wird.
Blazor WASM: Standalone, Client-Server und Embedded
Es gibt in der Praxis 3 Szenarien, eine WASM App zu betreiben:
Standalone
Werden keine externen Daten benötigt, kann die WASM App vollständig im Browser laufen. Ein Server wird hier nur zum erstmaligen Start benötigt. Danach kann sogar die Internetverbindung gekappt werden und die App läuft offline weiter:
Client-Server
Wenn die WASM App auf Server-Daten zugreifen muss, dann geschieht das per HTTP-Requests an eine REST-API, die auf dem Server läuft. Alles Weitere bleibt jedoch Aufgabe des Clients und der Server ist weitgehend entlastet. Dieses Modell benötigt in der Regel eine permanente Internet-Verbindung:
Embedded
Hier wird eine Standalone WASM App oder eine Client-Server WASM App nahtlos in eine HTML-Seite eines anderen Systems als WASM-Komponente eingebettet. So lassen sich z.B. WordPress Plugins oder Shopify Apps komplett in C# schreiben:
Fazit
Blazor WASM ist ein leistungsstarkes Framework für die Erstellung von Webanwendungen. Es ermöglicht Entwicklern, komplexe Anwendungen mit C# zu erstellen und bietet zahlreiche Vorteile in Bezug auf Ressourcenverwaltung, Ladezeiten und Entwicklung. Blazor WASM Apps können in der Regel schneller und kostensparender programmiert und sogar in bestehende Systeme eingebettet werden. Die Anforderungen an den Server sind minimal.