Sie sind hier: Wissen
Begriff .NET Multi-Platform App UI
Abkürzung MAUI
Eintrag zuletzt aktualisiert am 19.02.2025

 Zur Stichwortliste unseres Lexikons

Was ist .NET Multi-Platform App UI ?

.NET Multi-Platform App UI (MAUI) ist ein Framework für Cross-Platform-Apps im modernen .NET.

Termine

  • Ankündigung auf der Microsoft BUILD-Konferenz Mai 2020.
  • 23. Mai 2022: erste Version erschienen
  • Seitdem jeden November neues Release zusammen mit dem modernen .NET

Namensräume

XAML-Namensraum: http://schemas.microsoft.com/dotnet/2021/maui
.NET-Namensraum: Microsoft.Maui

Details

Der sperrige Name .NET Multi-Platform App UI (kurz: MAUI) steht für das neuste GUI-Framework von Microsoft. Dabei ist MAUI nicht komplett neu, sondern ein Refactoring und eine Weiterentwicklung des Cross-Platform-GUI-Frameworks Xamarin.Forms. Die Basis ist nun das moderne .NET SDK, zur Laufzeit kommt jedoch nicht immer die neuste .NET Core Runtime, sondern im Fall von Android und den Apple-Betriebssystemen weiterhin die Mono Runtime zum Einsatz. Der neue .NET-Namensraum ist Microsoft.Maui (vorher: Xamarin.Forms).

MAUI-Anwendungen laufen auf Windows (via WinUI3), macOS (via .NET for Mac Catalyst), iOS (via .NET for iOS), Android (via .NET for Android) und Tizen (diese Implementierung kommt von Samsung, siehe https://docs.tizen.org/application/dotnet/). Den Linux-Desktop lässt Microsoft leider außen vor. Auf GitHub findet man nur eine experimentelle Portierung eines Microsoft-Mitarbeiters Javier Suárez. Das zugehörige GitHub-Issue, das eine Linux-Desktop-Portierung fordert https://github.com/dotnet/maui/discussions/339, hat hunderte Kommentare, aber den Status "Unanswered".

Während Xamarin.Forms stark auf die Mobilbetriebssysteme ausgerichtet war, gibt es in .NET MAUI auch Features speziell für die Desktop-Betriebssysteme wie Multi-Window-Unterstützung, Tastatur-Shortcuts für Menüs (seit Version 8.0), Steuerung der Titelleiste (seit Version 9.0).

Mit MAUI kann man aus einem einzigen Projekt heraus Kompilate mit Multi-Targeting für alle unterstützten Betriebssysteme erzeugen. Mit bedingter Kompilierung können Entwicklerinnen und Entwickler plattformspezifischen Programmcode einbringen. Mehrere Kopfprojekte wie beim Vorgänger Xamarin.Forms sind aber auch bei MAUI noch möglich.

Voraussetzung für die Übersetzung für eine Zielplattform ist die Installation eines entsprechenden .NET SDK Workloads auf dem Entwicklungsrechner. Auf Windows-Rechnern kann man für alle Zielsysteme entwickeln; beim Übersetzen für das Apple-Betriebssystem braucht man aber zusätzlich einen Mac-Computer mit XCode für einen Remote Build sowie ein Apple-Entwicklerkonto.

Die erste Version von .NET MAUI ist am 23. Mai 2022 als Nachtrag zu .NET 6.0 erschienen. Die Versionsnummer von MAUI ist an .NET angeglichen, d.h. in .NET 9.0 gibt es die vierte Version von MAUI mit der Versionsnummer 9.0.

Die ersten beiden Releases (6.0 und 7.0) von .NET MAUI waren für Entwicklerinnen und Entwickler eine Herausforderung, weil das Entwicklungserlebnis und die Performance oft mangelhaft waren und einige Steuerelemente auch Bugs zur Laufzeit hatten. In den letzten Versionen hat das MAUI-Entwicklungsteam aber viel daran getan, sodass MAUI jetzt besser einsetzbar ist. Entwicklerinnen und Entwickler, die mit Xamarin.Forms gearbeitet haben, mussten zwangsweise auf MAUI umsteigen, denn der Support endete am 1. Mai 2024. Abhängig von den verwendeten Features ist Einiges zu tun, aber der .NET Upgrade Assistant hilft, siehe https://learn.microsoft.com/de-de/dotnet/maui/migration/upgrade-assistant.

Beim Support unterscheidet sich .NET MAUI von Windows Forms und WPF. Bei Windows Forms und WPF ist der Support jeweils an den Support der .NET-Version gebunden: .NET MAUI bekommt jedoch leider immer nur 18 Monate Support, auch in den geraden Versionsnummer. Nutzerinnen und Nutzer von MAUI müssen daher mindestens alle 18 Monate die Anwendung neu kompilieren und verteilen.

.NET MAUI verwendet wie WPF und WinUI3 ebenfalls die eXtensible Application Markup Language (XAML) zur Oberflächenbeschreibung. Die XAML-Syntax bietet eine UI-Abstraktion und wird von MAUI dann zur Laufzeit in native Steuerelemente der Zielplattform gerendert, z.B. unter Windows werden dann WinUI3-Steuerelemente verwendet. Das Look & Feel von MAUI ist modern und lässt sich wie in XAML üblich gut anpassen. Animationen und Transformationen gibt es in MAUI-XAML auch, aber nicht alle Möglichkeiten, wie man sie aus WPF und WinUI3 kennt. Multimedia-Features sind vorhanden, erfordern aber teilweise die Nutzung plattformspezifischer APIs. Die Unterstützung für Eingabevalidierung ist in MAUI ebenso unbefriedigend wie in WinUI3, d.h. man muss vieles selbst machen, was WPF von Hause aus kann.

Die MAUI-XAML-Syntax und die Steuerelemente in MAUI sind deutlich anders. So gibt es in MAUI zum Beispiel das Steuerelement <Entry> anstelle des in WPF und WinUI3 verwendeten Tags <TextBox>. Ebenso verwendet man in MAUI <Label> statt <TextBlock>. .NET MAUI kann seit .NET 9.0 auch kompilierte Datenbindungen, aber nicht wie in WinUI3 mit x:Bind in der einzelnen Bindung, sondern mit x:DataType auf Ebene der Seite.

Es gibt aber – wie bei WinUI3 – ein Community Toolkit: https://github.com/CommunityToolkit/Maui. Dort gibt es wenige zusätzliche Steuerelemente wie Expander, Popup, AvatroView, Map, MediaElement und CameraView. Aber weder im Standard von MAUI noch im MAUI Community Toolkit liefert Microsoft ein DataGrid oder Diagramme; auch bei MAUI kauft man also in vielen Praxisprojekten noch eine Komponentenbibliothek von Drittanbietern.

Als Programmiersprache kann man in MAUI ausschließlich C# verwendet, während die Windows-gebundenen Konkurrenten Windows Forms, WPF und WinUI3 auch mit Visual Basic .NET, F# und C++ bzw. C++/CLI möglich sind. Es gibt keinen WYSIWYG-Designer für MAUI, aber den XAML Live Preview in Visual Studio und Hot Reloading. Das Debugging einer MAUI-Anwendung im Android-Emulator ist aber immer noch eine Angelegenheit, bei der der Geduldsfaden reißen kann, auch wenn man einen sehr teuren Entwicklerrechner mit vielen Kernen und viel RAM besitzt.

Beim Deployment erzeugt .NET MAUI entsprechende Installationspakete, die alle notwendigen Abhängigkeiten auf dem Zielsystem beinhalten, also z.B. auf Windows ein MSIX-Paket mit der Windows App Runtime für WinUI3. Das Deployment geht (wie bei Windows Forms, WPF und WinUI3 auch) sowohl per Visual Studio als auch per Kommandozeile (und damit auch per DevOps-Pipeline).

AOT-Kompilierung ist möglich für iOS- und macOS-Anwendungen. Bereits seit .NET MAUI 8.0 ist der NativeAOT-Compiler anstelle des Mono AOT-Compilers für iOS- und macOS-Anwendungen experimentell verfügbar. In .NET 9.0 gilt diese NativeAOT-Kompilierung als stabil.

Komponentenanbieter für .NET MAUI

Hersteller | Produktname | Webadresse
Microsoft | .NET MAUI Community Toolkit | https://learn.microsoft.com/de-de/dotnet/communitytoolkit/maui/get-started

Syncfusion | .NET MAUI controls | https://www.syncfusion.com/maui-controls

DevExpress | .NET MAUI Controls | https://www.devexpress.com/maui/

Telerik | UI for .NET MAUI | https://www.telerik.com/maui-ui

MESCIUS (vormals GrapeCity) | ComponentOne .NET MAUI Edition | https://www.grapecity.com/componentone/net-maui

Beratung & Support

Schulungen zu diesem Thema

 .NET Multi-Platform App UI (MAUI)
 Umstieg auf .NET Multi-Platform App UI (MAUI) (Umstellung/Migration von Xamarin Forms-Apps auf .NET MAUI)
 .NET Akademie: .NET MAUI: .NET-/C#-Cross-Plattform-Entwicklung für Android, iOS (iPhone, iPad) und Windows (3-Tages-Agenda des öffentlichen Seminars)
 .NET-Entwickler-Update 2023
 .NET-Entwickler-Update 2022
 .NET-Entwickler-Update 2024
 .NET-Entwickler-Update 2025
 Extensible Application Markup Language (XAML)
 .NET 6.0 - Änderungen und Neuerungen gegenüber .NET 5.0
 Prism - Composite UI Framework für WPF
 Apps für iOS (iPhone und iPad) entwickeln mit XCode und Objective-C
 Application Insights (Überwachung/Monitoring von Software/Telemetriedaten)
 Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
 Windows Presentation Foundation (WPF) - Basiswissen
 Avalonia - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
 Objektorientierte Entwurfsmuster (Design-Pattern/Architektur-Pattern) mit .NET (C#, Visual Basic .NET)
 .NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
 .NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für das klassische .NET Framework und/oder das moderne .NET)
 .NET Akademie: Blazor-Hands-On: Echte Single-Page-Web-Apps mit .NET und C# entwickeln (3-Tages-Agenda des öffentlichen Seminars)
 .NET 8.0 - Änderungen und Neuerungen gegenüber .NET 7.0
 Uno Platform - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 .NET und C# für Umsteiger von Java
 Moderne Web-Anwendungen mit Blazor (Blazor United und/oder Blazor SSR und/oder Blazor WebAssembly und/oder Blazor Server und/oder Blazor Hybrid)
 .NET Akademie: Datenbankprogrammierung mit Entity Framework Core (3-Tages-Agenda des öffentlichen Seminars)
 Android-App-Entwicklung mit Java (Android-Programmierung mit Java)
 ASP.NET Core 9.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 8.0
 Microsoft 365 für Softwareentwickler (Microsoft 365 Development)
 Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD) mit den Microsoft Testwerkzeugen in Visual Studio
 Cross-Plattform-Entwicklung mit Cross-Plattform-Tools im Vergleich
 Anfrage für eine individuelle Schulung zum Thema .NET Multi-Platform App UI MAUI  Gesamter Schulungsthemenkatalog