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 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 February 27, 2023:
.NET a powerful modern open source development stack for building apps that run on wide variety of platforms—.NET is loved and trusted by millions of developers all around the world. The next milestone in .NET's journey is coming up next—.NET 8 is in the horizon for release in November of 2023. This means its time to get started and Jeremy Likness wrote up the announcement—.NET 8 Preview 1 is now out for Windows, macOS and Linux.
.NET 8 would be a big release with Long Term Support (LTS) badge—developers can expect the usual monthly preview/release candidate builds leading up to the final release in November. Releases of .NET include products, libraries, runtime and tooling, and represent collaboration across multiple teams inside/outside of Microsoft.
The blog post covered some broad themes developers can expect in .NET 8—there are enhancements everywhere in ASP.NET, Blazor, .NET MAUI, EF, WinForms, WPF, Roslyn and more. .NET MAUI developers can expect more product/tooling maturity with .NET 8, as well as updates to the Blazor Hybrid story—good times ahead.
Alongside a brand new .NET runtime in .NET 8 Preview 1, there is good news for .NET developers on the tooling front as well—a new Preview version of Visual Studio is also out. This update has special connotations for .NET developers on Windows ARM processor devices—the much-awaited .NET MAUI support is here.
As David Ortinau pointed out, developers using Visual Studio on Windows ARM64 devices now have support for .NET MAUI in Visual Studio 17.6 Preview 1.
.NET MAUI support on Windows ARM devices also means a sweet perk for .NET developers on both Windows and macOS. Folks on Windows can ditch X86 Intel machines for usually lighter cheaper ARM based machines—.NET MAUI workloads, tools and apps would just work. Also, a fair percentage of .NET MAUI developers are likely using macOS as their main development machine—iOS, Android and MacCatalyst development makes a lot of sense on Macs.
To run Windows hosted on macOS, many developers use virtual machine solutions like Parallels or VMWare. Apple's latest computers run on M1/M2 ARM chips and developers running Windows virtual machine on such computers can feel the love—Visual Studio 17.6 Preview 1 now includes support for building/running .NET MAUI apps on Windows.
New to developing apps with .NET MAUI and want to learn some quick tricks? While documentation is always the source of truth, developers may miss real-world nuances—the "how do I do this?"" type of knowledge.
Leomaris Reyes is looking to make learning fun with short .NET MAUI learning challenges—the fifth and final challenge is all about the Barcode component in Telerik UI for .NET MAUI.
The goal with the .NET MAUI challenges is to focus on simple but specific important topics—developers will only need a few minutes to learn something new. Each challenge has a statement to tickle developer brains, followed by a few options for the correct solution and study resources to delve deeper into the topic.
For the fifth .NET MAUI challenge, Leomaris brings up using the popular Barcode component in Telerik UI for .NET MAUI. The Telerik Barcode UI generates/visualizes variety of machine-readable barcodes—the challenge needs developers to know which type of barcode, amongst three options, would be rendered with a specified symbology. Go ahead, .NET MAUI developers—challenge yourself and learn to dig a little deeper.
ASP.NET and Blazor provide .NET developers with a solid foundation and top notch tooling to build modern web apps for any platform—and as with .NET MAUI, the web and native platform worlds are ever so close to each other. Developers get to bring web goodness inside native .NET MAUI apps and share code/UI/styles.
With .NET 8 on the horizon, there are broad investments being made across ASP.NET Core and Daniel Roth wrote up the announcement—ASP.NET Core updates in .NET 8 Preview 1.
For ASP.NET, MVC and Razor Pages encourage server-side rendering (SSR) to dynamically generate HTML from the server in response to requests. Blazor, on the other hand, leans towards client-side rendering (CSR) for rich interactivity with low latency and taps into client capabilities. Many modern web apps might need to use a combination of these approaches—meet Blazor United in .NET 8.
Blazor United will enable developers to use a single Blazor-based architecture for server-side rendering and full client-side interactivity, from a single project with easy switching between different rendering modes. There are loads of other enhancements in the works, like improved authentication/authorization experience, native AOT, route tooling, Hot Reload, improved debugging and a lot more. Exciting times ahead for Blazor developers, with benefits reaching into native apps built with Blazor and .NET MAUI.
.NET MAUI and Blazor share the same .NET runtime and enable code sharing between web/native projects—a modern WebView renders Blazor web UI content/styles for native mobile/desktop apps. However, Blazor or any other web UI when rendered inside .NET MAUI apps should not have the exact same behavior as in a web browser—the user experience demands are different.
After talking about how Blazor UI should be fine-tuned for mobile form factors, MH Rastegari is back with another wonderful article—best practices with .NET MAUI Blazor on desktop.
Some default web browser behaviors like refreshing with F5 key, zooming with mouse wheel or context menus may be undesirable when Blazor is powering desktop experiences—MH starts out with how developers can disable such defaults tapping into the BlazorWebView's Handler.
Next up comes a bunch of cool little HTML/CSS tricks to fine tune desktop experiences powered with web UI—like disabling dragging images/selecting texts, changing mouse cursor, changing hover/active effects and optimizing the window size for best possible user experience. Both set of best practices for Blazor UI powering mobile and desktop experiences now live in the same open source project—kudos MH Rastegari.
That's it for now.
We'll see you next week 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.