Von Xamarin zu .NET MAUI migrieren

Aus maxTechCorner

Auf einen Blick

Gilt fürXamarin.Forms 5, Xamarin.Android/Xamarin.iOS → .NET MAUI 10 (.NET 10 LTS); Visual Studio 2026
BereichSoftwareentwicklung
Dauerje nach App wenige Tage bis mehrere Wochen
RechteEntwicklungsumgebung, Apple-Developer- und Google-Play-Konto
StandOktober 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.

Datei:Xamarin-zu-NET-MAUI.png
Von Xamarin zu .NET MAUI: Aus mehreren Plattformprojekten wird ein Single Project; Renderer werden zu Handlern, Xamarin.Essentials ist integriert, MvvmLight und MessagingCenter werden durch das CommunityToolkit.Mvvm ersetzt.

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

  1. 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).
  2. 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.
  3. Namensräume und APIs anpassen: Xamarin.Forms → Microsoft.Maui.Controls, Xamarin.Essentials → Maui-Namensräume, Device.BeginInvokeOnMainThread → MainThread.BeginInvokeOnMainThread, Farben/Layouts nach Migrationsleitfaden.
  4. Renderer zu Handlern umbauen und plattformspezifischen Code in Platforms/Android bzw. Platforms/iOS verschieben.
  5. MVVM modernisieren: MvvmLight bzw. MessagingCenter durch das CommunityToolkit.Mvvm ersetzen, siehe .NET MAUI: MVVM mit dem CommunityToolkit.Mvvm statt MvvmLight.
  6. 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 publish veröffentlichen.


TippVisual Studio 2026 und Visual Studio 2022 (ab 17.14.16) enthalten den Agenten GitHub Copilot App Modernization, der Migrationen planen und schrittweise durchführen kann. Er ersetzt den eingestellten .NET Upgrade Assistant. Das Ergebnis immer per Code-Review prüfen.

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 Release eine 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.json festgelegt, 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

Links und Quellen


Ü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? Kontakt aufnehmen