colima_mx · --:--:-- UTC−6 services / xamarin-to-maui-migration

Xamarin and UWP to .NET MAUI, while you keep shipping.

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.

85% view models reused in
NorthStar's UWP migration
~9 weeks Xamarin.Forms app
to .NET MAUI
01 / What we migrate // migrations

Four kinds of apps we move to .NET MAUI.

Three of them have a case further down this page. The fourth is a version upgrade.

01 / Service

Xamarin.Forms to .NET MAUI

Custom renderers become handlers. Navigation, popups, animations and platform code move to their .NET MAUI versions.

Xamarin.FormsShellHandlers
02 / Service

UWP to .NET MAUI

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.

UWPWindowsiOS + Android
03 / Service

Native bindings and SDKs

Xamarin binding projects must move to .NET binding projects. If the binding code is lost, we rebuild it from the vendor's files.

Android AARiOS xcframeworkP/Invoke
04 / Service

.NET 8 and .NET 9 apps to .NET 10

.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.

.NET 8.NET 9.NET 10
02 / UWP migration // uwp-to-maui

UWP to .NET MAUI migration, from two apps to one codebase.

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.

Feature work kept going

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.

UWP navigation, kept inside .NET MAUI

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.

Ready for their UI tests

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.

03 / Selected work // migration-cases

Three migrations, three different starting points.

A UWP POS with a separate iOS app, a Xamarin.Forms app with custom renderers, and one whose binding code was lost.

01 2025–2026
NorthStar · Restaurant POS · UWP migration

A UWP restaurant POS and its iOS app, moved to one .NET MAUI codebase.

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.

2 apps
one .NET MAUI codebase
85%
view models reused
~8 months
migration, three phases
.NET MAUI.NET 10C#UWP migration
02 2024
UXDivers · Xamarin.Forms migration · Design partner

A student rewards app moved from Xamarin.Forms to .NET MAUI in about 9 weeks.

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.

~9 weeks
Oct 7 to Dec 10, 2024
FreshMvvm → Shell
navigation
Beacons + push
moved to .NET MAUI
.NET MAUIShellMopupsShiny
03 2026
Public-sector app · Store block · Native bindings

A Xamarin.Forms app blocked by Google Play, rebuilt with new native bindings.

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.

Xamarin.Forms → MAUI
migration
iOS + Android
bindings rebuilt from scratch
May 2026
release build ready
.NET MAUIC#Native bindingsGoogle Play

Have an app like these? The assessment ends with a written migration plan.

Plan my migration
04 / Time and cost // estimates

How long a migration takes and what drives the cost.

Our 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.

What drives Xamarin migration cost

  • How many screens and dialogs the app has.
  • Custom renderers to move to handlers.
  • Native bindings, especially when the binding code is lost.
  • New platforms, like adding Android or Windows to an iOS app.
  • Feature work that keeps landing in the old app.
  • Tests. Without them, we check more by hand on devices.

How long a Xamarin to .NET MAUI migration takes

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.

Store deadlines, SDKs and POS apps

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.

05 / Process // how-we-migrate

From assessment to the stores, in four steps.

01 ───

Migration assessment

A fixed-scope look at your Xamarin, UWP or .NET 8 app. It ends with a written migration plan.
Start here
02 ───

Phased plan

We split the work into phases you can review, like NorthStar's foundation, screen migration and stabilization.
Phases
03 ───

Migrate while you keep shipping

Your team keeps releasing the current app. We keep view models close to the originals, so new features can be ported.
Side by side
04 ───

Test on devices and release

We test release builds on physical devices, then roll out to the App Store, Google Play and Windows.
Release
06 / Voices // partner-quote

What a partner says about our .NET MAUI work.

Lemon Labs is a passionate team: their problem-solving and communication skills are excellent. They complete tasks on time with a high degree of quality. I would recommend them to anyone who is looking for .NET MAUI or cross-platform development support.
Josh Smith
Josh Smith Founder & CTO
07 / FAQ // migration-answers

Questions about Xamarin and UWP migration.

Q.01

It depends on screens and dialogs, custom renderers, native bindings, platforms, and feature work that continues during the move. We don't publish prices. Our fixed-scope migration assessment ends with a written plan for your app.
Q.02

Two real examples: a Xamarin.Forms student rewards app took about 9 weeks. NorthStar's UWP and iOS apps took about 8 months to become one .NET MAUI codebase, with 143 UI items in scope. Your own timeline comes out of the assessment.
Q.03

NorthStar didn't. Their team kept adding features to the UWP app during the migration. We kept view models close to the UWP originals, so those features could be ported to .NET MAUI.
Q.04

Yes. NorthStar's UWP app and its separate iOS app became one .NET MAUI codebase that builds for iOS, Android and Windows.
Q.05

They move to .NET binding projects, with an SDK-style project, new build actions and often a newer native SDK. If the binding code is lost, we rebuild it from the vendor's files. See our native SDK binding services for .NET MAUI.
Q.06

Xamarin support ended on May 1, 2024. Its last targets are Android API 34 and Xcode 15, and both stores now require newer ones. Read what to do when a Xamarin app can't update on Google Play or the App Store.
// 08 plan-your-migration

Tell us about the
app you need to move.

Plan my migration
// reach-us
contact@lemonlabs.mx +1 (779) 232-9848

Av. de los Diamantes 53–9
Residencial Esmeralda Nte.
28017 Colima, Colima, México