Last update July 30, 2026 by Jonas Richter
Xamarin to .NET MAUI: Status, differences and migration guide
Cross-platform app development has revolutionized the way developers create mobile applications. Advantages and disadvantages as well as popular frameworks were already discussed in the article "Popular Cross-Platform App Development Frameworks".
Xamarin and Xamarin.Forms were Microsoft's earlier C# frameworks for mobile apps. Their support ended on May 1, 2024. .NET MAUI is the supported successor for building Android, iOS, macOS and Windows applications with .NET.
This guide explains the architectural differences, the parts that normally require manual migration and how to validate the result before release.
Check out our Docutain SDK for .NET MAUI
Integrate document scanning, text recognition and data extraction into .NET MAUI apps for Android and iOS. To learn more about the Docutain SDK and its packages, contact us at SDK@Docutain.com.
Architecture and Compatibility
Xamarin
Xamarin used Mono, separate platform projects and native API bindings. Xamarin.Forms added a shared UI abstraction while custom renderers and platform-specific code handled native differences.
.NET MAUI
.NET MAUI evolves Xamarin.Forms into the unified .NET toolchain. A single project can contain shared resources and platform-specific code, while handlers replace the renderer model for customizing native controls. Android and iOS apps still use their native platform APIs underneath.
User Interface and Design
Xamarin
Xamarin.Forms applications commonly use XAML, styles, custom renderers and platform-specific implementations. The amount of custom code varies by app and becomes a key input to migration planning.
.NET MAUI
.NET MAUI continues to support XAML and C# UI definitions. Its handler architecture changes how native controls are customized. The optional Community Toolkit C# Markup package provides fluent helpers; it is not a replacement UI framework. Existing custom renderers may need to be converted to handlers or compatibility renderers.
Performance and App Size
Xamarin
Xamarin app performance depends on startup work, bindings, layouts, native interop, linking and the selected build configuration. A framework label alone is not enough to predict the result.
.NET MAUI
.NET MAUI benefits from the current .NET runtime, build tooling, trimming and platform-specific compilation options. A single-project structure simplifies project organization but does not automatically make every migrated app faster or smaller. Measure release builds on representative physical devices and compare startup time, memory, package size and critical screens.
Ecosystem and Tooling
Xamarin
Xamarin has an established library history, but unsupported framework packages and bindings may no longer receive fixes for new Android and iOS requirements. Inventory every dependency and replace or retarget it during migration.
.NET MAUI
.NET MAUI uses current .NET workloads, NuGet packages and platform SDKs. The unified project structure centralizes shared resources and target settings, while platform-specific build, signing and store requirements remain.
💡 Github Samples
You can see the differences in the coding of the individual platforms very clearly in our Github Samples:
How to migrate Xamarin.Forms to .NET MAUI
Microsoft ended support for Xamarin on May 1, 2024. The final Xamarin releases target older platform toolchains, so continuing without migration increases operating-system, store-submission, dependency and security risk.
.NET MAUI follows the .NET release and support lifecycle. Choose a currently supported .NET version and budget recurring upgrades instead of treating the first migration as the final maintenance task.
Recommended migration sequence
- Inventory target platforms, Xamarin projects, NuGet packages, native bindings, renderers, effects and platform services.
- Update the Xamarin app and dependencies as far as safely possible before changing frameworks.
- Create the .NET MAUI project structure and migrate shared resources, configuration and business logic in controlled steps.
- Replace unsupported dependencies and migrate custom renderers or effects to handlers or supported compatibility paths.
- Review lifecycle, navigation, permissions, notifications, deep links, secure storage, background work, signing and release automation.
- Run functional, accessibility and performance tests on representative physical Android and iOS devices. Use emulators only as a fallback for basic integration tests.
- Release gradually with crash and conversion monitoring plus a rollback plan.
Microsoft provides an Upgrade Assistant and detailed migration documentation. Automation can convert project structure and common APIs, but custom renderers, libraries and platform behavior still require review and testing.
Check out our Docutain SDK
Integrate document scanning and optional text recognition or data extraction into .NET MAUI apps for Android and iOS. Barcode scanning is available as an additional mobile capability. Check our developer documentation or contact us at SDK@Docutain.com.
Overview Xamarin versus .NET MAUI
Xamarin is now a legacy migration scenario, not a competing choice for new development. .NET MAUI is the supported Microsoft path, but the effort depends on the app's dependencies, custom native code and UI architecture. Treat the migration as a product upgrade: define acceptance criteria, validate real-device behavior and plan ongoing .NET lifecycle updates.
Resources for getting started with .NET MAUI
Microsoft provides comprehensive resources to help you get started
You might also be interested in the following articles