Blazor Static Server Side Rendering (Static SSR)

Eintrag zuletzt aktualisiert am: 19.02.2025

Blazor Static Server Side Rendering ist ein Webframework innerhalb von ASP.NET Core, das es seit .NET 8.0 (November 2023) gibt.

ASP.NET Core Model View Controller, ASP.NET Core Razor Pages und Blazor Static Server Side Rendering sind direkt vergleichbar, denn sie erzeugen eine Multi-Page-Web-Application (MPA) mit vollständigen Seitenrundgängen. Der Programmcode (nur C# ist möglich im modernen .NET, im klassischen .NET Framework mit ASP.NET MVC war auch noch Visual Basic .NET als Alternative vorhanden) läuft auf dem Webserver. Ein HTTP-Request geht ein, auf dem Server wird eine Klasse instanziiert, die HTML und CSS produziert. Bei ASP.NET Core MVC machen diesen Job ein Controller und ein View. Bei Razor Pages spricht Microsoft von Page Model und Razor Page. Bei Blazor ist es eine Razor Component.

Diese drei Architekturen sind sich sehr ähnlich. Die Wahl fällt hier aber leicht, denn Blazor Static Server Side Rendering ist das neuste der drei Modelle mit der fortschrittlichsten Template-Syntax, einem echten Komponentenmodell, Streaming von HTML-Inhalte aus asynchronen Methoden in der gleichen HTTP-Antwort und Enhanced Navigation, die in einigen Fällen das Flackern der Seite im Browser verhindert.

In Blazor Static Server Side Rendering gibt es einige eingebaute Razor Components (z.B. <InputNumber> statt <input type="number">) auf ähnlichem Abstraktionslevel wie in ASP.NET Core MVC und mit Validierungsoption. Hinzukommt ein Datentabellensteuerelement (QuickGrid), das jedoch von Hause aus keinerlei Inline-Eingaben erlaubt und auch andere Features wie Sortieren und Blättern sind nur möglich, wenn man eine der anderen, interaktiven Blazor-Varianten (Blazor Server, Blazor WebAssembly, Blazor Auto-Rendering) verwendet.

Microsoft bietet unter dem Namen Fluent UI Blazor Library https://www.fluentui-blazor.net eine Reihe von Steuerelementen für Blazor im Fluent Design an (z.B. Menü, Dialog, MessageBox, Wizard, Tree View, Drag & Drop, Card, Accordion, Slider, Splitter, Rating, Autocomplete), inklusive Projektvorlagen, aber alles ohne Support und mit Einschränkungen beim statischen Blazor-Rendering. Für alle Funktionen ist auch hier eine der interaktiven Varianten von Blazor notwendig. Das in der Fluent UI Blazor Library enthaltene, auf QuickGrid basierende Fluent UI DataGrid hat ebenfalls keine eingebaute Eingabeunterstützung; Komponenten für Diagramme gibt es gar nicht.

Einen WYSIWYG-Designer sucht man wieder vergeblich, einen Live-Preview innerhalb von Visual Studio gibt es auch nicht, aber Hot Reloading existiert seit .NET 6.0. Das Deployment auf den ASP.NET Core-fähigen Webserver (ASP.NET Core muss man bei den Internet Information Services zuvor installieren!) erfolgt aus Visual Studio heraus oder mit Kommandozeilenwerkzeugen, per Dateisystem, FTP oder dem für die Internet Information Services verfügbaren Webdeploy-Verfahren. Self-Hosting ist auch ganz einfach möglich, denn beim Kompilieren entsteht eine .EXE-Datei, die den in ASP.NET Core integrierten Webserver Kestrel hochfährt.