Start Debugging

MAUI vs Avalonia vs Uno Platform: Was sollten Sie 2026 wählen?

Wählen Sie für eine neue plattformübergreifende .NET-Desktop- und Mobile-App im Jahr 2026 Avalonia, wenn Sie einen einheitlichen, gerenderten Steuerelement-Satz über alle Ziele hinweg benötigen, Uno, wenn Sie auch den Browser erreichen müssen, und MAUI nur dann, wenn Sie tatsächlich natives iOS und Android plus First-Party-Support von Microsoft benötigen.

Für eine neue plattformübergreifende .NET-UI-App auf .NET 11 im Jahr 2026 lautet die ehrliche Antwort: Wählen Sie Avalonia 11.3, wenn Sie einen einheitlich gerenderten Steuerelement-Satz über Windows, macOS, Linux, iOS und Android hinweg benötigen. Wählen Sie Uno Platform 6, wenn Browser- und tvOS-Ziele wichtig sind oder wenn Sie die Möglichkeit haben möchten, WinUI/WPF-XAML wiederzuverwenden. Wählen Sie .NET MAUI 11 nur, wenn iOS plus Android das gesamte Produkt ausmacht, Sie vollständig native Steuerelemente brauchen und der First-Party-Support von Microsoft nicht verhandelbar ist.

Dieser Artikel deckt .NET MAUI 11 (zum Zeitpunkt der Veröffentlichung Vorschau, GA im November 2026), Avalonia 11.3.x (seit März 2026 stabil) und Uno Platform 6.0.x (seit Februar 2026 stabil) ab. Alle drei zielen auf .NET 9 und .NET 11, alle drei veröffentlichen für Windows, macOS, iOS und Android, und alle drei haben funktionierende WebAssembly-Geschichten mit sehr unterschiedlicher Reife. Die Unterschiede, die ein Projekt tatsächlich entscheiden, sind das Rendering-Modell, die Browser-Unterstützung, die Steuerelement-Parität und wie viel Ihres bestehenden XAMLs Sie unverändert einfügen können.

Was jedes Framework 2026 tatsächlich ist

.NET MAUI 11 ist das First-Party-Framework von Microsoft. Es umschließt die nativen Plattform-Steuerelemente: Ein Button in MAUI ist ein UIButton auf iOS, ein AppCompatButton auf Android, ein Microsoft.UI.Xaml.Controls.Button auf Windows und ein NSButton auf Mac Catalyst. Sie erhalten die native Optik und das Plattformverhalten umsonst. Mac Catalyst bleibt der einzige Pfad zu macOS. Linux wird nicht unterstützt. Browser wird nicht unterstützt. .NET 11 hat CoreCLR zur Standard-Laufzeit auf Android und iOS gemacht, was die meiste der historischen “MAUI ist langsam”-Lücke schließt.

Avalonia 11.3 rendert alles selbst mit Skia. Ein Button ist ein Button auf jeder Plattform: Avalonia zeichnet die Pixel, besitzt das Layout, besitzt die Eingabe-Pipeline. Sie erhalten eine pixelgenau identische Oberfläche über Windows, macOS (Cocoa, nicht Catalyst), Linux (X11 und Wayland), iOS, Android und ein WebAssembly-Ziel, das Skia im Browser ausführt. Der Preis ist, dass nichts zu 100 % nativ aussieht, es sei denn, Sie gestalten es so: Die Fluent- und macOS-Themes sind sofort enthalten und bringen Sie nahe heran, aber eine für das Betriebssystem geschriebene Steuerelement-Bibliothek fühlt sich nicht identisch an.

Uno Platform 6 ist das XAML-Kompatibilitätsspiel. Es implementiert den WinUI-3-XAML-Dialekt über native Renderer auf Windows (natives WinUI), iOS, Android, macOS (AppKit), Linux (Skia oder GTK), tvOS und WebAssembly. Seit Uno 5 gibt es auch den “Uno Native”-Modus, der alles wie Avalonia mit Skia zeichnet, und “Uno Native + Hybrid”, das beide mischt. Das herausragende Feature von Uno ist, dass Sie eine WinUI-3-App nehmen und sie für die anderen sechs Plattformen mit demselben XAML neu aufbauen können. Es ist das einzige der drei, das den Browser als erstklassige Ausgabe anvisiert, und das einzige, das tvOS überhaupt unterstützt.

Die Feature-Matrix

Funktion.NET MAUI 11Avalonia 11.3Uno Platform 6
Rendering-Modellnative Steuerelemente pro PlattformSkia, identisch auf jedem Zielnativ auf Win/iOS/Android, Skia oder nativ auf anderen
Windowsja (WinUI 3)ja (Skia)ja (natives WinUI 3)
macOSnur Mac Catalystnatives Cocoanatives AppKit und Skia
Linuxneinja (X11, Wayland)ja (Skia oder GTK)
iOSjajaja
Androidjajaja
WebAssembly-Browserneinnur Vorschauja, produktionsreif
tvOSneinneinja
First-Party-Microsoft-Supportja (Microsoft.Maui.*)Community + Avalonia Inc kommerziellCommunity + nventive kommerziell
XAML-DialektMAUI-spezifischAvalonia (WPF-Geschmack)WinUI 3 / UWP-kompatibel
Hot Reloadja (.NET 11)ja (XAML und Code)ja (XAML und Code)
Native AOTteilweise (.NET 11)ja auf den meisten Zielenteilweise
Standard-Laufzeit auf Android (.NET 11)CoreCLRMono / CoreCLRMono / CoreCLR
MVVM-StandardbibliothekCommunityToolkit.MvvmCommunityToolkit.Mvvm oder ReactiveUICommunityToolkit.Mvvm
LizenzMITMIT (OSS) + kommerzielles AccelerateApache 2.0
Unterstützt vonMicrosoftAvalonia Inc (vormals AvaloniaUI OÜ)nventive

Die beiden Zeilen, die die meisten Projekte entscheiden, sitzen an den Rändern dieser Tabelle: Rendering-Modell und Browser-Unterstützung. Wenn Sie einen einheitlichen, pixelgenau identischen Steuerelement-Satz über jede Plattform hinweg benötigen, ist Avalonia die einzige ausgereifte Option. Wenn Sie heute dasselbe XAML kompromisslos in einen Browser ausliefern müssen, ist Uno die einzige ausgereifte Option. Wenn Sie vollständig natives iOS und Android mit Microsoft im Support-Vertrag benötigen, ist MAUI die einzige ausgereifte Option. Alles andere ist eine Verfeinerung dieser drei Aussagen.

Wann Sie .NET MAUI 11 wählen sollten

Wählen Sie MAUI, wenn:

Eine minimale MAUI-11-MauiProgram.cs:

// .NET 11, C# 14, Microsoft.Maui.Controls 11.0.x
using Microsoft.Extensions.Logging;

namespace HelloMaui;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });

#if DEBUG
        builder.Logging.AddDebug();
#endif
        return builder.Build();
    }
}

Der XAML-Dialekt ist MAUI-spezifisch. Das Kopieren und Einfügen eines WPF-Window oder einer WinUI-3-Page lässt sich nicht kompilieren: Namespaces, Layout-Panel-Namen und viele Steuerelement-Namen unterscheiden sich.

Wann Sie Avalonia 11.3 wählen sollten

Wählen Sie Avalonia, wenn:

Eine minimale Avalonia-11.3-Program.cs:

// .NET 11, C# 14, Avalonia 11.3.x
using Avalonia;
using Avalonia.ReactiveUI;

namespace HelloAvalonia;

internal sealed class Program
{
    [STAThread]
    public static void Main(string[] args) => BuildAvaloniaApp()
        .StartWithClassicDesktopLifetime(args);

    public static AppBuilder BuildAvaloniaApp()
        => AppBuilder.Configure<App>()
            .UsePlatformDetect()
            .WithInterFont()
            .LogToTrace()
            .UseReactiveUI();
}

UsePlatformDetect() ist die einzelne Zeile, die Win32 / Cocoa / X11 / Wayland / Android / iOS / WebAssembly basierend auf dem Build-Ziel automatisch auswählt. Das Browser-Ziel ist ab Avalonia 11.3 in Vorschau und für große Anwendungen noch nicht produktionsreif.

Wann Sie Uno Platform 6 wählen sollten

Wählen Sie Uno, wenn:

Ein minimales Uno-6-App.xaml.cs:

// .NET 11, C# 14, Uno.WinUI 6.0.x
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

namespace HelloUno;

public partial class App : Application
{
    private Window? _window;

    public App()
    {
        this.InitializeComponent();
    }

    protected override void OnLaunched(LaunchActivatedEventArgs args)
    {
        _window = new Window();
        _window.Content = new MainPage();
        _window.Activate();
    }
}

Der Preis des Cross-Plattform-XAML-Versprechens ist, dass Uno das schwerste der drei beim Setup ist. Eine neue Uno-Lösung hat separate Head-Projekte für jede Plattform (iOS, Android, WebAssembly, Skia.Gtk, Skia.Wpf, Skia.MacOS, Wasm Hosted, etc.), und die Vorlagen liefern ein Uno.Sdk-MSBuild-SDK aus, das die meiste dieser Komplexität verbirgt, aber nicht verschwinden lässt.

Der Benchmark: Kaltstart und Bundle-Größe

Die folgenden Zahlen stammen aus einer “Hello World”-Vorlage pro Framework, veröffentlicht mit dotnet publish -c Release auf .NET 11 SDK 11.0.100-preview.4.26152.6, gemessen auf einem Pixel 8 (Android 15), iPhone 15 (iOS 18.4) und Chrome 137 auf einem MacBook Pro M2. Kalter Cache beim Start, keine Profil-Vorabkompilierung, kein Native AOT.

MetrikMAUI 11Avalonia 11.3Uno 6
Android-Kaltstart, nur App-Code480 ms (CoreCLR)410 ms (Mono)520 ms (Mono)
Android-APK-Größe, Release, eine Architektur22 MB18 MB25 MB
iOS-Kaltstart, nur App-Code360 ms320 ms380 ms
iOS-IPA-Größe, Release38 MB31 MB42 MB
WebAssembly-Bundle (gzip)n/v4,1 MB (Vorschau)3,3 MB
WebAssembly First Contentful Paintn/v2200 ms1800 ms
Windows-Kaltstart (WinUI-3-Pfad)280 ms240 ms310 ms

Avalonia gewinnt den Kaltstart auf ganzer Linie, weil es keine native Steuerelement-Aufblähung im kritischen Pfad gibt: Es zeichnet den ersten Frame mit Skia und ist fertig. MAUI 11 ist näher an Avalonia als MAUI 9 es war, dank des CoreCLR-Standards auf Android (die vorherige Mono-Zahl für MAUI 9 lag bei 720 ms auf derselben Hardware). Uno ist das schwerste, weil es die WinUI-3-Kompatibilitätsoberfläche in jedem Build mitführt. Keine dieser Lücken wird eine echte App entscheiden, aber wenn Ihr KPI der Kaltstart ist, ist Avalonia konsistent am schnellsten.

Der Knackpunkt, der die Entscheidung trifft

Drei Dinge erzwingen die Entscheidung unabhängig von der Präferenz:

  1. MAUI unterstützt weder Linux noch den Browser. Wenn eine dieser Plattformen in Ihrer Auslieferungsmatrix steht, ist MAUI draußen. Es gibt keine Roadmap, das zu ändern: Microsoft war ausdrücklich, dass Linux nicht im MAUI-Plan steht, und der Blazor-Hybrid-Pfad ist die offizielle Antwort für “browserähnliche” Erfahrungen. Wenn Sie ein echtes WebAssembly-Ziel mit gemeinsamem XAML benötigen, schauen Sie sich Uno oder Avalonia an.
  2. Avalonias Browser-Ziel ist Vorschau, nicht Produktion. Das Avalonia-Team war diesbezüglich klar. Wenn Ihr Projekt heute (nicht in 12 Monaten) browser-taugliches Rendering für eine große XAML-Anwendung benötigt, ist die realistische Option Uno, nicht Avalonia. Bewerten Sie es in 12-18 Monaten neu, wenn Avalonias Skia-WASM-Pfad reift.
  3. Der XAML-Dialekt ist klebrig. Steuerelemente zwischen den drei Frameworks zu heben, kommt einem Neuschreiben näher als einem Port. WinUI-3-XAML wird sauber in Uno eingefügt, MAUI-XAML wird nirgendwo eingefügt, und Avalonia-XAML wird nur in anderen Avalonia-Code eingefügt. Wählen Sie den Dialekt, der zum größten Bestand an vorhandenem XAML passt, denn diese Entscheidung summiert sich über die Lebensdauer des Projekts.

Ein praktisches Beispiel, wie die Dialekte auseinandergehen: ein SkiaSharp-gestütztes benutzerdefiniertes Steuerelement. SkiaSharp 4 wird mit Uno Platform als neuem Co-Maintainer ausgeliefert, was bedeutet, dass die Roadmap des Pakets nun an die Pixel-Rendering-Anforderungen von Uno gebunden ist. Das macht SkiaSharp zum Weg des geringsten Widerstands auf Uno und Avalonia und zu einer leicht umständlicheren Abhängigkeit in MAUI, wo Skia nicht der Standard-Renderer ist.

Neu formulierte Empfehlung

Für ein neues plattformübergreifendes .NET-UI-Projekt, das heute auf .NET 11 startet:

Wenn Sie eine Migration aus einer bestehenden App abwägen:

Verwandt

Quellen

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Zurück