.NET MAUI, Replacing Xamarin.Forms

.NET MAUI, Replacing Xamarin.Forms

Microsoft's evolution of Xamarin.Forms, .NET Multi-platform App UI (.NET MAUI), has finally reached General Availability status, providing one framework for both mobile apps and, now, desktop apps.


".NET Multi-platform App UI (.NET MAUI), now generally available, is a new framework for building modern, multi-platform, natively compiled apps for iOS, Android, macOS and Windows using C# and XAML in a single codebase," Microsoft said. "The framework solves the challenges developers face when building native apps across many operating systems. Instead of having to learn multiple technology stacks, .NET MAUI abstracts them into one common framework built on .NET 6."


.NET MAUI promises native UI constructs that look and behave appropriately according to the underlying platform. For the brand-new Windows support, for example, .NET MAUI uses the WinUI 3 native UI components that come with the Windows App SDK (formerly Project Reunion).


As a jack-of-all-trades tool (well, except for Linux and web), .NET MAUI uses native UI via app toolkits provided by each platform, and the dev team ships workloads to create applications that exclusively target Android, Android Wear, CarPlay, iOS, macOS, and tvOS directly using the native toolkits from .NET, and the supporting libraries AndroidX, Facebook, Firebase, Google Play Services and SkiaSharp, for examples.


What's more, .NET MAUI can incorporate web components built with Microsoft's Blazor framework for creating web apps primarily with C# instead of JavaScript. .NET MAUI features the BlazorWebView control, which permits rendering Razor components into an embedded Web View. By using .NET MAUI and Blazor together (Blazor Hybrid apps with .NET MAUI), developers can reuse one set of web UI components across mobile, desktop and web. As shown in the graphic below, .NET MAUI Blazor App is now a Visual Studio 2022 project type.


Also, because Blazor isn't sandboxed like JavaScript web apps, Blazor Hybrid apps allow access to native device capabilities, opening up all kinds of scenarios to work with a machine's file system and other resources, even editing local images and text. Blazor functionality is served up in an embedded Web View, so WebAssembly, the backing technology for client-side Blazor, isn't needed.


"Native apps look and feel like the operating system on which they belong by default and layouts are fully adapted to each device automatically, with no additional code," Microsoft said this week. "APIs are available directly from C# to access over 60 platform features, including isolated storage, sensors, geolocation and camera. Visual Studio 2022 includes Hot Reload technology to make developers much more productive building .NET MAUI apps. Developers can also take advantage of the latest debugging, IntelliSense and testing features of Visual Studio to write better code faster."


New Build your first app documentation is available for .NET MAUI, also detailing how to migrate from Xamarin.Forms.


As a Current release, the .NET MAUI workload is fully supported under that scheme's release schedule of 18 months, and it will be serviced at the same monthly cadence as .NET.


"For the next phase, the foundation is now established for the broader .NET ecosystem to bring plugins, libraries, and services from .NET Framework and the old project system to .NET 6 and SDK style projects," Microsoft said.

Thanks, for reading the blog, I hope it helps you. Please share this link on your social media accounts so that others can read our valuable content. Share your queries with our expert team and get Free Expert Advice for Your Business today.

About Writer

Ravinder Singh

Full Stack Developer
I have 12+ years of experience in commercial software development. I write this blog as a kind of knowledge base for myself. When I read about something interesting or learn anything I will write about it. I think when writing about a topic you concentrate more and therefore have better study results. The second reason why I write this blog is, that I love teaching and I hope that people find their way on here and can benefit from my content.

Hire me on Linkedin

My portfolio

Ravinder Singh Full Stack Developer