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 February 21, 2022:
Behold—the next .NET MAUI Preview release is here, aka .NET MAUI Preview 13. .NET MAUI is closing in on Release Candidate builds ahead of General Availability release and Preview 13 brings in more quality stabilization.
David Ortinau wrote up the .NET MAUI Preview 13 announcement blog post—this time accompanied by Visual Studio 17.2 Preview 1 release. There are performance and feature enhancements as well, like the newly added Label.FormattedText property for Labels.
There is enhanced focus on how .NET MAUI apps are bootstrapped with the MauiProgram.cs file and the generic .NET HostBuilder—each of the supported platforms use this to new up the MauiApp. It is now easy to use alternate .NET MAUI Handler implementations and Dependency Injection continues to make it easier to wire up services.
.NET MAUI documentations get a much needed dose of updates, including like XAML fundamentals/advanced topics and how to start building Blazor Hybrid apps in .NET MAUI/WPF/WinForms. Tooling is stabilizing on Windows side and things are looking good for the last stretch of .NET MAUI ahead of formal release—exciting times.
While developers are settling in with .NET 6 and the evolution to .NET MAUI for cross-platform development, the next milestone in the history of .NET is already being worked on—aka .NET 7. Jeremy Likness wrote up the announcement post—.NET Preview 7 bits are available now. .NET 7 plans to build on the .NET 6 foundation of unified runtime, simplified developer experiences and improved tooling.
.NET 7 focus areas include newer technologies like cloud native and containers, as well as investments into modernization of legacy web/desktop stacks. .NET MAUI is the evolution of .NET cross-platform development and will hit RC/GA in the coming months—but .NET MAUI will also play a bigger role in .NET 7.
Much of .NET MAUI tooling across Windows/MacOS will reach maturity with .NET 7 and offer improved developer inner loop experience, better performance and enhanced interop story. .NET MAUI developers have exciting times coming up and .NET 7 Preview 1 is the first step into the next generation.
Whether you are a seasoned XAML/C# developer or coming in fresh into the .NET ecosystem, there are some basics everyone should know. James Montemagno produced a video on XAML Data Binding and MVVM Basics—this is the type of knowledge that should be a right of passage for .NET MAUI developers.
James starts out describing the basics of Data Binding in XAML—setting BindingContext, INotifyPropertyChanged and Commands. While the skills apply to multiple platforms, it is nice of James to pick .NET MAUI samples and fix code issues submitted by audience members. James goes on to explain more complex MVVM concepts and Compiled Bindings—a must-watch for all XAML/C# developers, particularly if going forward with .NET MAUI.
.NET MAUI allows developers to build cross-platform apps from a truly single codebase—reaching iOS, Android, Windows and MacOS. While .NET MAUI tooling and Essentials is meant to give developers a consistent way of building .NET cross-platform apps, publishing apps to each platform does need specialized knowledge—one has to cater to each application Store's way of doing things.
Fresh off publishing .NET MAUI Android apps to the Google Play Store, Gerald Versluis produced another video—this time publishing .NET MAUI iOS apps to the Apple App Store.
The length of the video is perhaps a testament to the complexity of publishing iOS apps—Gerald does start from scratch. Gerald covers all the must-know things—how iOS signing works, working with Signing Certificate, creating App Identifier and Provisioning Profile.
There are nuances of storing sensitive info in Apple MacOS KeyChain, connecting to Mac if on Windows, creating Entitlements.plist and updating the .csproj file. The end result is a signed iOS IPA file created from your .NET MAUI project—ready for brave upload to the App Store. This is a great learning tutorial for anybody looking to publish and update iOS apps to the Apple App Store—particularly for .NET MAUI developers.
Our beloved .NET recently celebrated its 20th Birthday and Beth Massi had written up the anniversary blog post. It has been quite a ride for .NET—20 years of innovations, embracing open source in the last decade and building a rich developer ecosystem.
More than anything, .NET thrives on the developer community—over 5 million developers use and love .NET. .NET's birthday celebrations will continue throughout February with Twitter stories shared with #dotNETLovesMe, but a special broadcast from the .NET team shared a lot of love and excitement. From enterprise clients, indie developers to internal teams at Microsoft, everyone who has used .NET has stories to tell—and that's a healthy sign for a well-loved platform. Cheers to the next 20 .NET.
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.