Welcome to the Sands of MAUI—newsletter-style issues dedicated to bringing together the 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 looking forward to .NET Multi-platform App UI (MAUI)—the evolution of Xamarin.Forms with .NET 6. Going forward, developers should have much more confidence in the technology stack and tools as .NET MAUI empowers native cross-platform solutions on mobile and desktop.
While it is a long flight until we reach the sands of MAUI, developer excitement is palpable in all the news/content as we tinker and prepare for .NET MAUI. Like the grains of sand, every piece of news/article/video/tutorial/stream contributes towards developer knowledge and we grow a community/ecosystem willing to learn and 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 December 20, 2021:
The next iteration of .NET MAUI aka Preview 11 is now out. As Jonathan Dick pointed out, this release was a little unceremonious—.NET MAUI updates are now being aligned concurrently with Visual Studio 2022 and the next release of VS 2022 17.1 Preview 2 is being held back a little.
The .NET MAUI Preview 11 bits are available irrespective of VS 2022 though—available through CLI and .NET Workload update. Highlights of Preview 11 include Multi-window implementation across platforms, Fluent Design System styling on Windows, updated Templates, C# 10 support and iOS type alignment with .NET 6. Go get the hot bits developers!
The latest .NET Docs show was hosted by Maira Wenzel, Cecil Phillip and David Pine, with an over-enthusiastic .NET MAUI aficianado. On the cards was talking about migrations and modernization with .NET MAUI—something top of mind for many developers/enterprises with .NET 6 carrying the LTS badge.
The show started with differences between Xamarin.Forms and .NET MAUI and how to move apps over with considerations for Custom Renderers/Handlers. Any modernization discussion with .NET MAUI has to bring in code sharing with web apps—Blazor is very welcome in .NET MAUI, but the WebView approach also means investments in JS SPA frameworks can now coexist with .NET.
.NET MAUI provides wonderful set of abstractions to reach mobile/desktop platforms from a truly single code base—there is plumbing to make sure native UI is rendered on each corresponding platform. However, developers may have a need to dive into native land for customizations/per platform behaviors and .NET MAUI does not get in the way.
Gerald Versluis produced a video on how to write platform-specific code in .NET MAUI—leveraging the multi-targeting approach in .NET MAUI single project. Gerald starts with the basics of platform-specific code in .NET MAUI, shows example of creating partial classes in shared code and demonstrates platform specific implementations for iOS/Android—this is a great resource for developers to understand the abstractions and go under the native covers when needed.
Imagery makes mobile apps engaging, but dealing with images often comes with development considerations and optimizations. James Montemagno produced a video about Image Caching in Xamarin.Forms and .NET MAUI—this is a must-watch for developers seeking fine grained control over how images are handled in apps.
There are some wonderful libraries like FFImageLoading and Nuke that help with image caching in Xamarin.Forms, but the built-in platform support isn't shabby either. Xamarin.Forms and .NET MAUI can automatically download and cache images for a full 24 hours—developers have control over how long to cache and to manually refresh the image caches. Image management can be tricky and these are handy tips for today in Xamarin.Forms and tomorrow in .NET MAUI.
Interested in trying the Model View Update (MVU) design pattern with .NET MAUI? James Clancey and gang have you covered with Comet—an experimental framework that lets you write simple MVU-style C# code to describe/drive visual tree with data binding and state updates.
Forever the tinkerer, James put out a fully-interactive scrollable Image Picker for Comet—works across platforms as well. Short concise C# code from an expert is sometimes indistinguishable from magic—the future is good with this kind of flexibility on top of .NET MAUI.
That's it for now.
We will take a two-week break, and we'll see you next year with more awesome content relevant to .NET MAUI.
Cheers, developers!
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.