Was ist Blazor?
Blazor ist ein auf .NET basierendes Single-Page-Application (SPA) Framework. Es basiert unter anderem auf HTML und CSS. Mit Blazor ist es möglich eine SPA in C# mit Standard .NET Bibliotheken zu programmieren. Der Name Blazor kommt von “Browser” und “Razor”. Ich erkläre erstmal, was denn überhaupt “Razor” ist.
Razor
Razor ist ein Markup Syntax, mit der es möglich ist serverseitiges Code, bspw. C#, in standard HTML Code zu schreiben. Wenn eine Webpage aufgerufen wird, führt der Server das serverseitige Code auf der Page zuerst aus, bevor es im Browser am Client angezeigt wird. Razor wurde normalerweise für ASP.NET MVC Views gebraucht, bis Microsoft mit ASP.NET Core eine weitere Option, die Razor Pages, vorgestellt hat.
Razor Pages
Razor Pages schaffte Views und Controller ab und ersetzte sie stattdessen durch individuelle Seiten. Das HTML mit serverseitigen Code wird auf die .cshtml Datei geschrieben, während die UI Logik, die als ein Art Brücke zwischen UI und Rest der Applikation dient, auf die .cshtml.cs der entsprechenden Page geschrieben wird.
Razor Components (Blazor)
Blazor ist eine Alternative zu MVC und Razor Pages, die aber eine SPA Framework ist und C# statt JavaScript benutzt. Die Blazor App kann sowohl mit WebAssembly auf dem Client als auch via SignalR auf dem Server laufen. Eine Component ist die Kombination von Markup (HTML) und Logik (C#) in einer einzigen Razor Datei (mit der Erweiterung .cshtml). Da Blazor solche Components benutzt nennt man sie auch Razor Components (nicht Blazor Components, da sie mit der Markup Syntax Razor geschrieben werden).
Blazor Server
Die Razor Components können sowohl auf dem Client als auch auf dem Server mit Blazor gehostet werden. Für das Hosten auf dem Server kann wird Blazor Server benutzt. Blazor kann ihre Client-Logik auf dem Server ausführen. Client-UI Events werden über SignalR – ein Echtzeit Messaging Framework – an den Server zurückgesendet. Sobald die Ausführung abgeschlossen ist, werden die erforderliche UI-Änderungen an den Client gesendet und in das DOM eingefügt. Blazor Server verwendet eine Standart-ASP.NET Core Applikation. Die Blazor Server Applikation kommuniziert mit dem Browser über eine konstante Verbindung mit SignalR. Man kann clientseitige Seiten mit Razor Components erstellen.
Blazor Server Apps sind schnell zu laden und einfach zu implementieren. .NET 5 wird für Blazor Server unterstützt.
Blazor Webassembly
Blazor Webassembly erlaubt den Browser die Blazor Applikation herunterzuladen. Dies bedeutet, dass die Blazor-Anwendung im Webbrowser ausgeführt wird. Es ist keine ständige Verbindung mit einem Server erforderlich, damit die Anwendung funktioniert. Wie bei Blazor Server können wir clientseitige Seiten mit Razor Components erstellen. Das .NET Code wird innerhalb des Kontexts von Webassembly ausgeführt.