Von Xamarin zu .NET MAUI migrieren
Auf einen Blick
| Gilt für | Xamarin.Forms 5, Xamarin.Android/Xamarin.iOS → .NET MAUI 10 (.NET 10 LTS); Visual Studio 2026 |
|---|---|
| Bereich | Softwareentwicklung |
| Dauer | je nach App wenige Tage bis mehrere Wochen |
| Rechte | Entwicklungsumgebung, Apple-Developer- und Google-Play-Konto |
| Stand | Oktober 2026 |
Von Xamarin zu .NET MAUI migrieren ist für jede noch gepflegte Xamarin-App Pflicht: Microsoft hat den Support für Xamarin am 1. Mai 2024 beendet, und neue App-Versionen lassen sich mit der alten Toolchain nicht mehr in die Stores bringen, weil Apple und Google regelmäßig aktuelle SDKs verlangen. Nachfolger ist .NET MAUI (.NET Multi-platform App UI), das Android, iOS, macOS und Windows mit einer Codebasis abdeckt.
Warum jetzt migrieren?
- Kein Support: Xamarin erhält seit Mai 2024 keine Fehlerbehebungen und Sicherheitsupdates mehr.
- Store-Vorgaben: Google Play verlangt jedes Jahr ein höheres Ziel-API-Level, Apple für Uploads eine aktuelle Xcode-Version. Beides unterstützt die Xamarin-Toolchain nicht mehr – Updates bestehender Apps sind damit faktisch blockiert.
- Entwicklungsumgebung: Visual Studio für Mac wurde am 31. August 2024 eingestellt; Xamarin-Projekte werden von aktuellen Visual-Studio-Versionen nicht mehr unterstützt.
- Leistung und Funktionen: .NET MAUI nutzt das aktuelle .NET mit besserer Startzeit, Trimming, Native AOT (iOS) und Hot Reload.
Was sich ändert: Xamarin und .NET MAUI im Vergleich
| Xamarin | .NET MAUI 10 |
|---|---|
| je Plattform ein eigenes Projekt (Android, iOS, UWP) + Shared/PCL | ein Projekt (Single Project) mit Ordner Platforms/
|
Xamarin.Forms-Namensräume Xamarin.Forms |
Microsoft.Maui, Microsoft.Maui.Controls
|
| Custom Renderer | Handler (Renderer laufen übergangsweise über Kompatibilitäts-APIs) |
| Xamarin.Essentials (separates Paket) | in .NET MAUI enthalten (Microsoft.Maui.ApplicationModel, …Devices, …Storage)
|
| DependencyService | Dependency Injection in MauiProgram.cs
|
| MvvmLight, MessagingCenter | CommunityToolkit.Mvvm mit WeakReferenceMessenger
|
| ListView, TableView | CollectionView (ListView ist ab .NET 10 als veraltet markiert) |
| Ressourcen je Plattform (Schriften, Bilder, Icons) | zentral in Resources/ (MauiFont, MauiImage, MauiIcon, MauiSplashScreen)
|
| iOS-Storyboards, Android-AXML-Layouts (Xamarin.iOS/Android ohne Forms) | weiter möglich in „.NET for iOS/Android“; für gemeinsame Oberflächen XAML in .NET MAUI |
| Xamarin Studio, Visual Studio für Mac | Visual Studio 2026 (Windows) oder VS Code mit .NET-MAUI-Erweiterung (macOS, Windows, Linux) |
Vorgehen in sechs Schritten
- Bestandsaufnahme: Projekte, NuGet-Pakete und Custom Renderer auflisten. Für jedes Paket prüfen, ob es eine .NET-MAUI-Version gibt (z. B. Syncfusion, Telerik, SQLite-net, Plugin.*-Pakete).
- Neues .NET-MAUI-Projekt anlegen (
dotnet new maui -n MeineApp) und den gemeinsamen Code (Models, Services, ViewModels) übernehmen. Bei gewachsenen Xamarin.Forms-Apps ist das meist übersichtlicher als eine Konvertierung „an Ort und Stelle“; Microsoft Learn beschreibt beide Wege. - Namensräume und APIs anpassen:
Xamarin.Forms→Microsoft.Maui.Controls,Xamarin.Essentials→ Maui-Namensräume,Device.BeginInvokeOnMainThread→MainThread.BeginInvokeOnMainThread, Farben/Layouts nach Migrationsleitfaden. - Renderer zu Handlern umbauen und plattformspezifischen Code in
Platforms/Androidbzw.Platforms/iOSverschieben. - MVVM modernisieren: MvvmLight bzw. MessagingCenter durch das CommunityToolkit.Mvvm ersetzen, siehe .NET MAUI: MVVM mit dem CommunityToolkit.Mvvm statt MvvmLight.
- Testen und veröffentlichen: auf echten Geräten testen, Bundle-ID/Package-Name und Signierung übernehmen (sonst entsteht im Store eine neue App) und mit
dotnet publishveröffentlichen.
Was wird aus den alten Xamarin-Problemen?
- Storyboards lassen sich nach Xcode-Update nicht öffnen: Den iOS-Designer gibt es nicht mehr. Oberflächen entstehen in XAML mit Hot Reload; bei reinen .NET-for-iOS-Apps werden Storyboards direkt in Xcode bearbeitet.
- „Disallowed Paths“ / iTunesMetadata.plist beim Upload: Der Upload über den Xcode Organizer aus Xamarin-Archiven entfällt. Heute wird mit
dotnet publish -f net10.0-ios -c Releaseeine IPA erzeugt und mit der App Transporter oder per CI zu App Store Connect hochgeladen. - Downgrade der Entwicklungsumgebung: Statt Frameworks von Hand zu löschen, wird die Workload-Version per
global.jsonfestgelegt, siehe .NET MAUI: Workload-Version und Xcode festlegen.
Hinweise
- Versionen: .NET 10 ist LTS bis November 2028; .NET 11 erscheint im November 2026 als STS-Version. Für Unternehmens-Apps ist .NET 10 die richtige Basis.
- Bundle-ID beibehalten, damit Nutzer ein Update statt einer neuen App erhalten.
- Kosten realistisch planen: Einfache Formular-Apps sind oft in wenigen Tagen migriert; viele Custom Renderer oder veraltete Drittanbieter-Komponenten erhöhen den Aufwand deutlich.
- Bei der Migration Ihrer Xamarin-Apps nach .NET MAUI unterstützt Sie die individuelle Softwareentwicklung von m.a.x. it – von der Bestandsaufnahme bis zur Veröffentlichung im Store.
Siehe auch
- .NET MAUI: Entwicklungsumgebung einrichten
- .NET MAUI: Strategien und Vorteile plattformübergreifender Apps
- .NET MAUI: MVVM mit dem CommunityToolkit.Mvvm statt MvvmLight
- .NET MAUI: Workload-Version und Xcode festlegen
- .NET MAUI: Eigene Schriftarten einbinden
Links und Quellen
- Microsoft Learn: Von Xamarin zu .NET MAUI migrieren
- Individuelle Softwareentwicklung und App-Entwicklung von m.a.x. it
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
