Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9-16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Kernkompetenzen
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1026 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor Ort oder online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: Avalonia
Zur Stichwortliste unseres Lexikons
Was ist
Avalonia
?
Avalonia
https://avaloniaui.net/platforms
ist ein
Cross-Platform
-
GUI
-Framework für .NET, das sowohl primär WPF, aber auch der
Universal Windows Platform
(UWP) mit
Windows UI Library
(
WinUI
) nachempfunden ist. Daher auch der Name Avalonia: eine Reminiszenz an den Codenamen "Avalon", den WPF einst hatte. In Avalonia schreiben Entwicklerinnen und Entwickler die Benutzeroberfläche also in
eXtensible Application Markup Language
(
XAML
) plus C#, F# oder
Visual Basic .NET
oder rein in diesen
Programmiersprache
n ohne Tags.
Das
Open Source
-Projekt mit
MIT
-Lizenz wurde unter dem Namen "Perspex" von Steven Kirk
https://github.com/grokys
im Dezember 2013 auf GitHub begonnen
https://github.com/AvaloniaUI/Avalonia
und am 11. Mai 2015 in Avalonia umbenannt. Zwischen dem 1. April 2020 und dem 20. Februar 2024 gehört das Projekt zur
.NET Foundation
. Den erfolgten Austritt begründen das Entwicklungsteam unter
https://github.com/AvaloniaUI/Avalonia/discussions/14666.
Nunmehr bildet die estnische Firma AvaloniaUI OÜ mit Sitz in Tallinn das Dach des Projekts. Die Website ist daher
https://avaloniaui.net
. AvaloniaUI lebt von Softwareentwicklungsaufträgen mit Avalonia sowie Support und Training für Avalonia sowie dem kommerziellen
Avalonia XPF
. Laut einer Ankündigung vom 26. Juni 2025 hat ein einziger Kunde Avalonia zur Zukunftssicherung 3 Millionen als Zuschuss gewährt. Damit soll sichergestellt werden, dass Avalonia weitere Mitarbeiter einstellen kann und nicht nur an den kommerziellen Erweiterungen (dazu unten mehr) arbeiten, sondern auch die
Open Source
-Basis von Avalonia verbessert.
Das Projekt Avalonia trug bis Mai 2023 eine 0 in der Hauptversionsnummer, machte dann zum zehnjährigen Jubiläum einen Sprung von 0.10.22 auf 11.0.0
https://avaloniaui.net/blog/10-years-of-avalonia?utm_source=chatgpt.com
.
Anders als WPF und
WinUI
, die nur auf Windows funktionieren, laufen Avalonia-Oberflächen auf Windows (ab Version 8.1), macOS (ab Version 10.14),
Linux
Debian (ab Version 9), Ubuntu (ab Version 16.04) und Fedora (ab Version 30) sowie Embedded
Linux
(z.B. auf Raspberry Pi) und IoT-Geräte via Meadow (
https://www.wildernesslabs.co)
. Andere
Linux
-Distributionen sind nicht offiziell getestet, Avalonia könnte aber überall dort funktionieren, wo das moderne
.NET SDK
von Microsoft läuft. Außerdem läuft Avalonia auf
iOS
ab Version 13,
Android
ab Version 5.0 sowie im
Webbrowser
mit Hilfe von WebAssembly (das Avalonia-Team empfiehlt Chrome oder Safari: "For the best performance and support we recommend latest Chrome or Safari versions.". Warum Firefox nicht empfohlen wird, bleibt offen). Im Browser erfolgt die Darstellung mit
HTML
und
CSS
; um die Umsetzung von
XAML
kümmert sich Avalonia. Genau wie bei
Blazor WebAssembly
bringt Avalonia auch
JavaScript
-Code mit, um die Brücke zwischen WebAssembly und dem Document Object Model (DOM) zu bilden.
Im Browser live ausprobieren kann man auf Avalonia auf dem Online-Playground:
https://play.avaloniaui.net
(der läuft auch gut im Firefox). Aus der erweiterten Community heraus gibt es auch noch Avalonia für
Tizen
und
tvOS
. AvaloniaUI will zukünftig auch
Apple
s neues Betriebssystem visionOS unterstützen. Von Windows kann man für alle Plattformen außer für
iOS
kompilieren – wahlweise mit
Multi-Targeting
-Projekten oder mehreren
Kopfprojekt
en (die Projektvorlage verwendet vier
Kopfprojekt
e: Desktop,
Android
,
iOS
und Browser). Für das Kompilieren für
iOS
braucht man auch bei Avalonia einen macOS-Rechner.
Das Rendering bei Avalonia basiert nicht auf
DirectX
, sondern der Skia Graphics Library von
Google
https://skia.org
, welche
Google
selbst in Chrome, ChromeOS,
Android
und
Flutter
verwendet. Auf dem Windows-Betriebssystem kann man bei Avalonia alternativ auch mit Microsofts Direct2D rendern.
Avalonia verwendet die von Microsoft bereitgestellten .NET-Laufzeitumgebungen für alle Plattformen. Avalonia basiert auf der
.NET Core
CLR
Runtime auf Windows, macOS und
Linux
, während für
iOS
,
Android
und WebAssembly die
Mono
Runtime zum Einsatz kommt. Dieses Muster kennt man bereits von den Microsoft-Frameworks selbst. Avalonia basiert aber nicht auf .NET
MAUI
. Native
AOT
-Kompilierung ist in Avalonia möglich, allerdings nur für Windows, macOS und
Linux
.
AOT
für
Android
ist geplant unter dem Namen "FastDroid"
https://github.com/AvaloniaUI/Avalonia/discussions/16997.
Kompatibilität zu und einfache Migrierbarkeit von WPF war nicht das Ziel bei Avalonia; vielmehr fanden die Schöpfer die Grundidee von
XAML
gut, wollten aber neben der Plattformunabhängigkeit auch Einiges bei der Syntax besser machen und nahmen dabei auch Anleihen UWP/
WinUI
. Die Zielsetzung ist anders beim kommerziellen Schwesterprojekt
Avalonia XPF
, das eine sehr einfache Migration von WPF erlaubt, dazu unten mehr.
Avalonia unterscheidet sich von WPF insbesondere in den Bereichen Styling und Data Templates sowie einigen
Steuerelement
en. Es fehlen in Avalonia z.B. die WPF-
Steuerelement
e PrintDialog, DocumentViewer, GroupBox,
ListView
und StatusBar. Lästig ist, dass es in Avalonia nicht einmal eine einfache MessageBox im Kern gibt
https://docs.avaloniaui.net/docs/basics/user-interface/messagebox
und man schon dafür eine Community-Lösung braucht
https://github.com/AvaloniaCommunity/MessageBox.Avalonia.
Manche
Steuerelement
e in Avalonia haben ein Pendant in UWP/
WinUI
, aber nicht in WPF, z.B. AutoCompleteBox/AutoSuggestBox, ColorPicker, ContentPresenter, DatePicker, DropDown
Button
, Carousel/FlipView, PathIcon, Flyout, Relative
Panel
, SplitView, ToggleSwitch und ToggleSplit
Button
. Das Avalonia-Entwicklungsteam hat angekündigt
https://github.com/AvaloniaUI/Avalonia/discussions/16997
, an weiteren
Steuerelement
en wie Rich
TextBox
,
Markdown
und TreeDataGrid sowie dem Drucken mit Avalonia zu arbeiten, zum Teil diese
Steuerelement
e aber nur gegen Bezahlung bereitzustellen.
Ein manchen Stellen ist die Avalonia-
XAML
-Syntax einfacher als WPF. So kann man Reihen und Spalten für ein Grid-Layout alternativ in einem einzigen Tag definieren
<Grid ColumnDefinitions="Auto,*,32" RowDefinitions="*,Auto">
anstelle der in ausschweifenden Tag-Folge in WPF mit <ColumnDefinition> und <RowDefinition>. In
XAML
gibt es eine Markup Extension für OnPlatform für das plattformspezifische Setzen von Eigenschaften. An einigen Stellen ist Avalonia strenger als WPF: Bei WPF funktioniert <Stack
Panel
Orientation="horizontal"> und <Stack
Panel
Orientation="Horizontal">. Avalonia fordert die Großschreibung. Manchmal sind Namen einfach anders, z.B. PointerPressed statt MouseDown. Bei Gradienten muss man in Avalonia Prozentzahlen verwenden
<LinearGradientBrush EndPoint="50%,100%" StartPoint="50%,0%">
Anstelle der Werte zwischen 0 und 1 bei WPF:
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
XAML
-Dateien haben die Dateinamenserweiterung .axaml statt .xaml wie in WPF.
Compiled Bindings sind möglich wie in .NET
MAUI
mit x:DataType. In Data Templates können dabei Typumwandlungen notwendig werden, die die Syntax sperrig machen:
<
Button
Content="Done" Name="C_Done"
Command="{Binding ((vm:MainViewModel)DataContext).SetDoneCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding TaskID}" />
Eine
Liste
der abweichenden
XAML
-Features und
XAML
-
Steuerelement
e findet man unter
https://docs.avaloniaui.net/docs/get-started/wpf/comparison-of-avalonia-with-wpf-and-uwp.
Einziger kommerzieller
Komponente
nhersteller, der bisher eine
Steuerelement
sammlung für Avalonia liefert, ist die Firma Actipro Software:
https://www.actiprosoftware.com/products/controls/avalonia.
Diese ist aber im Vergleich zu anderen
Steuerelement
sammlung nicht sehr umfangreich.
Für Avalonia gibt es bisher weder einen WYSWYG-Designer noch Hot Reloading. Es gibt aber in Visual Studio eine Vorschauansicht auf die per
XAML
-Tags erfasste Oberfläche, die sich bei jedem Tastaturanschlag im
XAML
-Editor automatisch aktualisiert. Der Previewer führt auch den Konstruktor des gebundenes View Models aus und zeigt dort befüllte Daten an.
Leider sind die Projektvorlagen für Visual Studio immer auf dem aktuellen Stand, was zu einigen Problemen beim Übersetzen führt, vgl. "Don't use the Visual Studio templates, they're totally broken and haven't been updated in a while. Create your projects using the dotnet command."
https://github.com/AvaloniaUI/Avalonia/discussions/16467.
Die hier erwähnten Projektvorlagen für das Kommandozeilenwerkzeug findet man hier:
https://www.nuget.org/packages/Avalonia.Templates.
Die fehlende Aktualität der Visual Studio-Integration ist abschreckend für Einsteiger.
Laut einer Ankündigung vom 12.09.2024
https://github.com/AvaloniaUI/Avalonia/discussions/16997
soll eine erste Vorschauversion auf einem WYSWYG-Designer in der ersten Jahreshälfte 2025 erscheinen, zunächst als eigenständige Anwendung mit eigenem Codeeditor, später auch als Visual Studio-Add-in. Auch Hot Reloading steht auf der Agenda mit Namen "Avalonia Accelerate". Zumindest der Designer wird laut Ankündigung aber Geld kosten. Für das Hot Reloading gibt es aktuell ein experimentelles Community-Projekt, das aber seit 2 Jahren nicht mehr weiterentwickelt wurde:
https://github.com/AvaloniaUI/Live.Avalonia
Avalonia wird verbreitet in Form von NuGet-Paketen
https://www.nuget.org/packages/Avalonia.
Avalonia-Projektvorlagen und den Previewer zur Entwicklungszeit gibt es für
Visual Studio
https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaVS.
Visual Studio Code
(Erweiterung noch im Preview-Status)
https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.vscode-avalonia.
Rider von JetBrains
https://plugins.jetbrains.com/plugin/14839-avaloniarider
Die Projektvorlage für Visual Studio bietet einen Assistenten zum Anlegen von Projekten. Dort kann man neben den gewünschten Zielplattformen auch zwischen zwei
MVVM
-Frameworks wählen: ReactiveUI
https://www.reactiveui.net
oder das
MVVM
aus dem
.NET Community Toolkit
(CommunityToolkit.Mvvm) von Microsoft
https://github.com/CommunityToolkit/dotnet.
Avalonia erlaubt "Headless Testing", also das Testen ohne sichtbares Fenster via NuGet-Paketen Avalonia.Headless, Avalonia.Headless.Xunit und Avalonia.Headless.Nunit:
https://docs.avaloniaui.net/docs/concepts/headless/.
WPF kann das nicht.
Lange Zeit gab es unter den Kunden von www.IT-Visions.de nicht einen einzigen, der Avalonia eingesetzt hat. Seit Mitte 2024 gibt es jedoch einige Schulungs- und Beratungsaufträge dazu.
Querverweise zu anderen Begriffen im Lexikon
eXtensible Application Markup Language (XAML)
Universal Windows Platform (UWP)
.NET Community Toolkit
Programmiersprache
Windows UI Library (WinUI)
Blazor WebAssembly (Blazor WASM)
Visual Studio Code (VSCode)
Visual Basic .NET (VB.NET)
Multi-Targeting
.NET Foundation
Cross-Platform
Steuerelement
Avalonia XPF
Kopfprojekt
Open Source
Webbrowser
Komponente
JavaScript (JS)
.NET Core
Markdown (MD)
ListView
DirectX
Android
TextBox
Flutter (Flutter)
Button
Google
Apple
Liste
Linux
Panel
Tizen
tvOS
Mono
iOS
.NET Software Development Kit (.NET SDK)
Windows UI Library (WinUI)
eXtensible Application Markup Language (XAML)
Model-View-ViewModell (MVVM)
.NET Multi-Platform App UI (MAUI)
Hypertext Markup Language (HTML)
Ahead-of-Time-Compilation (AOT)
Cascading Style Sheet (CSS)
Mobile Internet Toolkit (MIT)
Common Language Runtime (CLR)
Graphical User Interface (GUI)
Beratung & Support
Cross-Plattform-Entwicklung / Cross-Plattform-Tools
Anfrage für Beratung/Consulting zu AVALONIA
Gesamter Beratungsthemenkatalog
Technischer Support zum AVALONIA
Schulungen
Avalonia - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Uno Platform - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Windows Presentation Foundation (WPF) - Basiswissen
Anfrage für eine individuelle Schulung zum Thema AVALONIA
Gesamter Schulungsthemenkatalog
Fachbücher
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C++ Core Guidelines Explained: Best Practices for Modern C++
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr