Blazor
Eintrag zuletzt aktualisiert am: 19.02.2025
Blazor ist ein Single-Page-Web-Application (SPA) Framework im Browser von Microsoft.
Der vollständige Name ist "
ASP.NET Core Blazor", denn Blazor ist ein Teil von
ASP.NET Core.
Architekturmodelle
Es gibt fünf Architekturmodelle in Blazor:
1.
Blazor Static Server Side Rendering: Multi-Page-Anwendungen wie bei
ASP.NET Core MVC und Razor Pages, aber modernere Razor-Syntax und mehr Features (
HTML-
Streaming, Enhanced Navigation)
2.
Blazor WebAssembly (alias Client Side Rendering): Die Ausführung von in C# geschriebenen .NET-Anwendungen direkt im
Webbrowser war der ursprüngliche Gedanke. Die
DLLs werden in Intermediate Language in den Browser geladen und dort interpretiert im Rahmen der WebAssembly Virtual Machine (Ein Ahead-of-Timer-
Compiler zu WebAssembly-Bytecode ist schon lange in Arbeit und soll in
.NET 6 erscheinen). Da es keinen direkten Zugang zum Document Object Model (DOM) des Browsers gibt, manipulieren
Razor Components und C#-Code das Virtual DOM, welches Microsoft dann via
JavaScript mit dem echten DOM synchronisiert.
3.
Blazor Server (alias interactive Server Side Rendering): Hierbei läuft der C#-Code nicht im Browser, sondern im
Webserver. Zwischen dem Virtual DOM und dem echten DOM liegt das
Netzwerk. Microsoft synchronisiert beide via Blazor Pack-Protokoll über
Websockets.
Blazor Server funktioniert aber folglich nur bei kontinuierlicher
Netzwerkwerkverbindung (Offline-Fähigkeit ist per se nicht möglich) und bietet auch keine gute Skalierbarkeit, denn der Zustand aller
Komponenten und das Virtual DOM für alle Benutzer liegt auf dem
Webserver. Eigentlich nur als Nebenprodukt von
Blazor WebAssembly entstanden, hat
Blazor Server dennoch inzwischen einige Anhänger gefunden, denn eine Web
API-Middle-Tier braucht man hier nicht.
4.
Blazor Desktop, eine hybride Anwendung. Eine Blazor-basierte Webanwendung ist einbettbar in eine Desktop-Anwendung oder mobile App. Die Blazor-Webanwendung läuft im gleichen Prozess wie die Rahmen-Anwendungen und teilt sich Zustände mit dieser. Es gibt keinen
Webserver und keine WebAssembly-VM: Der .NET-Prozess selbst rendert die
Razor Components und integriert einen
Webbrowser-
Steuerelement für die Darstellung.
5.
Blazor MAUI ist eine innerhalb von .NET MAUI gehostete Blazor-Anwendung, die damit auf Windows,
iOS, macOS,
Android und
Tizen als native App laufen kann.
Eigenschaften
Open Source (
https://github.com/aspnet/Blazor/)
Verwendet C# und die Razor-
Template-Syntax
Benutzeroberflächenbeschreibung in
HTML und
CSS
Zeitplan
- Erste Vorschauversion war am: 22.3.2018
- 28.4.2019: Blazor offizielles Projekt (nicht mehr experimentell)
- Blazor Server erschienen in .NET Core 3.0 am 23.9.2019, Update in ASP.NET Core 3.1 am 3.12.2019
- Blazor WebAssembly ist im Mai 2020 erschienen.
- Seitdem jeden November neues Release zusammen mit dem modernen .NET
Ausgewählte GUI-Komponentenanbieter für Blazor
Telerik UI for Blazor
https://www.telerik.com/blazor-ui
DevExpress Blazor UI Components
https://www.devexpress.com/blazor
Syncfusion Blazor Component Library
https://www.syncfusion.com/blazor-components
Infragistics Ignite UI for Blazor
https://www.infragistics.com/products/ignite-ui-blazor
Radzen Blazor Components
https://blazor.radzen.com
Gardnet AB MudBlazor
https://mudblazor.com
.NET Foundation Ant Design Blazor
https://antblazor.com
Megabit Ltd Blazorise Components
https://blazorise.com
MESCIUS (früher: GrapeCity) Component One Blazor Controls
https://developer.mescius.com/componentone/blazor-ui-controls
Tabelle: