Telerik blogs

Welcome to the Sands of MAUI—newsletter style issues dedicated to bringing together latest .NET MAUI content relevant to developers.

A particle of sand—tiny and innocuous. But put a lot of sand particles together and we have something big—a force to reckon with. It is the smallest grains of sand that often add up to form massive beaches, dunes and deserts.

Most .NET developers are excited with .NET Multi-platform App UI (MAUI)—the evolution of modern .NET cross-platform developer experience. Going forward, developers should have much more confidence in the technology stack and tools as .NET MAUI empowers native cross-platform solutions on both mobile and desktop.

While it may take a long flight to reach the sands of MAUI island, developer excitement around .NET MAUI is quite palpable in all the shared content. Like the grains of sand, every piece of news/article/documentation/video/tutorial/livestream contributes towards developer knowledge in .NET MAUI and we grow a community/ecosystem willing to learn & help.

Sands of MAUI is a humble attempt to collect all the .NET MAUI awesomeness in one place. Here's what is noteworthy for the week of November 28, 2022:

.NET MAUI for Native Apps

The promise of .NET MAUI is simple—enable developers to build native, cross-platform desktop/mobile apps all on one framework and from a shared codebase. While .NET MAUI can be nuanced and enable code sharing with web technologies, the core premise of using .NET to build solid native apps has not changed. David Ortinau wrote up an epic article to drive home the point—using .NET MAUI to build native no-compromise apps.

David started out with a bigger picture of unified .NET and with the big .NET MAUI pitch: If you are a .NET developer, then you are already a .NET MAUI developer. Today's .NET MAUI, tooling and bigger ecosystem aims to inspire developer confidence in building top notch mobile and desktop apps—that just happen to be cross-platform.

David showcased how .NET MAUI allows developers to share resources/styles across platforms and how the frameworks caters to mobile/desktop experiences with easy platform API access. .NET MAUI tooling on both Windows and macOS is all grown up now, with features like XAML and .NET Hot Reload, Live Preview and Live Visual Tree keeping developers productive. This is just the beginning though—.NET MAUI should inspire developers to go native on mobile/desktop with cross-platform .NET solutions for years to come—cheers to that.

.NET MAUI in Visual Studio for Mac

.NET MAUI is the next generation of cross-platform application development stack with modern .NET and aims to be platform-agnostic as to how developers are building the apps. The reality, however, has been that .NET MAUI tooling for developers on Windows has been somewhat better than that on macOS, mostly because Visual Studio for Mac went through a big UI overhaul.

All that changes with the latest release of Visual Studio for Mac 17.4 and Bilge Zeren Aksu wrote up the announcement—stable .NET MAUI tooling is now generally available in Visual Studio for Mac.

.NET MAUI enables developers to have a true single shared project that caters to iOS, Android, Windows and macOS—all doable now from stable Visual Studio for Mac. .NET MAUI developers on macOS now have the ease of a single optimized development experience from shared project with full fidelity debugging on iOS, Android and MacCatalyst.

Developer productivity tooling like XAML Hot Reload and Live Visual Tree should all light up on Visual Studio for Mac, along with support for .NET 7 runtime and XCode 14. No longer preview bits—life is good for .NET MAUI developers on fruity hardware.

.NET 7 Features

The next evolution of .NET aka .NET 7 is here and ready for developers to build production apps. There are tons of features in .NET 7 to support modern apps and workflows, like .NET MAUI, Containerization, Cloud Native, Performance improvements, ARM 64 support and much more. It might seem overwhelming to get a grasp on all the new cool things in .NET 7, but James Montemagno is here to help with a recently produced video on seven awesome new features in .NET 7.

If anybody was on the fence about upgrading to .NET 7, James makes a strong case—just the plethora of performance improvements in .NET 7 and .NET MAUI should make things worth it. While client apps are hot, web apps are ubiquitous and .NET 7 has a ton of updates to better serve .NET web developers—James talks up Rate Limiting and Input Caching in ASP.NET Core, in addition to Minimal API improvements. Core of .NET gets a decent share of love with .NET SDK Container support and Native AOT, with programming language aficionados well served with C# 11 and F# 7 features.

And finally, .NET MAUI is all grown up in .NET 7, reaching mobile and desktop from a single shared codebase, and with polished developer tooling. .NET 7 is plenty exciting and James showcases a lot of .NET 7 features that make it enticing to upgrade apps/developer experiences to .NET 7.

Xamarin to .NET MAUI

With .NET 7 out in all its glory, many developers may now be thinking of moving to .NET MAUI to go cross-platform. There was no dearth of .NET MAUI love at the recent .NET Conf and Sweekriti Satpathy did one of the most relevant sessions—a defacto guide on how to move apps/libraries from Xamarin world over to .NET MAUI.

Sweeky started off laying the foundation with .NET MAUI ecosystem and showcasing the benefits developers have to gain when they migrate to .NET MAUI. With Xamarin support stretching till May 2024, there may not be a huge rush to migrate, but developers should start thinking now and take note of where things stand in their code base.

Sweeky talked about the differences between Xamarin.Forms and .NET MAUI projects, and how to tackle tricky NuGet/API dependencies or complex Custom Renderers. Sweeky showed off several strategies of migrating apps over to .NET MAUI and encouraged using .NET Upgrade Assistant tool. Bottom line, there is help and guidance to move from Xamarin to .NET MAUI, as long as developers don't forget to breathe.

MAUI App Accelerator

With increasing number of developers getting on board .NET MAUI, the ecosystem is growing and as are the variety of tools/patterns/features/libraries that help. Developers kickstarting their next cross-platform .NET MAUI project should get off on a solid starting point, have requisite tools at their disposal and set up for success with appropriate coding patterns. Matt Lacey can help with a wonderful new Visual Studio extension—say hello to the MAUI App Accelerator.

The MAUI App Accelerator is squarely meant to augment the 'File > New Project' experience for .NET MAUI developers and cater tools/patterns to individual developer preferences. After installing the VS Extension, developers can choose the MAUI App Accelerator template for a wizard-based UI to set up the new .NET MAUI project—the identifier for MAUI App Accelerator is an adorable goat. Once picked, the MAUI App Accelerator wizard kicks in and helps developers create the exact .NET MAUI starting point desired—choices include .NET runtimes, coding style, navigation patterns, pages and app features.

Borrowing strength from available Toolkits, the MAUI App Accelerator puts developers in control with choices in every step of the way as to how the visual tree is to described, what layouts are preferred and the types of pages desired in the .NET MAUI app. The MAUI App Accelerator is here to help kickstart your next .NET MAUI app right—thanks Matt.

That's it for now.

We'll see you next week with more awesome content relevant to .NET MAUI.

Cheers, developers!

About the Author

Sam Basu

Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget-lover and Progress Developer Advocate for Telerik products. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik technology stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family. You can find him on the internet.

Related Posts


Comments are disabled in preview mode.