Blazor Hybrid

Eintrag zuletzt aktualisiert am: 19.02.2025

Blazor Hybrid ist eine Variante von ASP.NET Core Blazor. Seit .NET 6.0 gibt es neben Blazor WebAssembly und Blazor Server auch Blazor Hybrid zur Erstellung hybrider Apps. Blazor Hybrid umfasst Blazor Desktop und Blazor MAUI.

Blazor Hybrid ist der Oberbegriff für drei Möglichkeiten, Blazor-Anwendungen in native Anwendungen zu integrieren

Details zu Blazor Hybrid

Bei Blazor Hybrid läuft die Blazor-Anwendung in einer nativen Anwendung direkt auf dem Betriebssystem. Microsoft unterstützt hier als Host-Frameworks Windows Forms (für Windows), Windows Presentation Foundation (für Windows) sowie .NET MAUI (für Windows, Android, iOS und macOS). Blazor in WPF und Windows Forms wird auch Blazor Desktop genannt, Blazor in .NET MAUI auch Blazor MAUI. Die Blazor-Anwendung wird mit ihrer HTML-/CSS-basierten Oberfläche im WebView-Steuerelement der jeweiligen Plattform gehostet und hat alle Zugänge zu Ressourcen, Netzwerk und APIs wie eine native Anwendung.

Bei Blazor Hybrid läuft die Blazor-Anwendung dabei nicht in einem Webserver und auch nicht einer Webassembly-VM, sondern im gleichen .NET-Prozess und sogar im gleichen Thread wie die Desktop- bzw. Mobil-Anwendung. Es gibt also keine Prozesstrennung wie bei Electron und damit auch keine Notwendigkeit des expliziten Nachrichtenverkehrs. In Blazor Desktop übernimmt die Kommunikation zwischen dem .NET Code im Host und dem WebView-Steuerelement ein "Native Interop Channel", dessen Arbeit für die Entwickler völlig unsichtbar ist. Bei Blazor Hybrid kommt also weder ein WebAPI (wie bei Blazor WebAssembly) noch SignalR (wie bei Blazor Server) zum Einsatz.

Alle .NET-APIs können in Blazor Hybrid direkt aufgerufen werden. Wie bei Blazor Server hat der Programmcode in Blazor Hybrid vollen Zugriff auf alle Ressourcen des Betriebssystems. Blazor Desktop kann also auch Datenbankmanagementsysteme direkt ansprechen – sofern das Betriebssystem dies unterstützt. Das ist in Windows möglich, auf Android und iOS aber nicht, weil es dort die passenden Treiber nicht gibt. Auf Mobilbetriebssystemen kann man nur lokale Datenbanken (meist SQLite) ansprechen.

Die verfügbaren Steuerelemente sind die gleichen wie bei Blazor Server und Blazor WebAssembly. Einen Designer gibt es für Blazor Hybrid nicht. Wenn man einen BlazorWebView in einem Windows Forms- oder WPF-Fenster einbettet, sieht man in den jeweiligen Designern nur einen leeren Kasten, der erst zur Laufzeit gefüllt wird.