Blazor-Entscheidungshilfe aus der Praxis

Blazor: Server, WebAssembly oder Hybrid?

Blazor ist hilfreich, wenn klar ist, welche Arbeit auf dem Server bleibt, welche Arbeit in den Browser wandert und welche URLs als echte HTML-Links existieren müssen.

Dieser Leitfaden lässt die Hochglanzversion weg. Er konzentriert sich auf die Punkte, die Teams später oft überraschen: Serverspeicher, Live-Verbindungen, Latenz, Payload-Größe, SEO und mehrsprachiges Routing.

Vor der Render-Modus-Entscheidung

Was Blazor eigentlich ist

Blazor ist Microsofts Komponenten-Framework für .NET-Webanwendungen. Sie bauen die Oberfläche aus Razor-Komponenten, schreiben die meiste Interaktionslogik in C# und lassen ASP.NET Core diese Komponenten auf dem Server, in WebAssembly oder in einer nativen App-Shell rendern.

Blazor ist aus älteren ASP.NET-Ideen entstanden. Web Forms wollte das Web hinter Server-Steuerelementen verstecken. MVC und Razor Pages machten Request-Response-HTML klarer. Blazor ergänzt wiederverwendbare interaktive Komponenten, macht MVC oder Razor Pages für einfache Inhaltsseiten und Formulare aber nicht überflüssig.

Vor Blazor

Web Forms, MVC und Razor Pages lösten unterschiedliche Probleme

Web Forms war produktiv, aber schwergewichtig und zustandsbehaftet. MVC und Razor Pages brachten klareres HTML und einfacheres Request-Handling. Sie passen weiterhin gut, wenn eine Seite hauptsächlich Daten liest, ein Formular abschickt und HTML zurückgibt.

Was Blazor ergänzt

Komponenten halten UI-Logik nah am Markup

Eine Razor-Komponente kann Markup, Parameter, Ereignisse, Validierung, injizierte Services und lokalen Zustand enthalten. Das ist nützlich für Dashboards, Editoren, Assistenten, Grids und Tools, bei denen sich die Seite ohne vollständiges Neuladen verändert.

Was danach kam

Modernes .NET erlaubt gemischte Render-Modi

Neuere Blazor-Apps können statisch servergerendertes HTML mit interaktiven Komponenten kombinieren. Das ist wichtig, weil eine Seite indexierbaren Inhalt brauchen kann, während ein anderer Bereich eine Live-Komponente braucht.

Hier starten

Die kurze, nützliche Version

Blazor ist nicht eine einzige Architektur. Es ist ein Komponentenmodell mit mehreren Render-Modi. Die richtige Wahl hängt weniger von der Syntax ab und mehr davon, wo Zustand, Latenz, Speicher und indexierbare Links liegen.

Server

Blazor Server ist zustandsbehaftet

Der erste Ladevorgang kann schnell wirken, aber der Server hält Live-Circuits. Planen Sie Speicher, Reconnect-Verhalten und Scale-out, bevor der Traffic wächst.

Browser

WebAssembly zahlt am Anfang

Es entfernt Live-Circuits auf dem Server, aber beim ersten Besuch werden Runtime und App geladen. Cache, Trimming und Prerendering sind wichtig.

Nativ

Hybrid ist eine Produktentscheidung

Nutzen Sie Hybrid, wenn die App wirklich eine Desktop- oder Mobile-Shell braucht. Für öffentliche Inhalte sind Web-Rendering und echte URLs besser.

Blazor Server

Blazor Server hält Arbeit zwischen Klicks aktiv

Blazor Server ist keine normale zustandslose Request-Response-Seite. Ein verbundener Browser-Tab bekommt einen Circuit. Der Server hält Komponentenstatus und scoped Services für diesen Circuit, solange der Benutzer verbunden ist, und oft noch kurz für ein Reconnect-Fenster nach einem Verbindungsabbruch.

Speicher wächst mit aktiven Circuits

Jeder verbundene Tab hat einen Circuit. Komponentenstatus, scoped Services, Validierungsstatus und ausstehende UI-Arbeit können im Speicher bleiben, bis der Circuit endet. Lasttests müssen aktive Benutzer zählen, nicht nur Requests pro Sekunde.

Latenz wird Teil der UI

Ein Button-Klick, ein Eingabeereignis oder eine Grid-Interaktion kann zum Server und zurück laufen. Hosten Sie nah bei den Benutzern und vermeiden Sie sehr gesprächige Komponenten, wenn die Zielgruppe über Regionen verteilt ist.

Scale-out braucht einen Plan

Mehrere App-Instanzen brauchen oft Sticky Sessions, eine SignalR-Backplane, Azure SignalR Service oder ein sorgfältiges Zustandsdesign. Sonst können Reconnects und Live-Circuits auf der falschen Instanz landen.

Passt gut: kontrollierte Benutzerzahl

Blazor Server ist am stärksten bei authentifizierten Tools, Admin-Oberflächen, Dashboards und internen Apps, bei denen Benutzerzahl, Latenz und Hosting-Kapazität bekannt sind.

Blazor WebAssembly

WebAssembly verschiebt die Kosten in den ersten Ladevorgang

Blazor WebAssembly entfernt Server-Circuits, aber nicht die Kosten. Der Browser muss die .NET-Runtime, Assemblies, Lokalisierungsressourcen und App-Assets laden, bevor sich die Anwendung schnell anfühlt. Wiederholte Besuche können gut sein, weil Caching hilft. Der erste Besuch braucht Sorgfalt.

Der erste Ladevorgang ist der Preis

Der Browser lädt die .NET-Runtime, App-Assemblies, Ressourcen und statische Assets. Trimming hilft. Ahead-of-Time-Kompilierung kann CPU-lastige Arbeit verbessern, erhöht aber oft die Downloadgröße.

Secrets dürfen nicht im Client liegen

Eine WebAssembly-App läuft im Browser des Benutzers. Behandeln Sie sie wie jedes öffentliche Frontend: Secrets bleiben auf dem Server, APIs werden geschützt, und Client-Code gilt als einsehbar.

SEO braucht gerenderte Inhalte

Bei öffentlichen Artikeln, Produktseiten und Landingpages sollten Sie sich nicht auf eine leere Shell verlassen, die erst nach dem Start von WebAssembly nützlich wird. Nutzen Sie serverseitiges Rendering, Prerendering, statisches Rendering oder einen separaten Content-Pfad.

Passt gut: offline oder viel Arbeit im Client

WebAssembly funktioniert gut, wenn Benutzer häufig zurückkehren, Offline-Verhalten brauchen oder viel Arbeit im Client erledigen, bei der ein Server-Roundtrip schlechter wäre.

Hybrid und WebView

Hybrid ist für Apps, nicht für öffentliche Landingpages

Blazor Hybrid ist sinnvoll, wenn ein .NET-Team Komponenten in einer Desktop- oder Mobile-App wiederverwenden möchte. Es läuft in einer nativen Shell über eine WebView und ist dadurch nah an lokalen Dateien, Geräte-APIs und Unternehmensbereitstellung. Es ist keine Abkürzung für SEO-orientierte Websites.

  • Nutzen Sie Hybrid, wenn Sie Zugriff auf lokale Dateien, Geräte-APIs, Desktop-Bereitstellung oder Mobile-Packaging brauchen.
  • Wählen Sie Hybrid nicht nur, um Web-Komponenten wiederzuverwenden. Die native Shell bringt Updates, Store-Prozesse, Signierung und Support-Aufwand mit.
  • Für SEO und teilbare öffentliche URLs ist Hybrid meist die falsche Oberfläche.

Entscheidungshilfe

Wählen Sie nach dem Engpass, den Sie akzeptieren

Jeder Render-Modus verlagert Druck an eine andere Stelle. Wählen Sie den Druck, den Sie messen, hosten und dem Team erklären können.

Server wählen

Wenn erster Ladevorgang und .NET-Backend-Integration am wichtigsten sind

Wählen Sie Blazor Server für kontrollierte authentifizierte Apps, bei denen Serverspeicher, Live-Verbindungen und regionale Latenz akzeptable Betriebskosten sind.

WebAssembly wählen

Wenn Client-Arbeit und Offline-Verhalten am wichtigsten sind

Wählen Sie WebAssembly, wenn wiederholte Besuche, Caching, Offline-Nutzung oder lokale CPU-Arbeit wichtiger sind als der kleinste erste Ladevorgang.

Hybrid wählen

Wenn das Produkt wirklich eine native App ist

Wählen Sie Hybrid, wenn die Anwendung auf Desktop oder Mobile gehört und lokale Integration wichtiger ist als öffentliche Web-Reichweite.

MVC oder Razor Pages wählen

Wenn die Seite vor allem aus Dokumenten und Formularen besteht

Klassisches ASP.NET Core MVC oder Razor Pages sind oft einfacher für contentlastige Websites, öffentliche Dokumentation und Formulare mit wenig Interaktivität.

Häufige Fragen

Warum kann Blazor Server mehr Speicher brauchen als MVC?

MVC kann einen Request abschließen und den meisten Request-Zustand freigeben. Blazor Server hält für jeden verbundenen Browser-Tab einen Circuit, dadurch können Komponentenstatus und scoped Services zwischen Klicks aktiv bleiben.

Kann ich Blazor Server auf mehreren App-Instanzen betreiben?

Ja, aber planen Sie es bewusst. Live-Circuits und SignalR-Verbindungen brauchen stabiles Routing, eine Backplane oder einen verwalteten SignalR-Dienst sowie Anwendungszustand, der Reconnects korrekt übersteht.

Kann Blazor WebAssembly SEO-freundlich sein?

Ja, aber nicht mit einer leeren Shell und der Hoffnung, dass der Crawler wartet. Öffentliche Seiten brauchen gerendertes HTML, Metadaten, Canonical-Links und strukturierte Daten vor oder während der ersten Antwort.

Wie sollten mehrsprachige Blazor-Links gebaut werden?

Nutzen Sie zentrale Routendefinitionen und rendern Sie echte Links für jede Sprache und Region. Halten Sie sichtbare Links, Canonical-URLs und hreflang-Daten konsistent, damit Benutzer und Crawler dieselbe Sprachstruktur sehen.