Lesedauer 2 Minuten

Normalerweise laufen C# Blazor MAUI Desktop Apps weder unter Linux noch ChromeOS. Dank WASM und NeutralinoJS ist es doch möglich. Dieses Opensource-Projekt zeigt wie es funktioniert.

C# Blazor Desktop Apps unter Linux und chromeOS ausführen

Neutralino macht C# Blazor Desktop Apps unter Linux und chromeOS möglich

NeutralinoJS ist ein schlankes App-Framework das HTML-Inhalte in einer nativen Webview anzeigt, ähnlich wie Tauri oder Electron. Da WASM Code zu HTML gerendert wird, kann dieser ebenfalls sehr einfach in NeutralinoJS integriert werden.  Das Endprodukt ist eine App mit folgenden Features:

  • Der C# WASM Code wird komplett in der NeutralinoJS Webview ausgeführt.
  • In C# geschriebene Lösungen laufen somit auch unter Linux und chromeOS, was mit nativen Blazor MAUI Apps nicht möglich ist.
  • Dank Blazor’s JavaScript InterOP kann aus der WASM Sandbox heraus uneingeschränkt auf alle System-Resourcen zugegriffen werden.
  • Es können alle Neutralino Extensions, wie Python, GoLang, Bun etc. verwendet werden.
  • Über die Neutralino CURL Extension kann die Blazor WASM z.B. HTTPS-Verbindungen mit selbst-signierten Zertifikaten nutzen.
  • Kompaktes Deployment: Neutralino produziert nur 2 Dateien: 1 executable File und 1 File mit allen Resourcen.
  • Low Dependencies: Die Neutralino-App hat unter Linux und chromeOs nur 1 Dependency: libwebkit2gtk.
  • Build on any Platform: Es wird kein Linux- oder chromeOS-System benötigt, um Lösungen für diese Plattformen zu bauen.

Mit Blazor WASM App auf Systemresourcen zugreifen.

Neutralino API: Trotz Blazor WASM Sandbox alle System-Resourcen nutzen

Nur 2 Zeilen, die zur Blazor index.html hinzugefügt werden, machen die C++ Neutralino-API für JavaScript zugänglich. Von C# aus können dann JavaScript-Funktionen mithilfe von Blazor’s JS InterOP aufgerufen werden. Anders herum können C# Funktionen auch aus JavaScript aufgerufen werden, was die Integration perfekt macht

Die NeutralinoJS API ist  somit das Bindeglied zwischen der abgesicherten WASM Sandbox, dem Neutralino C++ Subsystem und  den Resourcen des Betriebsystems. Der Zugriff über JS InterOP gestaltet sich dabei extrem einfach.

Dieser Code ruft z.B. aus C# heraus über die API einen nativen OS-Dialog auf:

Mit dieser Technik ist es möglich, Desktop Apps sehr schnell zu entwickeln und den Markt für C# Blazor Desktop-Lösungen elegant um die Plattformen Linux und chromeOS  zu erweitern.

Die so erzeugten  Blazor-Neutralino Hybrid Apps sind  auf diesen Plattformen lauffähig:

Betriebsystem Lauffähig ab
chromeOS Alle 64 Bit-Systeme mit Intel oder ARM CPU und Linux Subsystem mit gtk-webkit2 4.1
Linux Alle 64 Bit-Distros mit Intel oder ARM CPU und gtk-webkit2 4.1
macOS macOS 12 (Monterey)
Apps < macOS 14 (Ventura) benötigen den Whitescreen Patch.
Windows Windows 10 Build 1809

 

Demo & Sourcecode zu Blazor Desktop Apps unter Linux und chromeOS (GitHub)

Mehr Beiträge zu Blazor lesen

 

 

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!