Microsoft has unveiled .NET Multi-platform App UI, aka .NET MAUI, a UI framework for building cross-platform applications on Microsoft .NET 6. .NET 6 is due to arrive in a preview in November and become generally available in 2021.
Introduced at the Microsoft Build developer conference on May 19, .NET MAUI is an evolution of the Xamarin.Forms toolkit for building native UIs for Windows, iOS, and Android from a single codebase. MAUI adds MacOS support to the mix. It will also support new devices such as the Microsoft Surface Duo.
.NET MAUI works with the Visual Studio IDE or the Visual Studio Code editor. A single stack supports workloads on the different platforms, with the native features and UI controls of each platform supported via a cross-platform API. A GitHub repo has been set up for .NET MAUI.
Other features of .NET MAUI:
- Project structure is simplified into a single project for multiple platforms, with single-click deployment to desktop systems, emulators, simulators, or physical devices.
- Images, fonts, and translation files can be added to a single project, with native hooks set up automatically. Resources such as fonts and images are housed in one location.
- Access is provided to native, underlying operating system APIs.
- Model-View-View-Model (MVVM) and XAML are first-class features. Developers also can implement the Model-View-Update (MVU) pattern. MVU promotes a one-way flow of data and state management along with a code-first development experience that updates the UI by applying only necessary changes.
To support transition from Xamarin.Forms to .NET MAUI, Microsoft plans to offer try-convert support and migration guides similar to what has been offered for .NET Core.
.NET MAUI will ship in the same six-week cadence as Xamarin.Forms. Xamarin.iOS and Xamarin.Android are set to become part of .NET 6 as .NET for iOS and .NET for Android.