Was ist Blazor? Definition, Vorteile & Hosting-Modelle im Überblick
Blazor ist ein Open-Source-Web-Framework von Microsoft, mit dem sich interaktive Weboberflächen in C# statt ausschließlich in JavaScript entwickeln lassen. Es basiert auf ASP.NET Core und ist damit fest im .NET-Umfeld verankert. Lesen Sie hier, wie das Framework funktioniert und wie sich Blazor Server und Blazor WebAssembly unterscheiden und miteinander kombinieren lassen:
Das Web-Framework von Microsoft: Wie funktioniert Blazor?
Das Grundprinzip: C#-Komponenten statt JavaScript
Klassischerweise wird die clientseitige Logik einer Webanwendung im Browser mit JavaScript umgesetzt. Blazor geht einen anderen Weg: Die Benutzeroberfläche wird aus wiederverwendbaren Komponenten aufgebaut, deren Logik in der Programmiersprache C# geschrieben wird. Diese Bausteine heißen Razor-Komponenten: Sie bündeln HTML-Markup und C#-Logik in einer .razor-Datei und lassen sich beliebig verschachteln und kombinieren.
Welche Vorteile bietet Blazor?
- Frontend und .NET-Backend können mit C# in einer gemeinsamen Sprache entwickelt werden
- vorhandener .NET-Code und kompatible Bibliotheken lassen sich wiederverwenden
- Entwicklerteams arbeiten mit vertrauten Werkzeugen wie Visual Studio
- auch JavaScript-Bibliotheken bleiben über die JavaScript-Interoperabilität (JS-Interop) nutzbar
Hosting-Modelle für die Ausführung
Was ist der Unterschied zwischen Blazor Server und Blazor WebAssembly?
Blazor Server
Beim Modell Blazor Server laufen die Razor-Komponenten als Teil einer ASP.NET-Core-Anwendung auf dem Webserver. Benutzeraktionen und Aktualisierungen der Benutzeroberfläche werden über eine Echtzeitverbindung mit SignalR übertragen. Die erste Ladezeit ist in der Regel kurz, allerdings ist für die laufende Interaktion eine Verbindung zum Server erforderlich.
Blazor WebAssembly
Bei Blazor WebAssembly wird die Anwendung dagegen clientseitig direkt im Browser ausgeführt: Der .NET-Code läuft dort in einer WebAssembly-basierten .NET-Laufzeit. Nach dem größeren ersten Download ist für die Ausführung keine dauerhafte Serververbindung erforderlich. Zugriffe auf serverseitige Daten oder Dienste benötigen jedoch weiterhin eine Verbindung.
Mischformen: Render-Modi und Blazor Hybrid
Seit .NET 8 lassen sich server- und clientseitige Ausführung in einer Blazor Web App flexibel kombinieren. Über sogenannte Rendermodi lässt sich festlegen, ob interaktive Komponenten auf dem Server, im Browser oder – bei „Interactive Auto“ – zunächst auf dem Server und bei späteren Besuchen im Browser ausgeführt werden.
Mit Blazor Hybrid lassen sich Razor-Komponenten außerdem in nativen Desktop- und Mobile-Apps mit .NET MAUI sowie in WPF- und WinForms-Anwendungen einsetzen. Dabei läuft der .NET-Code direkt auf dem Gerät, während die Benutzeroberfläche in einer eingebetteten WebView dargestellt wird. Dies kann die schrittweise Modernisierung bestehender Desktop-Software ermöglichen, ohne die gesamte Anwendung auf einmal neu zu entwickeln.
Stellenwert von Blazor in der Anwendungsmodernisierung
Aus unserer Projekterfahrung bei fecher zeigt sich: Blazor Server eignet sich insbesondere als Zieltechnologie, wenn eine bestehende WPF-Anwendung nicht nur in den Browser überführt, sondern auch ihre Benutzeroberfläche, Interaktionslogik und Architektur stärker an moderne, komponentenbasierte Webkonzepte angepasst werden sollen. Wiederverwendbare Teile der Geschäftslogik können dabei erhalten oder angepasst werden, während Oberfläche und Interaktion in der Regel neu umgesetzt werden. So entsteht eine browserbasierte Anwendung auf moderner .NET-Basis, die sich ohne lokale Desktop-Installation nutzen und langfristig weiterentwickeln lässt. Welcher Modernisierungsweg geeignet ist, hängt von der Ausgangssituation und den Zielen des jeweiligen Projekts ab.
Sie interessieren sich für Anwendungsentwicklung und Anwendungsmodernisierung? Neben diesem Beitrag zum Thema Blazor finden Sie weitere Erläuterungen und Begriffsklärungen in unserem IT-Glossar! Gerne beraten wir Sie persönlich zu einer Legacy-Software-Modernisierung für Ihr Unternehmen.
