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 & 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 9, 2024:
While .NET MAUI is squarely meant for developers to build native mobile/desktop apps, armed with modern smart WebViews, .NET MAUI is more than capable of welcoming web content to native land. In fact, Blazor/JavaScript developers should feel empowered to bring web UI components, routing, styling and more to native cross-platform .NET MAUI apps, while gaining complete native platform API access. There is good news for anyone wanting to dip their toes into Blazor Hybrid development with Gerald Versluis making the announcement—say hello to a full Blazor Hybrid workshop.
Blazor and .NET MAUI share the same underlying .NET runtime—the ease of welcoming Blazor developers to native mobile/desktop world should be well-established by now. While there is documentation and plenty of content, nothing beats the experience of doing things yourself.
The new Blazor Hybrid workshop is a wonderful self-paced learning tool toward building a Monkey Finder app and exploring the nuances of Blazor Hybrid development—like project structure, data fetching/binding, theming, combining Blazor with native UI and more. The workshop packs a lot for beginners and experienced developers alike, and can easily be used to run a real workshop for teaching purposes. Kudos to the team for putting together a full workshop in a box—developers can start building Blazor Hybrid apps today.
.NET MAUI is the evolution of modern .NET cross-platform development stack, allowing developers to reach mobile and desktop form factors from single shared codebase. The reality for most modern enterprise mobile/desktop apps, however, is not a silo—apps are often built as a part of a bigger family of apps/services. .NET Aspire is the opinionated, cloud-ready stack for building observable, production-ready, distributed applications. While it can sound like a mouthful, Jon Galloway, Maddy Montaquila and Jose Perez Rodriguez hosted a recent ASP.NET Community Standup to explain things better—how .NET Aspire actually works.
After coverage of .NET Aspire 8.2 release and community news, the trio got to the core of understanding .NET Aspire. Modern enterprise app architectures can get complex—client .NET MAUI/web apps can be supported by a plethora of connected background services, data storage, AI endpoints, service bus implementations and more.
.NET Aspire is designed to streamline connections and configurations between various types of services needed for Cloud Native apps—box diagrams from engineering often help in conveying the orchestration message. .NET Aspire Service Defaults project helps in service discoverability, health checks, logging and resiliency. Adding the .NET Aspire AppHost project further helps in orchestration of multi-project launch configurations and developers gain a wonderful dashboard to visualize state of connected apps/services.
.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. There is a lot happening for cross-platform development, and the .NET MAUI podcast is a good way to catch up. Hosted by James Montemagno, David Ortinau and Matt Soucoup, a recent episode #124 of the .NET MAUI podcast was a nice discussion—the realities of .NET MAUI development today.
With increased stability and a rich ecosystem, there are lots more developers building cross-platform apps with .NET MAUI—many seeking consistent building experiences from Windows/macOS/Linux developer machines. The answer is Visual Studio Code, and the .NET MAUI developer experience in VS Code is constantly getting better. The .NET MAUI Extension for VS Code is built on top of C# Dev Kit and the C# extension, which bring in a Solution Explorer, C# Hot Reload, powerful C# IntelliSense and much more.
The trio talked through the nuances of setting up .NET MAUI development experience from scratch—with VS Code, Extensions, XCode and considerations for iOS/Android development. The discussion meandered through many aspects of cross-platform development, like tricky iOS deployments, UI updates in .NET MAUI for .NET 9, AI tooling and more—a wonderfully honest, casual conversation about the realities of complete .NET MAUI development/debugging experience toward building modern mobile/desktop apps.
Visual Studio for Mac has been the IDE of choice for many .NET developers on macOS. With a long history of evolution from Mono/Xamarin Studio to supporting modern development for web/cloud/cross-platform apps, VS for Mac has served developers well. It does feel like an end of an era with VS for Mac retiring, and Leomaris Reyes wrote up an eulogy—it’s time to say goodbye to Visual Studio for Mac.
Microsoft announced a while ago that Visual Studio for Mac would be retiring—the day has come. Leomaris wrote up exactly what this all means for VS for Mac users after Aug 31, 2024—while it will be around, Visual Studio for Mac will no longer receive support or maintenance.
The good news for .NET developers on macOS is a rich set of alternatives, with Visual Studio Code leading the pack. VS Code is the uber-popular lightweight code editor that works seamlessly across Windows/macOS/Linux—it brings a rich Extensions ecosystem for .NET development and provides consistency of developer experiences. With C# Dev Kit, .NET MAUI Extension for VS Code and other solutions, .NET MAUI developers on Macs have plenty of tooling to be productive—let’s say our goodbye to VS for Mac and move along.
What’s a modern developer platform without passionate opinions and a little dose of controversy—it shows engagement. Maddy Montaquila opened the floodgates with a very important and impactful pull request for .NET MAUI—adding the .NET purple as a named color brush for .NET MAUI projects.
For anyone curious, the popular purple color used in .NET branding is actually #512BD4 in hex. The innocuous PR likely took less time to write than reading the comments that followed—.NET MAUI developers are a passionate bunch. From hilarious takes to the need for other fun named colors, the reactions and inputs were quite the handful. Everyone understands the need for stable .NET MAUI platform, API surface and fixed issues—doesn’t hurt to have a little fun once in a while. Nonetheless, instead of stirring the pot more, the PR is now closed, but the idea of fun named colors, survives as a NuGet package.
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.