Microsoft releases new preview of MAUI with ‘lots of bug fixes’ but quality concerns linger

Microsoft releases new preview of MAUI with ‘lots of bug fixes’ but quality concerns linger

Microsoft has released a preview 5 of the forthcoming .NET 8, including many bug fixes for its cross-platform framework called MAUI (Multi-platform App UI), but some developers feel that the fixes should also apply to the current release, which many find problematic to work with.

Principal product manager David Ortineau posted that “NET MAUI in .NET 8 Preview 5 is now available with lots of bug fixes and performance improvements for cross-platform app development.”

“All of these fixes [were] supposed to be on .NET 7 Releases!” protested one developer in response. “Bug fixes is what matters the most for us as .NET MAUI developers.”

.NET MAUI is an evolution of Xamarin Forms, Microsoft’s solution to developing cross-platform desktop and mobile applications with C#. The framework became generally available in May last year, after a delay, only with a preview version of Visual Studio, and with no visual designer. It also had more than its share of quality issues. The release notes for the last several updates are more about fixes than new features; and state that “The focus for .NET MAUI in .NET 8 is SDK quality.”

MAUI architecture showing use of Mono on Android, Mac and iOS, and .NET Core on Windows

Despite the issues, there is substantial interest in MAUI, because of the ability to target multiple platforms with one codebase. Microsoft .NET is cross-platform on Windows, Mac and Linux, but lacks any other official cross-platform GUI toolkit. In fact, even MAUI does not use .NET Core other than on Windows; on Mac and on mobile platforms, the framework uses the Mono runtime, an open source implementation of .NET which predates Microsoft’s cross-platform .NET efforts.

Why is Microsoft fixing MAUI for .NET 8 but not for the current release? “I wish we could ship all the fixes to all the versions. We are optimizing for fixing the most impactful issues and that means limiting most all of our focus to ensuring .NET 8 is the best possible release,” said Ortinau in a comment.

The risk though is that developers unhappy with the state of the existing release will switch to something else. “I so badly wanted MAUI XAML to ‘just work’ for the UI I was building (targeting Windows and Mac desktop) but couldn’t get it to behave; have switched to Bazor Hybrid and doing better now” said a developer in a recent community stand-up. XAML is the XML-based language used to define a GUI in MAUI.

MAUI options in Visual Studio, including Blazor Hybrid

The Blazor Hybrid option uses MAUI as a wrapper around a web view which renders the GUI. The maturity of the web platform makes this a solid solution. Blazor in MAUI runs C# code using a local .NET runtime, and does not require WebAssembly as it does when running in the browser. Although it may be a compelling option, it fails to achieve a key goal of the original Xamarin Forms, which was to use native controls on each device.

The open source Avalonia framework, which is a cross-platform implementation of WPF (Windows Presentation Foundation), is a possible solution for MAUI or Xamarin Forms refugees, but like Google’s Flutter framework draws its own controls rather than using what the operating system supplies.