BT

InfoQ Homepage News MAUI: a Multi-Platform App UI for .NET

MAUI: a Multi-Platform App UI for .NET

This item in japanese

Bookmarks

Last month, during the 2020 edition of Build, Microsoft announced the roadmap for .NET MAUI, a multi-platform framework for building native device applications. The new framework comes as an evolution of Xamarin.Forms, providing native features for Android, iOS, macOS, and Windows.

MAUI is part of Microsoft's recent efforts towards unifying the .NET platform. According to Scott Hunter, director of program management at Microsoft:

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 called .NET MAUI.

.NET MAUI is an evolution of the Xamarin.Forms toolkit, aimed at improving app performance and simplifying multi-platform app development. The framework will provide a single codebase with built-in resources to access the native API for all modern operating systems (Android, iOS, macOS, Windows). Developers will be able to develop multi-platform applications under a single project structure, adding different resources or source code files for different platforms when necessary.

(source: Microsoft)

Although the evolutionary changes over Xamarin.Forms (reportedly based on early customer research) are yet to be consolidated, a few key features are already confirmed. One of the most relevant ones is related to app development patterns: MAUI will support Model-View-View-Model (MVVM, including ReactiveUI) and Model-View-Update (MVU, currently not supported by Xamarin.Forms). There is also a significant change related to the renderers: instead of being tightly coupled to BindableObject, they will be loosely coupled, with no Core dependencies. A dotnet CLI is also included in the initial features list, as well as support for Blazor applications and specific tools for Visual Studio Code (currently Xamarin.Forms only have specific tools for Visual Studio 2019 and Visual Studio 2019 for Mac).

.NET MAUI is not the first framework built over Xamarin with native intercompatibility in mind. Uno Platform (built on top of the Xamarin Native stack) follows the same philosophy, allowing native development for mobile and desktop platforms. While its key features list is pretty similar to MAUI's, there is a critical difference between the two of them: Uno explicitly supports browser apps under a single codebase (with WebAssembly). Since MAUI features include Blazor support, it is expected that both SignalR and WebAssembly Blazor apps will be supported. However, it is important to notice that the current (experimental) mobile bindings for Blazor use a set of UI definitions based on the Razor syntax - not HTML. That means there are two sets of UI component definitions for Blazor: one targeting web apps, and another one targeting mobile apps. There are currently no mentions related to explicit support for web apps in MAUI's roadmap.

The first public preview for MAUI is expected later this year, with general availability targeted together with .NET 6 (November 2021). Xamarin.Forms transition to .NET MAUI will begin in September, right after the release of version 5.0. In the meantime, it is already possible to engage in conversations, give feedback, and contribute to the MAUI project through GitHub.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • What does MAUI support for Blazor mean?

    by Jason Steele /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I can't work out what MAUI is bringing to Blazor if Blazor will be sticking with the razor bindings? Surely MAUI is all bout the XAML and binding to it?

  • Re: What does MAUI support for Blazor mean?

    by Dzmitry Lahoda /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Blazor is for web forms developers. Maui is for wpf and uwp developers.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.