# Avalonia: a cross-platform .NET UI framework for XAML developers

> Avalonia is a C# and XAML UI framework that targets Windows, macOS, Linux, iOS, Android and WebAssembly. It is the closest thing .NET has to a cross-platform WPF, with a styling system that is deliberately not a 1:1 copy.

**AvaloniaUI/Avalonia** — Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI

- Repository: https://github.com/AvaloniaUI/Avalonia
- Website: https://avaloniaui.net
- Stars: 31,597 · Forks: 2,833
- Language: C#
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/avaloniaui-avalonia

## The problem Avalonia solves for .NET teams

A .NET team that wants a graphical application on more than one operating system has a narrow set of options. The README positions Avalonia as the answer for developers who already write XAML: it describes the project as a cross-platform UI framework for dotnet with a flexible styling system, supporting Windows, macOS, Linux, iOS, Android and WebAssembly. The repository layout backs that claim up. The samples directory contains separate projects for ControlCatalog.Desktop, ControlCatalog.Android, ControlCatalog.iOS, ControlCatalog.Browser, ControlCatalog.MacCatalyst and ControlCatalog.tvOS, so the same catalogue of controls is built once and hosted on each platform.

The intended audience is specific. The README calls Avalonia the spiritual successor to WPF and says it provides a familiar, modern development experience for XAML developers creating cross-platform applications. If your team has spent years in WPF, the migration path is mostly mental rather than mechanical. If your team has no XAML background, the framework still works, but you inherit the learning curve of a declarative markup language plus a styling system with no direct equivalent in most web or mobile stacks.

## What sits between your C# code and the platform

Avalonia is not a thin wrapper over each platform's native controls. The repository has a src directory for managed code and a native directory with its own build scripts (build-native.sh and build.cmd are at the top level), which tells you the rendering and windowing layer is implemented by the project rather than delegated to WinUI or UIKit. The samples include GpuInterop and RenderDemo projects, and the topic list names wasm alongside windows, linux, macos, android and ios.

The practical consequence is that a control looks and behaves the same on every target, because Avalonia draws it. That is the opposite of the approach where each platform renders its own widgets. It also means the framework carries the work of matching platform conventions: dialogs, text input, accessibility and window chrome are Avalonia's responsibility, not the operating system's. The README says Avalonia is similar to WPF but is not a 1:1 copy, and that you will find plenty of improvements. Treat that sentence as the honest summary of the trade-off: familiar concepts, different details.

## Installing Avalonia from NuGet and running a first app

The README states that Avalonia is delivered via the NuGet package manager and points to the package page at nuget.org/packages/Avalonia. It gives two Package Manager console commands for installing the framework manually into an existing project. Run them in the Visual Studio Package Manager console, and the project references should appear in your solution afterwards.

```bash
Install-Package Avalonia
Install-Package Avalonia.Desktop
```

For a new application, the README does not walk through a template command. It directs you to the Get Started guide at docs.avaloniaui.net and to a starter tutorial, and it names three editor integrations: the Avalonia for Code extension for Visual Studio Code, the Avalonia Visual Studio Extension for Visual Studio 2022 and 2026, and support in JetBrains Rider. The Visual Studio extension is described as containing project and control templates, a live XAML previewer, code completion and diagnostics. So the first real use is: install the extension for your editor, create a project from its template, and let the previewer render the XAML as you edit it. Rider is the exception. The README says code completion, inspections and refactorings work out of the box there, but previewing XAML requires the community-maintained AvaloniaRider plugin.

If you prefer to read working code rather than follow a tutorial, the repository ships samples. ControlCatalog is the broadest one, and the platform-specific ControlCatalog projects show how the same application is hosted on desktop, Android, iOS, the browser and Mac Catalyst.

## Where Avalonia is the wrong choice

The README does not document rollback, and it does not describe a supported downgrade path between major versions. That matters because the project is shipping two lines at once: the recent releases list 11.3.21 and 12.1.2, and the README links a page of breaking changes between Avalonia 11 and Avalonia 12. A team that starts on 12 and finds a blocker has no documented route back described in the README itself.

There is a second boundary. The README separates Avalonia from Avalonia XPF, a commercial product licensed per-app, per-platform that runs existing WPF applications on macOS and Linux. If your goal is to move an existing WPF application without rewriting it, XPF is the product the README points at, and Avalonia itself is not that. Choosing Avalonia means porting the UI.

A third case: if you need a single platform and that platform has a first-party UI toolkit you already know, Avalonia adds a rendering layer and a styling system you did not ask for. The README makes no claim about binary size or startup time, so there is nothing in the README to weigh against that cost.

## Avalonia compared with .NET MAUI

The two projects overlap in the platforms they claim, and the difference is in how the UI is produced. Avalonia defines its own controls and renders them, which is why the same XAML and the same styling system apply on desktop, mobile and WebAssembly. .NET MAUI takes the other route: it maps controls onto the native widgets of each platform, so a button is a WinUI button on Windows and a UIKit button on iOS. The trade-off is direct. With Avalonia you get one visual result everywhere and you accept that the framework owns platform conventions. With MAUI you get platform-native look and behaviour and you accept that the same markup can render differently per target.

For a WPF team, Avalonia's pull is stronger because the XAML dialect and the styling model are close to what they already write. The README frames the project that way on purpose. The repository also contains a ControlGallery.WinUI sample, which suggests the project keeps an eye on how its controls compare against the native Windows toolkit, but the README does not describe WinUI as a supported target.

## Licence, releases and the cost of staying current

Avalonia is licensed under the MIT licence, and the README states this plainly. That permits commercial use without a per-application fee for the framework itself. The README separately notes that Avalonia XPF is a commercial product licensed per-app, per-platform, so the two should not be confused when you budget. This is a description of what the repository says, not legal advice; read licence.md and NOTICE.md in the repository before you rely on it.

The maintenance picture from the repository is current: the last push was on 2026-09-10, and the most recent release listed is 11.3.21 on 2026-09-08. Development is supported by sponsorship, and the README names Devolutions as a sponsor. The upgrade cost is the part worth planning for. Two release lines are active, and the README links documented breaking changes between Avalonia 11 and Avalonia 12, so an application pinned to 11 cannot assume a frictionless move to 12. There is also a nightly build feed described in the wiki, which the README says some users prefer because it tracks the current state of master. That feed is not the release on NuGet.org, and the README says those packages are less stable.

## Conclusion

Adopt Avalonia if you have XAML and C# skills and need one codebase across desktop, mobile and browser, and verify first that your target platforms are covered by the packages you actually install, that your XAML does not depend on WPF-only behaviour, and how you will track the breaking changes between Avalonia 11 and Avalonia 12.

## FAQ

### How much does Avalonia cost?

Avalonia itself is licensed under the MIT licence, which the README states directly. Avalonia XPF, the product that runs existing WPF applications on macOS and Linux, is separate and is licensed per-app, per-platform.

### How do I install Avalonia?

Avalonia is delivered through NuGet. The README gives two Package Manager console commands, Install-Package Avalonia and Install-Package Avalonia.Desktop, for adding it to a project manually, and points to the Get Started guide for new applications.

### How do I install Avalonia in Visual Studio 2022?

Install the Avalonia Visual Studio Extension, which the README says contains project and control templates, a live XAML previewer, code completion and diagnostics for Visual Studio 2022 and 2026. Alternatively, add the NuGet packages manually from the Package Manager console.

### How do I use Avalonia in Rider?

The README says code completion, inspections and refactorings work out of the box in JetBrains Rider. To preview XAML you need the community-maintained AvaloniaRider plugin, which the README links to.

### Which is better, WPF or Avalonia?

The README does not rank them. It describes Avalonia as similar to WPF but not a 1:1 copy, with improvements, and says it targets Windows, macOS, Linux, iOS, Android and WebAssembly. WPF is Windows-only, so the choice depends on whether you need the other platforms.

### What apps are built with Avalonia?

The README names Schneider Electric, Unity, JetBrains and GitHub among the companies using it. It does not describe what each one built.

## Sources

- [AvaloniaUI/Avalonia on GitHub](https://github.com/AvaloniaUI/Avalonia)
- [License: MIT](https://github.com/AvaloniaUI/Avalonia/blob/main/LICENSE)
- [Project website](https://avaloniaui.net)
- [README](https://github.com/AvaloniaUI/Avalonia/blob/main/README.md)
- [Releases](https://github.com/AvaloniaUI/Avalonia/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/avaloniaui-avalonia
