Migrating Xamarin.Forms Apps to .NET MAUI: What You Should Know?

Xamarin.Forms app

The technology involves every second. At times, solutions that are trending today may become obsolete tomorrow. If you want to stay on the top, it is essential to incorporate cutting-edge tools and technologies. 

A plenty of businesses are eagerly waiting to migrate their Xamarin.Forms apps to .NET MAUI. Xamarin is already a leading cross-platform framework that builds Native-like applications. What difference .Net MAUI could make? Do not worry! Our top Xamarin app developers are here to clear your doubts. Let us get started. 

  • What is .NET MAUI?

    .NET MAUI or Multi-platform App UI is a cross-platform framework created by Microsoft. It allows developers to create native and desktop applications using #C and XAML. However, this framework is not yet ready for commercial use. Businesses can access it in early 2022. Here are a few highlights you should know about .NET MAUI.

    • Microsoft launched a .NET Upgrade Assistant tool to ensure hassle-free migration of Xamarin.Forms apps to .NET MAUI. 
    • It helps in registering compatibility services or renderers. 
    • Upgrade dependencies compatible with .NET 6 and .NET MAUI. 
    • You can build and fix any issues with .NET MAUI. 
    • NET MAUI improves the position of Microsoft among the top hybrid app development tools. Additionally, it helps Xamarin gain an edge over other frameworks like React Native and Flutter. 

Are you wondering how to migrate a Xamarin.Forms app to .NET MAUI? If so, you have hit the right page. Below, our Xamarin app developers will explain everything you need to know about migration.

  • A step-by-step guide to migrate a Xamarin.Forms app to .NET MAUI

  1. Create a solid plan
    The success of any mobile app depends on your planning and research. So, make sure you get it done right. The planning involves understanding Xamarin and other essentials. 
    • What is Xamarin.Forms and Xamarin Native? – Xamarin Native apps are the same as any other Native iOS and Android applications. When it comes to MAUI, it allows communication with each Native platform. If you have built an application using Xamarin Native, there is no need to migrate to MAUI. All you need to do is update it to .NET 6. 
      However, to switch your Xamarin Native app to .NET MAUI, migrate Native UI to Xamarin.Forms, followed by .NET MAUI. 
    • Understand your project dependencies – Every application has external dependencies. They can potentially affect the performance of your app. As a result, it delays your migration process. For this reason, you should evaluate the third-party libraries of your app and determine any dependencies. 
    • Look for plug-in alternatives – If your current plug-ins do not support .NET 6 and .NET MAUI, find other options. You can replace an outdated plug-in, build a new one, or temporarily disable an incompatible plug-in. 
    • Remove obsolete Xamarin tools – Make sure your Xamarin app does not use outdated APIs, like Xamarin.Forms.Themes packages or Xamarin.Forms.Datapages. It is because .NET MAUI is upgraded. So, it will deprecate some APIs. 
  2. Set up Xamarin.Forms migration
    Follow these Microsoft recommended steps to set up the process of Xamarin.Forms migration. 
    • Firstly, create a new .NET MAUI app using this command: dotnet new maui -n IhaveitTotemMaui. 
    • The next step is moving all the files from Xamarin.Forms to a new app project. 
    • Depending on the platform you are targeting, run any of the following commands: 

      dotnet build IhaveitTotemMaui -t:Run -f net6.0-android

      dotnet build IhaveitTotemMaui -t:Run -f net6.0-ios

  3. Review the app
    The next step is reviewing the entire app. For example, you need to check if the layout of each screen is as per the requirements. If it is not what is expected, you can make the necessary changes or fix the bugs. Here are the things you need to consider when evaluating your app. 
    • Watch out for any updates related to controls and layouts because they may cause unexpected problems. Xamarin.FormsRelativeLayout layout class may not work in .NET MAUI. 
    • Do not forget to check mechanisms that aid in composing pages such as Triggers, Effects, Behaviors, Converters, and Custom Renderers. 
    • It is not essential to change Handlers and Dependency Injection when migrating Xamarin.Forms apps to .NET MAUI. But have a look at them to ensure faster performance. 
  4. Restore the Native platform difference
    Once updating the files and checking the app, it is time to restore the Native platform differences. We know the .NET MAUI app has a single project, so how can we make it possible? Our experienced and skilled Xamarin app developers can make it happen. Keep reading below. 

    For this, we need to make the following changes in the .csproj file. 
    • In Xamain.Forms app, the Icons, Fonts, and ScreenSplash are configured in each platform. But in .NET MAUI, you need to configure them all in a single project file – .csproj. 

      <ItemGroup>
      <!-- App Icon -->
      <MauiImage Include="Resources\appicon.svg" ForegroundFile="Resources\icon.png" IsAppIcon="true" Color="#512BD4" />
      <!-- Splash Screen -->
      <MauiSplashScreen Include="Resources\appiconfg.svg" Color="#512BD4" />
      <!-- Images -->
      <MauiImage Include="Resources\Images\*" />
      <!-- Custom Fonts -->
      <MauiFont Include="Resources\Fonts\*" />
      </ItemGroup>


    • Also, the app name, app identifier, and app version are set in a different platform in Xamarin.Forms app. Again, the .NET MAUI will streamline them in a single project file. 

      <!-- Display name -->
      <ApplicationTitle>IhaveitTotemMaui</ApplicationTitle>

      <!-- App Identifier -->
      <ApplicationId>com.companyname.IhaveitTotemMaui</ApplicationId>

      <!-- Versions -->
      <ApplicationVersion>1.0</ApplicationVersion
      >

In closing 

You just learned how to migrate a Xamarin.Forms app to .NET MAUI. However, the migration of commercial Xamarin.Forms apps is not available yet. Microsoft is working on .NET MAUI and releases previews each month. Also, it is advisable not to migrate the entire codebase of your Xamarin.Forms at once. Make sure you do it step-by-step.

If you want to build a dynamic application with Xamarin or know more about migration, hire Xamarin app developers at SoftProdigy. Our professionals have years of experience in delivering top-notch services.


FAQs

1. Is Xamarin similar to Xamarin.Forms?

No, these are two different technologies. When it comes to Xamarin, it is a platform. On the contrary, Xamarin.Forms is a feature.

2. What are the alternatives to Xamarin.Forms? 

Xamarin is a robust tool that builds cross-platform web applications. However, it may not be a suitable option for all projects. Therefore, we have several alternatives, including Ionic, React Native, Flutter, NativeScript, PhoneGap, etc.

3. Why migrate from Xamarin.Forms to .NET MAUI?

Xamarin indeed is a powerful tool that ensures cross-platform development. But migrating from Xamarin.Forms to .NET MAUI may help your Xamarin application to compete with React Native and Flutter. Besides this, it can improve the position of Microsoft among cross-platform development tools.  

4. Will .NET MAUI replace Xamarin permanently?

According to Microsoft, they will stop updating Xamarin by November 2022 and will use .NET MAUI only. 

5. Is .NET MAUI available for businesses? 

Not yet! .Net MAUI is not currently available for commercial purposes. However, businesses can access this tool in early 2022. 

6. Do I need to rewrite my entire Xamarin.Form app for migration?

Moving applications from Xamarin.Forms to .Net MAUI does not require rewriting the entire codebase. But your developer has to undertake a few code changes.