Blazor

Blazor ist ein freies Open-Source Web Frontend Framework von Microsoft.
Der Name setzt sich aus Browser und Razor (Rasiermesser) zusammen. Razor beschreibt die Art wie man ins HTML Dokument eingreift, und zwar messerscharf.

Um mit Blazor Apps zu entwickeln, muss man HTML/CSS und C# können. Auch wenn nicht zwingend erforderlich sollte man sich zudem mit JavaScript auskennen.

Mit Blazor kann man interaktive Web-Apps erstellen. Blazor gibt es in 2 Ausführungen Blazor Server und Blazor WebAssembly. Der Browser kann mit Blazor nichts anfangen und versteht Blazor nicht. Es ist immer eine Übersetzung der erstellten Inhalte nötig. Zudem müssen Interaktionen behandelt werden. Diese 2 Ausführungen unterscheiden sind darin, wo der Inhalt übersetzt wird und die Interaktionen verarbeitet werden.

Wie der Name schon sagt, wird bei Blazor Server der meiste Inhalt auf dem Server übersetzt und zum Client gesendet. Interaktionen lösen eine Anfrage zum Server aus und werden dort verarbeitet. Der Client bekommt vom Server HTML Dateien, die er verarbeiten kann.

Vorteile von Blazor Server:
• Funktioniert auch mit älteren Browsern
• Suchmaschinen können die Website wie üblich verarbeiten
• Kurze Ladezeiten

Nachteile:
• Es ist zwingend ein ASP.NET Server nötig
• Es muss durchgehen eine Verbindung zum Server aufrechtgehalten werden
• Auch kleine Apps können sehr viele Ressourcen auf dem Server verbrauchen

WebAssembly ist noch recht neu in der Webentwicklung, damit ist es möglich Bytecode im Browser auszuführen. Dabei wird die App mit ihren Abhängigkeiten vom Client heruntergeladen und im Browser ausgeführt. Erst nach dem Herunterladen wird die App gestartet, dass kann je nach Größe der App etwas dauern. Ein Server ist nur zum Bereitstellen der App nötig. Danach kann die App unabhängig von Server betrieben werden. Mit Blazor Wsam sind auch PWA (Progressive Web App) möglich die sozusagen auf dem Client installiert werden und so offline genutzt werden können.

Die Übersetzung zu HTML erfolgt damit nur auf dem Client auch alle Interaktionen werden auf dem Client ausgeführt. Natürlich kann man auch weiterhin Anfragen an einen Server senden, um irgendwelche Daten zu erhalten. Das muss aber nicht derselbe Server sein.

Vorteile von Blazor WebAssembly:
• Unabhängig vom Server
• Kann im CDN oder auf einem Webspace gehostet werden
• Mögliche offline Nutzung
• Sobald einmal geladen kann Blazor Wsam schneller reagieren als Blazor Server

Nachteile:
• Nur in modernen Browser lauffähig
• Meistens nicht von Suchmaschinen lesbar
• Je nach Größe der App (viel) längere Ladezeiten


Auch wenn sich Blazor Server und Wsam von der Entwicklung her sehr ähneln sind es 2 verschiedene Projektarten. Bei Blazor Server muss man sich mit der Client/Server Entwicklung gut auskennen man kann hier sehr viel falsch machen. Einfacher ist Blazor Wsam.

Einen guten einstieg in Blazor findet man bei Microsoft