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 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 January 17, 2022:

All Things .NET MAUI

Want to know everything changing with .NET MAUI? Damien Doumer has written arguably the most comprehensive introduction to .NET MAUI—this is a great starting point for anyone wanting to dive in. Damien methodically makes a strong case for .NET MAUI over other cross-platform frameworks and moves on to showcase exactly how .NET MAUI makes developers more productive.

The article effortlessly tackles simple and complex concepts to bring home the .NET MAUI benefits—like platform abstractions, true single project, Handlers, Drawn controls and more. With ease of migration and modernization options across mobile/desktop, the writeup concludes why .NET developers are looking forward to .NET MAUI.


MVU With Comet

.NET MAUI widens to funnel to invite more developers to the .NET cross-platform space and aims to provide flexibility in UI stack or preferred design patterns. Want to tinker with Model View Update (MVU) pattern on top of .NET MAUI? The experimental Comet UI framework has you covered—a modern MVU-style way of building cross-platform apps entirely with C# and .NET MAUI.

Gerald Versluis produced a video on all things Comet to pull off MVU with .NET MAUI—this is a wonderful starting point. As is the norm, Gerald is thorough, starting from explaining the MVU pattern on .NET MAUI to getting started guidelines with Comet.

Gerald showcases the developer experience in installing Comet template, creating new projects, working with VS Code Extension, Hot Reload support and deployments to simulators—the kitchen sink of everything developers need to know to get started doing MVU on .NET MAUI with Comet.


Comet State Management

Got started building with straight up C# with Comet and .NET MAUI? The core concept you would want to grasp is managing application state—this is key in how the Update loop works in MVU design pattern.

David Ortinau wrote up an article on managing state with Comet—a definitive guide to understanding how to define/modify state while binding to UI.

Each View in Comet will have its own state and it is easy to declare the models needed for each View through State or extending the BindingObject. Once defined, any changes in state are picked up automatically in UI through the MVU update loop aka the Body()—David explains all the nuances and how to get started working with state management with Comet on top of .NET MAUI.


Grid Simplicity

With much of the work in .NET MAUI already done for C#/XAML developers, it is good to see Comet/MVU getting some love now. Grids are a staple visual layout for most XAML developers, but let's face it—it takes some work. Every row and column content has to be meticulously defined in the XAML markup to fill up the Grid—any numbering errors result in the visual tree falling apart.

While most developers grumble, James Clancey can do something about it—introducing VGrid/HGrid for Comet. Defined entirely in C# for MVU pattern, the new vertical/horizontal Grids are simple and lay down responsive UI logically within their container—no longer would it be a nightmare to insert rows/columns at the start of the traditional XAML Grid. This has a lot of promise and one can start tinkering today from the Comet dev branch.


Meaningful Content Ordering

The need for accessibility in mobile/desktop apps is obvious, but making apps accessible is easier said than done even when developers have the right intentions. Rachel Kang had started a wonderful series on the journey to accessible apps—a step-by-step guide for developers, especially on .NET MAUI.

Rachel authored a piece on meaningful content ordering—this is an excellent read for anyone looking to design/develop apps that are logically easy to use. Rachel refers to Web Content Accessibility Guidelines (WCAG) and makes a strong case for logical content flow for optimum UX.

While a variety of content ordering is to be kept in mind, .NET MAUI developers may benefit most from doing the big three—Source, Visual and Semantic ordering. Much of the content ordering refers to how developers add UI elements to the visual tree and how the users perceive the UI elements visually rendered on the screen. In .NET MAUI, semantic order refers to the order in which content is interpreted by assistive technologies like screen readers and keyboards—this cannot be overlooked, and Rachel showcases exactly how .NET MAUI can help.


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.