Xamarin.Forms to .NET MAUI
Custom renderers become handlers. Navigation, popups, animations and platform code move to their .NET MAUI versions.
We move Xamarin.Forms, Xamarin.iOS, Xamarin.Android and UWP apps to .NET MAUI on .NET 10, including native bindings. Your team keeps shipping features while we do it. Microsoft ended Xamarin support on May 1, 2024.
Three of them have a case further down this page. The fourth is a version upgrade.
Custom renderers become handlers. Navigation, popups, animations and platform code move to their .NET MAUI versions.
A UWP app, and any separate iOS app, becomes one .NET MAUI codebase for Windows, iOS and Android. Read how we did it for NorthStar.
Xamarin binding projects must move to .NET binding projects. If the binding code is lost, we rebuild it from the vendor's files.
.NET MAUI 8 support ended May 14, 2025, and .NET MAUI 9 support ended May 12, 2026. .NET 8 and .NET 9 support ends November 10, 2026. On a field-service platform, the .NET 8 to .NET 9 upgrade merged 8 days after its first commit. The .NET 9 to .NET 10 upgrade merged 4 days after its first commit, while feature work kept merging. Slow after the upgrade? See our .NET MAUI startup and UI freeze work.
NorthStar's Order Entry is a restaurant POS. It was two codebases: a UWP app for Windows and a separate iOS app. We moved Order Entry to one .NET MAUI codebase on .NET 10 that builds for iOS, Android and Windows.
The migration took about 8 months, from late August 2025 to early May 2026. It ran in three phases: foundation, screen migration, then stabilization on all three platforms.
NorthStar kept adding features to the UWP app during the migration. So we kept view models close to the UWP originals, and new UWP features could be ported. About 85% of the view models were reused instead of rewritten.
The UWP app hosted a Frame inside a main page. That page also held toasts and the auto-logoff timer. Instead of redesigning navigation, we built a navigation layer that keeps that Frame behavior inside .NET MAUI.
At NorthStar's request, we added AutomationIds across the app's XAML screens, so their team can build automated UI tests. After delivery, NorthStar kept a Lemon Labs developer on for support and bug fixes.
Have a UWP or Xamarin app like this one? Ask us to plan your migration. The assessment is fixed scope and ends with a written plan.
A UWP POS with a separate iOS app, a Xamarin.Forms app with custom renderers, and one whose binding code was lost.
NorthStar's Order Entry was two apps: UWP on Windows and a separate iOS app. We moved it to one .NET MAUI codebase on .NET 10 that builds for iOS, Android and Windows. Their team kept adding UWP features the whole time, so we kept view models close to the originals.
For UXDivers, a design and development partner, we moved a student rewards app from Xamarin.Forms to .NET MAUI. FreshMvvm tabs became .NET MAUI Shell and popups moved to Mopups. Custom renderers, animations, beacons and push notifications moved over too.
Google Play blocked an older Xamarin.Forms app for using old SDKs. We moved it to .NET MAUI and rebuilt its iOS and Android bindings for a third-party SDK, because the original binding code was lost. The release build was ready on May 18, 2026.
Have an app like these? The assessment ends with a written migration plan.
Plan my migrationOur Xamarin to .NET MAUI migration services start with an assessment, not a price list. We don't publish prices or generic week ranges. The assessment looks at your app and ends with a written plan.
The UXDivers student rewards app took about 9 weeks, from October 7 to December 10, 2024. NorthStar took about 8 months, with 143 UI items in scope: 18 pages, 47 views and 78 dialogs.
Can't ship store updates right now? Start with our help for Xamarin apps blocked by Google Play and App Store deadlines. For vendor SDKs, see our Android and iOS binding libraries for .NET MAUI. For payment terminals, receipt printers and scanners, see POS apps in .NET MAUI. All our services are on the .NET MAUI experts home page.
Av. de los Diamantes 53–9
Residencial Esmeralda Nte.
28017 Colima, Colima, México