Wissen von A bis Z

Blazor

JavaScript adé — mit Blazor erobert C# den Browser und bringt Ordnung in das wilde Frontend-Chaos.

Blazor ist das Web-UI-Framework von Microsoft auf Basis von .NET, das es erlaubt, interaktive Single-Page- und Realtime-Webanwendungen vollständig in C# (und Razor) statt in JavaScript zu schreiben. Blazor-Komponenten sind als Razor-Komponenten (.razor) realisiert; sie kombinieren HTML-Template, C#-Code-Behind und Lifecycle-Methoden in einer Komponentenstruktur, die konzeptionell an React, Angular oder Vue.js angelehnt ist.

Im praktischen Einsatz existieren mehrere Hosting-Modelle: Blazor Server rendert Komponenten serverseitig und überträgt UI-Updates über eine SignalR-Verbindung; Blazor WebAssembly führt die .NET-Runtime und den Anwendungscode direkt im Browser über WebAssembly aus; Blazor Hybrid bettet Blazor-Komponenten in native Apps via .NET MAUI, WPF oder Windows Forms ein; und Blazor United (ab .NET 8) erlaubt es, statisches Server-Rendering, Streaming-Rendering, Blazor Server und Blazor WebAssembly innerhalb derselben Anwendung pro Komponente festzulegen.

Der Einsatzzweck von Blazor ist es, Frontend- und Backend-Entwicklung in .NET-Stacks auf einer Sprache und einem Komponentenmodell zu vereinen. Damit werden klassische Probleme heterogener Web-Stacks adressiert: doppelte Modelldefinitionen in C# und TypeScript, separate Build- und Deploy-Toolchains, Reibung beim Code-Sharing zwischen Server und Client. Gleichzeitig stellt Blazor WebAssembly eine echte Alternative zu JavaScript-Frameworks dar — auf Kosten einer initial größeren Download-Größe und etwas höherer Startup-Latenz.

Historisch geht Blazor auf einen Hackathon-Prototypen von Steve Sanderson aus dem Jahr 2017 zurück. Microsoft hat das Projekt offiziell ab Blazor 0.x als experimentell aufgenommen, mit Blazor Server als erstem stabilen Hosting-Modell in .NET Core 3.0 (2019), Blazor WebAssembly in .NET Core 3.2 / .NET 5 und Blazor Hybrid bzw. Blazor United entlang der späteren .NET-Versionen.

Eingeführt wurde Blazor maßgeblich von Steve Sanderson (zuvor bekannt durch Knockout.js) sowie dem ASP.NET-Team rund um Daniel Roth. Sandersons ursprüngliche Demo, die in einem Vortrag eine in C# geschriebene Single-Page-App live im Browser zeigte, wurde beim ersten Auftritt von vielen Zuschauern für einen Trick gehalten — dass tatsächlich die .NET-Runtime via WebAssembly im Browser lief, war 2017 noch so unerwartet, dass das Publikum hörbar reagierte und der Begriff ‚Blazor' (eine Mischung aus ‚Browser' und ‚Razor') seitdem zum Synonym für ‚.NET im Browser' wurde.

Zurück