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.
.NET developers are excited with the reality of .NET Multi-platform App UI (.NET MAUI)—the evolution of modern .NET cross-platform developer technology stack. With stable tooling and a rich ecosystem, .NET MAUI empowers developers to build native cross-platform apps for mobile/desktop from single shared codebase, while inviting web technologies in the mix.
While it may take a long flight to reach the sands of MAUI island, developer excitement around .NET MAUI is quite palpable with all the created content. Like the grains of sand, every piece of news/article/documentation/video/tutorial/livestream contributes toward developer experiences 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 September 30, 2024:
.NET MAUI is built to enable .NET developers to create cross-platform apps for Android, iOS, macOS and Windows, with deep native integrations, platform-native UI and hybrid experiences. With increasingly complex app needs, .NET MAUI is meant to enable developers to be set up for success—the .NET MAUI Shell is here to help. It takes a bit of knowledge to understand how to leverage the .NET MAUI Shell though, and Héctor Pérez has written up an excellent series—mastering the .NET MAUI Shell.
The .NET MAUI Shell aims to reduce the complexity of app development by providing the fundamental features out of the box—like describing the visual hierarchy of an app, familiar navigation system for users with flyouts/tabs, a common URI-based navigation scheme and an integrated search handler. Héctor has started from scratch to guide fellow developers—creating utility pages and wiring up a .NET MAUI Shell.
In the latest post, Héctor shows off how to navigate between Shell pages and create SearchHandlers to add search functionality to app content. A new multi-page Dictionary utility is added to showcase real-world complexity, and navigation is setup between the Shell pages with MenuItems routes, along with passing parameters around.
The .NET MAUI Shell includes search functionality, and Héctor walks through exactly how developers can wire things up with a SearchHandler to easily find content across pages. With masterful use of Telerik UI for .NET MAUI, useful utilities and detailed explanations of everything around the .NET MAUI Shell, this has been a wonderful article series—kudos, Héctor.
.NET MAUI is the evolution of modern .NET cross-platform development stack, allowing developers to reach mobile and desktop form factors from a single shared codebase. Part of the challenge of modern cross-platform development stacks is constant change in the target platforms—.NET MAUI simply has to adjust to keep developers productive. As David Ortinau pointed out, there is a new Service Release out for .NET MAUI—say hello to .NET MAUI 8.0.91.
This new release of .NET MAUI is meant for the .NET 8 workload and is available via NuGet package update. The big news here is for developers using macOS as development machine or targeting iOS as a platform. The latest .NET MAUI Service Release now includes support for macOS 15.0 Sequoia and Xcode 16—this brings compatibility with the latest in Apple development stacks.
For developers on the bleeding edge running .NET MAUI on top of .NET 9, Xcode 16 support for .NET 9 will be available with .NET 9 Release Candidate 2. While constant change is the reality for cross-platform development stacks, it is good to see .NET MAUI staying on top of Apple updates to keep developers productive—cheers to that.
GitHub Copilot is undoubtedly the most widely adopted AI coding assistant—it promises enormous developer productivity benefits. And with GitHub Copilot Extensions, developers can integrate their favorite development tools/platform functionality directly inside the Copilot experience and share creations on the GitHub Marketplace. There is big news on GitHub Copilot ecosystem front—GitHub Copilot Extensions are now in public beta in the GitHub Marketplace.
For individual developers or organizations, GitHub Copilot Extensibility is a nice opportunity to make AI light up coding suggestions/chat with deep contextual domain knowledge. GitHub Copilot Extensions promises to be a wonderful ecosystem extending AI reach with specific developer productivity skills—the most impactful technology products rarely stand alone. There is help for developers/organizations looking to build Copilot Extensions—say hello to a new Copilot Extensibility Toolkit. The new Copilot Extensibility Toolkit is a new comprehensive utility designed to help developers by centralizing the information they need to build high quality Copilot Extensions—let the democratization of AI-assisted development tools begin.
Let’s grab a definition from the books—.NET MAUI framework is designed for building modern, multi-platform, natively compiled iOS, Android, macOS and Windows apps, using C# and XAML in a single codebase. While the shared codebase is nice, desktop apps often have to support heavy usage and demand very different user experiences. Can enterprises look at .NET MAUI to modernize their existing technology stack and move apps forward? Turns out, .NET MAUI reaches desktop elegantly and has quite a few things to enable desktop workflows. James Montemagno produced a video that might help anyone on the fence with a key feature needed for desktop apps—multi-window desktop apps with .NET MAUI.
James starts out making the case for multi-window desktop apps—this is often key for many enterprise scenarios to augment user experience and productivity. Thankfully for developers, multi-window support in .NET MAUI can coexist with the traditional push-pop page architecture found in mobile/tablet apps.
The discussions start with a common app scenario—a list of things with navigation to a detail page. James shows off how developers can detect devices with multi-window support and open a new page as a separate window for desktop apps. James also talks through additional considerations to support macOS—SceneDelegates are needed to handle iOS use cases for MacCatalyst or iPad multi-tasking. Overall, multi-window support in .NET MAUI is a wonderful way to build modern desktop apps with good UX, while conditionally supporting mobile workflows from the same codebase.
Modern .NET is powerful, open-source, cross-platform and welcoming to all, with mature tooling accompanied by rich ecosystems. The next big release of .NET is already in the works—.NET 9 is scheduled for arrival in November 2024. Along with .NET 9 comes fresh new bits for .NET MAUI and Vijay Anand wrote a post summarizing all the cool things—what’s new in .NET MAUI 9: a comprehensive overview.
.NET 9 will be a Short-Term Support (STS) release, but packed with goodies. Developers will see significant enhancements across .NET Libraries, Runtime and SDKs, all toward building modern client, cloud-native and intelligent apps. Vijay goes about the task of listing out major updates to .NET MAUI coming with .NET 9—support for Native AOT across app models, multi-target versions of .NET for iOS bindings, Android Asset Packs, input keyboards for Entry, HybridWebView, TitleBar controls for Windows, MainPage/Frame going obsolete, UI and performance improvements, and much more. The comprehensive list of updates is much appreciated and developers can get started with .NET MAUI bits for .NET 9 today—.NET 9 promises great things for the ecosystem.
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.