1 Punkte von GN⁺ 2025-11-13 | 1 Kommentare | Auf WhatsApp teilen
  • Durch ein Avalonia-basiertes Backend können .NET-MAUI-Anwendungen nun auf Linux-Desktops und im Browser (WebAssembly) ausgeführt werden
  • Bei Beibehaltung der bestehenden MAUI-Codebasis wird die Rendering-Schicht durch Avalonia ersetzt, wodurch gleichzeitig bessere Performance und eine Erweiterung auf zusätzliche Plattformen erreicht werden
  • Läuft mit derselben Rendering-Engine auf Desktop-Linux wie Ubuntu, Debian und Fedora sowie auf Embedded Linux und in WebAssembly-Umgebungen
  • Auch unter Windows und macOS wurden mehr als doppelte Performancegewinne beobachtet, bei gleichzeitig konsistenter UI ohne plattformspezifische Unterschiede
  • Ein Projekt, das MAUI-Entwicklern Linux- und Web-Unterstützung sowie einen planbaren Entwicklungszyklus bietet und zugleich die Grundlage für den Ausbau des Avalonia-Ökosystems schafft

Überblick über das Avalonia-MAUI-Backend

  • Das Avalonia-MAUI-Backend ersetzt bei unveränderter MAUI-Codebasis die Rendering-Schicht durch Avalonia
    • Bestehende MAUI-Apps lassen sich damit auf zusätzliche Plattformen wie Linux und Browser erweitern
    • Verbessert die Desktop-Performance und sorgt für plattformübergreifende Konsistenz
  • Die reale Demo ist eine WebAssembly-basierte MAUI-App, die ohne Plug-ins im Browser ausgeführt werden kann
    • Es handelt sich noch um einen frühen Build, der aber belegt, dass MAUI auf den wichtigsten Desktop-Betriebssystemen und im Browser laufen kann

Wichtige Plattformunterstützung

  • Unterstützung für Desktop-Linux
    • Läuft unter Ubuntu, Debian, Fedora und anderen Distributionen als vollwertige Desktop-App
    • Mit dem Avalonia-Renderer wird die Qualität eines performanten Desktop-Apps-Niveaus erreicht
  • Unterstützung für Embedded Linux
    • Läuft auf Embedded-Geräten wie Raspberry-Pi-Panels oder industriellen HMIs mit demselben Backend wie Avalonia
  • WebAssembly-Unterstützung
    • Ermöglicht MAUI-Apps, die im Browser ohne native Abhängigkeiten laufen
    • Soll sich künftig bis zur Browser-Bereitstellung auf produktionsnahem Niveau weiterentwickeln
  • Unterstützung für Windows und macOS
    • Integriert sich in Avalonias ausgereifte Desktop-Rendering-Architektur
    • Unter macOS wurde mehr als die doppelte Performance im Vergleich zu Mac Catalyst beobachtet

Entwicklungseffizienz und Konsistenz

  • Das Avalonia-Team entwickelt nur noch für eine einzige Plattform (Avalonia)
    • Separate Implementierungen für iOS, Android, Windows, macOS, Linux und WebAssembly sind nicht nötig
    • Weniger plattformspezifische Bugs und Rendering-Unterschiede
  • Da dieselbe Rendering-Engine verwendet wird, ist die UI-Darstellung auf allen Plattformen identisch
    • Neue Funktionen oder Bugfixes werden sofort auf alle Plattformen übertragen
    • Kürzere Entwicklungszyklen und besser planbare Qualität

Warum Avalonia ein MAUI-Backend entwickelt

  • Vorrangig geht es um die Unterstützung von .NET-Client-Entwicklern, damit MAUI-Nutzer Linux-/Browser-Support und bessere Performance erhalten
  • Durch dieses Projekt lernt Avalonia mehr über Mobile-Tauglichkeit, API-Probleme und Verbesserungen beim Tooling
  • Wenn MAUI-Entwickler den Avalonia-Renderer und dessen Funktionen kennenlernen, wird ein Zufluss ins Ökosystem erwartet
  • Ziel ist nicht, MAUI zu ersetzen, sondern bestehenden MAUI-Entwicklern mehr Auswahlmöglichkeiten zu geben

Bedeutung für MAUI-Entwickler

  • MAUI-Entwickler erhalten die seit Langem geforderte Linux-Unterstützung und ein konsistentes, zeichnungsbasiertes UI-Modell
  • Avalonia bietet unter anderem
    • hardwarebeschleunigtes Rendering
    • ein konsistentes Layout- und Stylesystem
    • Animationen mit hohen Bildwiederholraten
    • benutzerdefiniertes Rendering und visuelle Effekte
    • breite Plattformabdeckung
    • eine Plattform mit kontinuierlichen Investitionen und Support
  • Wird bereits in kommerziellen Umgebungen von Unternehmen wie Unity, JetBrains und Schneider Electric eingesetzt
  • Bei unverändertem bestehendem MAUI-Code lassen sich Linux-, Web- und Desktop-Performanceverbesserungen gleichzeitig erreichen

Performance und Rendering der nächsten Generation

  • Ein GPU-freundlicher, zeichnungsbasierter UI-Stack sorgt für höhere Leistung als native Toolkits
  • Gemeinsam mit dem Google-Flutter-Team wird der Impeller-GPU-Renderer nach .NET gebracht
    • Mit dieser Technologie profitiert auch das MAUI-Backend von höherer Rendering-Geschwindigkeit, geringerem Akkuverbrauch und flüssigeren Animationen

Nächste Schritte

  • In Zusammenarbeit mit MAUI-Ingenieuren soll die Qualität des Backends weiter verbessert werden
  • Sobald Linux- und Browser-Unterstützung einen reifen Stand erreicht haben, könnte MAUI zu einem echten multiplattformfähigen UI-Framework werden
  • Nach der Stabilisierung ist eine Veröffentlichung als Open Source unter MIT-Lizenz geplant
  • Entwicklungsfortschritte, Benchmarks und Previews sollen fortlaufend geteilt werden

1 Kommentare

 
GN⁺ 2025-11-13
Hacker-News-Kommentare
  • Es ist wirklich interessant, so etwas ins Web zu bringen
    Aber wenn man die Demo ausprobiert, fühlt es sich nicht wie Web an
    Man kann nicht mit Ctrl+F suchen, keinen Text markieren und keine Linkadresse kopieren
    Auf Mobilgeräten kann man Bilder auch nicht per langem Drücken teilen, und Screenreader funktionieren ebenfalls nicht
    All diese Punkte zusammen vermitteln den Eindruck: „Das ist kein echtes Web“
    Es wirkt wie abgekapselter Rich Content, eine Insel im Browser, ähnlich wie Java-Applets Ende der 90er oder Flash bzw. Silverlight in den frühen 2000ern

    • Das ist überhaupt kein nebensächliches Problem
      Wenn solche Funktionen fehlen, kann man es per Definition nicht als „echtes Web“ bezeichnen
      Am Ende führt das zu der philosophischen Frage, was das Web eigentlich ist
      Ob es nur ein Medium zur Auslieferung von Inhalten ist oder etwas Größeres
      Viele sind heute das App-ifizieren (app-lification) des Webs leid und vermissen das frühere offene Web
    • Wenn man keine Standard-Webfunktionen nutzt, wird Barrierefreiheit zum Albtraum
      Ich habe die Demo mit einem Screenreader ausprobiert, und es hat überhaupt nicht funktioniert
    • MAUI ist ursprünglich nicht fürs Web gedacht
      Das ist auch nicht die Richtung, die Microsoft beabsichtigt hat
      Avalonia unterstützt WASM, also läuft MAUI darauf, wenn man es darüberlegt
      Aber das ist letztlich einfach ein Desktop-GUI-Toolkit, das per WASM gerendert wird
      Das ist zwar cool, fühlt sich aber eher wie eine moderne Version von Silverlight an als wie eine Web-App
      Trotzdem ist es ein großer Vorteil, dass man nun Linux-Desktops als Zielplattform ansprechen kann
      Viele werden vermutlich auch einheitlich gerenderte Oberflächen wie bei Avalonia bevorzugen statt der nativen Controls jeder Plattform, die MAUI sonst verwendet
    • Als .NET-Entwickler mit 20 Jahren Erfahrung verstehe ich nicht, warum man so etwas gerade jetzt versucht
      Mit modernem Browser-CSS/JS/HTML ist das meiste ohnehin möglich
      Ich mag XAML, aber JSX ist ein ähnliches Konzept und wird in echtes HTML kompiliert
      Dasselbe habe ich schon zu Silverlight-Zeiten gedacht — ich verstehe nicht, warum man immer wieder versucht, Flash neu zu bauen
      Unity-Web-Builds sind bereits das bessere „C#-Flash“
    • Als ich gesehen habe, dass Ctrl+F und Textauswahl nicht funktionieren, war mein Interesse sofort weg
      Wenn solche Grundfunktionen fehlen, ist das für mich ein Ausschlusskriterium (non-starter)
  • MAUI ohne Unterstützung für Linux-Desktops kam für mich von Anfang an nicht infrage
    Durch diese Ergänzung ist es immerhin etwas besser geworden, aber ich denke immer noch, dass man besser direkt Avalonia verwendet
    Trotzdem ist es schön, dass es diese Option nun für bestehende Projekte gibt

  • Endlich kann man unter Linux Apps mit langsamen, seltsamen Animationen und „Phone-Style-UX“ bauen, ohne auf Kotlin Multiplatform oder Electron angewiesen zu sein
    Aber der Widget-Satz besteht offenbar nur aus Buttons und Checkboxes, was enttäuschend ist
    Ich frage mich, warum Demos moderner UI-Toolkits heutzutage schlechter wirken als Demos aus Delphi-1-Zeiten

    • Eigentlich kann man Avalonia auch einfach nativ verwenden
      Es unterstützt bereits Windows/Mac/Linux/WASM
      Diese Arbeit scheint eher für Leute gedacht zu sein, die bestehende MAUI-Apps auf Linux/WASM ausweiten wollen
    • Avalonia hat zwar noch kein Wayland-Backend, aber daran wird mit hoher Priorität gearbeitet
      Den Fortschritt kann man im Avalonia-Blog verfolgen
  • Einer der Gründe, warum Leute im .NET-Ökosystem MAUI meiden, ist, dass Microsoft es selbst nicht nutzt
    Sogar Teams basiert auf Electron
    Da fragt man sich unweigerlich: „Wenn nicht einmal MS es nutzt, warum sollten wir es tun?“

    • Das hat historische Gründe
      Die Windows-Abteilung verantwortet WinUI/Win32, Office setzt auf React, und die Entwicklerabteilung betreut WPF und MAUI
      Weil jede Abteilung ihr eigenes Ding macht, sind die UI-Toolkits zersplittert
      Am Ende bekommt jedes Toolkit nur halbherzige Unterstützung
    • Viele aktuelle Desktop-Apps von MS verwenden statt Electron direkt WebView2
      Auch Teams ist im Zuge des Wechsels von Angular zu React diesen Weg gegangen
      Trotzdem stimmt es, dass MAUI nicht verwendet wird
      Man scheint eher bewährte Technologien wie Avalonia oder WinForms zu bevorzugen
      Es ist unklar, worauf MS langfristig setzen wird
      Es gibt auch Blazor, aber das ist eher für interne Apps als als React-Ersatz gedacht
      Nebenbei gefragt: Es ist auch zweifelhaft, wie stark Google Flutter in den eigenen Apps nutzt
    • Dass Teams auf Electron basiert, liegt einfach daran, dass es vor MAUI erschienen ist
      Teams kam 2017 heraus, MAUI wurde 2022 vorgestellt
      Auch der Umstieg auf React erfolgte vor MAUI
      Dass MS MAUI trotzdem nicht ausreichend dogfooded, ist allerdings besorgniserregend
      Zuletzt gab es auch Meldungen über Stellenabbau rund um MAUI, und das interne Vertrauen wirkt nicht besonders stark
      Man muss außerdem berücksichtigen, dass Flutter fünf Jahre Vorsprung hatte
      Dennoch bleibt der Eindruck, dass MS sich MAUI nicht wirklich verschrieben hat
    • Ich würde niemals ein .NET-Frontend bauen
      Es endet immer mit eingestelltem Support
      Standard-Webtechnologien zu verwenden, ist besser für die mentale Gesundheit
    • Was MS heutzutage selbst nutzt, ist als Referenz ohnehin nur begrenzt aussagekräftig
      (Das soll MAUI nicht verteidigen)
  • Falls es missverständlich war, hier noch einmal zur Einordnung
    .NET MAUI ist ursprünglich ein Framework, mit dem man mit einer einzigen Codebasis Apps für Android, iOS, macOS und Windows erstellt
    Neu hinzugekommen sind diesmal Linux und der Browser
    Ich habe auf dem Mac eine Hello-World-App gebaut, und das Setup war ziemlich kompliziert
    Trotzdem war es schön, nach langer Zeit wieder einmal XAML zu verwenden

    • Ist das ähnlich wie Flutter?
  • Ich habe für Entwicklungssoftware nach einer plattformübergreifenden GUI gesucht
    Zuerst habe ich MAUI ausprobiert, aber schon die Installation war ein Albtraum
    Nicht einmal grundlegende UI-Funktionen wurden unterstützt
    Danach habe ich AvaloniaUI ausprobiert, und die Erfahrung war genau das Gegenteil
    Die Installation war einfach, und mit ein bisschen Recherche ließ sich sogar ein transparentes rahmenloses Fenster leicht umsetzen
    Die Visual-Studio-Integration ist etwas enttäuschend, aber insgesamt ist es MAUI weit voraus

  • Das wirkt wie eine Wiederauferstehung von Silverlight
    Referenz: Microsoft Silverlight Wiki

  • In Chrome funktioniert die Demo fast gar nicht
    Das Schiebepuzzle reagiert träge, und der Zurück-Pfeil friert ein
    Nach einem Neuladen landet man wieder auf dem Startbildschirm
    Auch Zeit- und Datumsauswahl sind schlecht ausgerichtet und umständlich zu bedienen
    Insgesamt ist das ziemlich miserabel

    • Wenn man während des Mischens auf Zurück drückt, friert die ganze App ein
      Zugehöriger Thread
  • Ich habe im Abschnitt „Launch MAUI in your browser“ die Demo „Word puzzle“ gestartet
    Wenn man auf „Randomize“ klickt, werden die Kacheln gemischt, aber wenn man dann mit dem Pfeil oben zurückgeht, friert der Bildschirm komplett ein
    Das Puzzle bleibt im Hintergrund sichtbar, das Menü liegt darüber, und nichts lässt sich mehr anklicken
    Das passiert in mehreren Browsern gleichermaßen
    Demo-Link

    • Wenn man wartet, bis das Mischen fertig ist, kann man zwar zurückgehen, aber die Mausinteraktion fühlt sich seltsam an
      Klick-und-Zieh ist unzuverlässig, und visuelles Feedback gibt es keines
      Die Kacheln bewegen sich nicht, sondern teleportieren sich einfach
      Ein einfacher Klick oder eine animierte Bewegung wäre vermutlich besser gewesen
      Ein anderer Nutzer berichtet dasselbe Problem
    • Ich habe den Rechner ausprobiert, und 7/9 ergibt 1
      Beim RPN-Rechner kann man nicht einmal Zahlen auf den Stack legen
  • Wir brauchen wirklich dringend ein UI-Toolkit, mit dem man echte CAD-Programme bauen kann
    Ich habe Apps, die wie WebViews aussehen, inzwischen satt

    • Sehe ich ganz genauso
      Ich hasse die Web-UI-Trends der letzten zehn Jahre
      Alles wird größer, auf Touch ausgelegt, mit viel Leerraum und unnötigen Animationen
      Ich möchte zurück zu älteren Oberflächen, bei denen Informationsdichte und Bedienbarkeit im Mittelpunkt stehen
      Genau das gefällt mir an japanischen Websites
    • Eigentlich kann man auch so etwas wie CAD mit jedem Toolkit bauen, solange es eine GPU-Renderfläche gibt
      Im Avalonia-Demo-Reel sieht man, dass sich mit dem .NET-GUI-Stack auch Dinge wie Video-Editoren oder Kartenanalyse-Tools bauen lassen
      Avalonia Showcase
    • Mein Maßstab für ein GUI-Toolkit ist, ob man damit Software auf Photoshop-Niveau bauen kann
      Wenn nur Wetter- oder To-do-Apps drin sind, ist das letztlich bedeutungslos
    • Wie sieht es mit QT aus?
      WPF und WinForms gibt es ja immer noch