.NET MAUI is the Future of Xamarin.Forms

Posted on May 20, 2020 by Paul Thurrott in Dev, Mobile with 1 Comment

At its Build 2002 virtual conference this week, Microsoft announced how it will evolve its Xamarin.Forms cross-platform developer framework that will target Windows 10, macOS, Android, and iOS/iPadOS.

“With .NET 5 we begin our journey of unifying the .NET platform, bringing .NET Core and Mono/Xamarin together in one base class library and SDK,” Microsoft’s Scott Hunter announced. “As we consider what building device applications will look like in a unified .NET, we see many devices across multiple platforms used, from Android and iOS to Windows and macOS. To address this need we are excited to announce a new first-class UI framework for doing just that: .NET Multi-platform App UI, affectionately call .NET MAUI.”

Today, Xamarin.Forms lets you use Visual Studio to create a single solution that targets both Android and iOS using the same codebase (and it originally supported Universal Windows Platform apps that would run on Windows Mobile as well). In the future—possibly in the .NET 6 timeframe, or late 2021—.NET MAUI will support “all modern workloads,” though Linux is interestingly not included in that list. And it appears that it will work similarly, where developers will create a single solution in Visual Studio that can target each of the four supported platforms.

MAUI delivers “one project targeting multiple platforms and devices, one location to manage resources such as fonts and images, and multi-targeting to organize your platform-specific code,” Microsoft says. It will provide modern app development patterns, including Model-View-ViewModel (MVVM) and Model-View-Update (MVU), and developers can choose which style works best for them. Maui will also support migrating from existing Xamarin.Forms codebases.

The first .NET MAUI previews will arrive later in 2020, Microsoft says, and it expects MAUI to hit general availability with .NET 6 in November 2021. Before that, the firm will also ship a major update to Xamarin.Forms, though all modern work will shift to MAUI after that.

The big question here, of course, is how or whether .NET MAUI intersects with Project Reunion and WinUI 3.0. And … that’s not clear yet. I could see them merging in the future, at least optionally, as a truly universal platform of sorts. And such a thing might compete better with Flutter, which is also expanding from its mobile roots to support desktop platforms and the web too.

Tagged with

Join the discussion!


Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Comments (1)

One response to “.NET MAUI is the Future of Xamarin.Forms”

  1. Salvador Jesús Romero Castellano

    With Xamarin you can develop UWP and WPF apps today. With MAUI, WPF will be supported by Microsoft directly, that is, not relying on a community project.

    Intersection with Project Reunion seems a bit more complicated. Xamarin, or MAUI, is not about exposing some API to some platforms: is about a common API that can automatically translate to any platform, and that's kind of a qualitative difference.

    This is a welcomed evolution that I hope will ease the life of those working with Xamarin, and even make the transition easier for developers coming from the web or flutter. I am, though, disappointed that the web backend does not seem to be on development. A member of the Xamarin team told me that it would take a huge effort and that the statistics that they work with show that there is not enough interest to justify it.

    It is useful to have in mind the difference between Flutter and Xamarin. With the later, everything is native. If you put a button in the app, it will be an Android, iOS, UWP button or corresponding in the final implementation. With the former, you'll get a native app where nothing is 'real'. It's just a canvas where you (flutter) draw a button, that you can customize to the running platform or not. It's certainly has its advantages, i.e.: easier to add new target platforms.