Lesedauer 5 Minuten

Avalonia UI ist ein leistungsfähiges, platt­formübergreifendes UI-Framework für .NET, das Entwicklern ermöglicht, Desktop-Anwendungen mit einer einzigen Codebasis für Windows, macOS und Linux zu erstellen. Als Open-Source-Alternative zu WPF unterstützt Avalonia XAML-basierte Benutzeroberflächen und verfolgt das Ziel, UI-Entwicklung über klassische Windows-Anwendungen hinaus auf mobile Geräte und Web zu erweitern.

Was ist Avalonia UI?

Avalonia basiert auf C# und XAML und orientiert sich am bewährten MVVM-Architekturpattern. Das Framework verwendet eine eigene, auf SkiaSharp basierende Rendering-Engine, die plattformunabhängig arbeitet und ein pixel-genaues, einheitliches UI-Design auf allen Betriebssystemen gewährleistet. Dadurch ist Avalonia unabhängig von nativen UI-Toolkits und ermöglicht eine konsistente Darstellung auf unterschiedlichen Plattformen.

Avalonia UI: Moderne Desktop Apps programmieren.

Plattformübergreifende Entwicklung mit Avalonia

Ähnlich wie mit Blazor MAUI können Entwickler mit Avalonia Desktop-Anwendungen erstellen, die unter Windows, macOS und Linux laufen – ohne Code-Duplikation.

Die Unterstützung für mobile Plattformen wie iOS und Android ist aktuell noch im Preview-Status, während experimentelle Ansätze für WebAssembly (Web) mit Avalonia.Web erste Schritte in Richtung Webanwendungen ermöglichen.

Avalonia UI: Die Vorteile

  • Plattformübergreifende Entwicklung mit einer einzigen Codebasis
  • Cross-Platform Build: Unter macOS können z.B. Windows- und Linux-Apps komplett kompiliert werden.
  • XAML-basierte UI-Definition, ideal für für Entwickler mit WPF-Erfahrung
  • Flexible MVVM-Unterstützung – optional, auch klassische Code-Behind-Ansätze möglich
  • XAML Hot Reload für schnelle UI-Iteration ohne Neustart.
  • Eigene SkiaSharp-Rendering-Engine für konsistentes Look-and-Feel.
  • Über Themes lassen sich alle GUI-Elemente einheitlich verändern.
  • Modularer Aufbau mit umfangreichen Community-Bibliotheken wie ReactiveUI, FluentAvalonia und Avalonia.FuncUI.
  • Gute Integration in beliebte IDEs wie JetBrains Rider (mit Avalonia-Plugin) und Visual Studio.
  • Unterstützung von modernen Konzepten wie Dependency Injection, Internationalisierung und Datenbindung.

Nachteile und Herausforderungen von Avalonia

  • XAML erhöht die Lernkurve für Entwickler ohne WPF-Background.
  • MVVM erhöht ebenfalls die Lernkurve und kann zu over-engineered Code führen.
    Es sollte daher sparsam eingesetzt werden.
  • Mobile Support noch in Entwicklung – derzeit nicht für produktive Apps empfohlen.
  • UI-Komponenten sind nicht nativ gerendert, was zu einem einheitlichen, aber weniger nativen Look führt.
  • Design-Tools sind noch weniger ausgereift als bei etablierten Frameworks wie WPF oder MAUI.
    Ein Visual Drag & Drop Designer ist in Entwicklung.
  • Anzahl und Vielfalt von Drittanbieter-UI-Komponenten sind noch begrenzt.
  • Die Community ist noch relativ klein aber stark wachsend.
  • maOS AppBundles werden noch nicht automatisch erstellt.

Avalonia UI: Typische Einsatzgebiete

Avalonia eignet sich hervorragend für die Entwicklung von platt­formübergreifenden Desktop-Anwendungen, insbesondere:

  • Desktop-Anwendungen, die auf mehreren Betriebssystemen laufen müssen.
  • Grafische Frontends für Kommandozeilen-Programme.
  • Administrative und Management-Oberflächen.
  • Prototypen und experimentelle UI-Konzepte.

Avalonia UI: Crossplattform Desktop Apps programmieren.

Einfache Beispielanwendung in Avalonia

Eine typische Avalonia UI besteht aus einer XAML-Datei, in der Fenster, Buttons, Textfelder und andere Steuerelemente definiert sind. Die dazugehörige C#-Datei behandelt die Logik, zum Beispiel Button-Klicks. So lässt sich in wenigen Zeilen eine interaktive Desktop-GUI erstellen.

Hier ist ein einfaches Avalonia UI Beispiel mit XAML und C#, das zeigt, wie man ein Fenster mit einem Textfeld, einem Button und einem Textblock erstellt. Beim Klick auf den Button wird der Text aus dem Textfeld im Textblock angezeigt.

XAML-Datei: MainWindow.axaml

C# Code-behind: MainWindow.axaml.cs

Erläuterung

  • TextBox: Eingabefeld für den Nutzer
  • Button: Löst beim Klick die Methode OnButtonClick aus
  • TextBlock: Zeigt den eingegebenen Text an

Avalonia in der Praxis

Bekannte Anwender von Avalonia sind unter anderem JetBrains, die das Framework in Teilen ihrer IDE Rider einsetzen. Zudem ist JetBrains selbst in das Projekt investiert. Viele Community- und Open-Source-Projekte nutzen bereits Avalonia als Basis für moderne .NET-Desktop-Anwendungen.

Avalonia UI: Schnelle Grafik dank Skia.

Avalonia: Welche Plattformen werden unterstützt?

Avalonia unterstützt die folgenden Plattformen:

Betriebsystem Lauffähig ab
Android API 21 (Android 5)
Erfordert .NET7. Der Android Support ist experimentell.
iOS iOS 13
Erfordert .NET7. Der iOS Support ist experimentell.
macOS macOS 10.14
Windows Windows 8.1
Linux Debian >=9, Ubuntu >= 16.04, Fedora >= 30 und Weitere, die glibc 2.17 unterstützen.

Avalonia & .NET10 ?

Avalonia basiert auf .NET8, läuft aber unter .NET9 und .NET10. Für einige Pakete muss jedoch in der nuget.config das packageSourceMapping ausgeschaltet werden, da sonst eine Installation unter .NET > 8 abgelehnt wird:

Warum .NET8 ?

.NET9 ist kein LTS-Release (Long Term Support) und es soll zu vielen älteren .NET Packages kompatibel sein.

Was kostet Avalonia?

Avalonia ist im Prinzip kostenlos. Nur bestimmte Premium-Komponenten erfordern eine perpetual License für Avalonia Accelerate. Zum Stand dieses Blog-Beitrags betragen die Kosten aktuell 240 EUR pro Jahr. Setzt man eine Zahlung aus, erhält man lediglich keine Updates mehr, die Komponenten funktionieren jedoch weiterhin.

Avalonia Accelerate im Detail

Momentan beinhaltet Avalonia Accelerate folgende Komponenten:

Avalonia Accellerate

Zur Erklärung:

  • VS Extension+ ist eine VisualStudio Extension mit XAML Preview, so wir man sie von Rider kennt.
    In Rider ist diese Funktion kostenlos enthalten.
  • DevTools sind Analysewerkzeuge, ähnlich wie man sie von der Google Chrome Dev Console her kennt.
  • Parcel erlaubt das automatisierte Bauen von App Packages und Installer.
  • TreeDatagrid erlaubt die Anzeige verschachtelter Datensätze in einem DataGrid.
    Ein einfaches DataGrid ist in der kostenlosen Version von Avalonia bereits enthalten.
  • Reframe ist ein visueller XAML-Builder der mit Spannung erwartet wird.
  • HotReload soll laufende Apps bei Code-Änderung automatisch neu laden, so wie man es z.B. von Blazor Web Apps kennt.

Die Docs zu allen Avalonia Accelerate Komponenten findest Du hier.

Was ist Avalonia XPF?

Avalonia XPF erlaubt das Konvertieren von WPF-UIs nach Avalonia. So können alte WPF-Anwendungen mit relativ wenig Aufwand modernisiert werden. Hier startet das Pricing ab 9.500 EUR pro App.

Fazit:

Avalonia UI ist eine moderne, performante und flexible Alternative zu WPF für Entwickler, die plattformübergreifende Desktop-Apps mit .NET und XAML bauen möchten. Mit aktiver Community und kontinuierlicher Weiterentwicklung bietet es eine vielversprechende Grundlage für Windows-, macOS- und Linux-Anwendungen – und in Zukunft auch für Mobile und Web. Avalonia ist kostenlos, die Entwickler können über Avalonia Accelerate zu einem fairen Preis unterstützt werden. Im Gegenzug erhält man Zugriff auf Premium Komponenten.

Hat Dir der Beitrag gefallen?

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