News

Did .NET MAUI Ship Too Soon? Devs Sound Off on 'Massive Mistake'

Microsoft recently advanced .NET MAUI to General Availability status, but many developers have complained about half-baked functionality that was shipped too soon.

.NET Multi-platform App UI went GA in May and that production-ready tech debuted in Visual Studio with the release of VS 2022 17.3 last month, marking the culmination of Microsoft's rocky effort to evolve Xamarin.Forms by adding the ability to create macOS and Windows desktop apps along with traditional Xamarin mobile targets, iOS and Android.

One year ago, Microsoft announced the project had "slipped the schedule" and wouldn't ship with .NET 6 in November 2021, instead aiming for a rollout in early Q2 2022.

.NET MAUI
[Click on image for larger view.] .NET MAUI (source: Microsoft).

Developer discontent was expressed last week in some 87 comments in a post on the Reddit site titled "Opinions on .NET MAUI / what do Xamarin Devs have to say" that started out: "I'm trying out MAUI as a Proof-of-concept for about a week now and I'm puzzled by the sheer amount of bugs, crashes, issues I'm encountering."

Readers were quick to weigh in with agreement, posting comments like:

  • This is exactly my take on MAUI as well. This framework needed at LEAST a year more development before blessing it with release status.
  • Yeah I've tried playing with MAUI and I've encountered some bugs. I don't think it will be stable until at least a year from now. It's such a shame really because I think the underlying concepts and principles are great.
  • We've made a restaurant app in Maui we currently run in production. It's pretty stable when you eventually get everything to work. But the way there haven't been worth it. You'll need to do workarounds for the known bugs.
  • As I've used to be a Xamarin dev I can tell MAUI won't be stable for a year. I've worked deeply on an app using MAUI, The VS IDE itself has bugs with MAUI too. The devs working so fast on it and not prioritizing quality over quantity.
  • The problem is MS is telling third party devs to jump on MAUI but they aren't building anything with it themselves.
  • I've kept an eye on MAUI, it's buggy mess right now and the team seems to be drowning. In spring they used Github Projects, which gave a nice overview of the work being done and bugs being fixed, but they abandoned that.
  • Yeah im hoping they just need more time. Every time I've tried to use it I'd run into a bug and spend all my time trying to find it in their github issues or posting new ones then trying to find a workaround.
  • It's really disappointing, I have a Xamarin.Forms app on iOS and Android and I have actually been positively surprised by how well it works after reading about a few bad experiences beforehand. But Maui really brings out a lot of flashbacks from the worst Microsoft times. Bringing Visual Studio for Mac Support much later. Tying features to Visual Studio… on Top of that it can't really do anything major that Forms can't do. And if it's less stable on top of that. I certainly won't rush to migrate to Maui.
  • MAUI reminds of Xamarin Forms from 2014-2015, completely unusable for anything besides basic proof of concepts.
  • Yeah, I am in the process of developing a POC. I'm about 20 hours in and I've made a lot of progress, but I'd say 3 or 4 times, I've been in a spot where I couldn't debug my app at all because of some XAML bug that couldn't be debugged and the whole app wouldn't do anything.

Some developers advocated Blazor as an alternative. Blazor, which allows for C#-based web development instead of JavaScript, is actually combined with .NET MAUI in Microsoft's Blazor Hybrid effort for cross-platform hybrid web/desktop apps. Microsoft documentation says: "In a Blazor Hybrid app, Razor components run natively on the device. Components render to an embedded Web View control through a local interop channel. Components don't run in the browser, and WebAssembly isn't involved. Razor components load and execute code quickly, and components have full access to the native capabilities of the device through the .NET platform."

Mixing and Matching Native and Web UI
[Click on image for larger view.] Mixing and Matching Native and Web UI (source: Microsoft).

"Have you tried a blazor hybrid app?" asked one Reddit reader. "I ran into a lot of issues for standard maui, have been dipping my toes into this over the last week, and it seems to be much better."

Another reader said, "They target WinUi3, which is a new thing and has it's own issues, also Blazor Hybrid is an exciting new thing on it's own. The MAUI potential is great, but that's a lot of moving pieces."

However, the positive Blazor Hybrid experience and optimism were contradicted by another reader who said, "I'm getting Visual Studio crashes when a Blazor Hybrid app is running. There are definitely bugs to be reported still."

Microsoft has put on a brave face for .NET MAUI, however, posting articles like this one from June: "Performance Improvements in .NET MAUI." In subsequent Reddit discussion about that post, there was some rare reader praise for .NET MAUI, with one reader opining, "I'm really glad MAUI exists, I wish the team success and I hope they don't burn out: supporting Xamarin while bringing up MAUI, while Android/iPhone/Mac release new versions, while WinUI stabilizies, while also supporting Hot Reload in Visual Studio (which is great!)... and there's something going on with VS for Mac also...."

But there has been some negative chatter elsewhere, too, as a Hacker News reader, reacting to the schedule slipping last year, said, "The long, ongoing farce of a UI for .NET continues. Why they decided to double down on Xamarin is anybody's guess but it is sure is looking like a massive mistake."

There are also many positive comments about .NET MAUI on the Hacker News site, though, as a post last year saw a comment reading, "The amount of energy Microsoft is pouring into these front-end efforts is pretty incredible ... I honestly believe this model is going to revolutionize front-end development."

The huge amount of developer interest in .NET MAUI was evidenced by some 253 comments on that 2021 post, dwarfing even the 87 (and counting) Reddit comments.

The .NET MAUI site on GitHub now shows 1,737 issues open and 3,799 closed.

The GitHub roadmap shows that .NET MAUI stories for .NET 7 include:

  • Map control
  • DualScreen controls
  • Improve "Getting Started"
  • Improve UI responsiveness
  • Improve app startup and app size
  • Migration assistant for Xamarin projects
  • Improve native library interop

As with any just-released tech, there are certainly bugs to be worked out and functionality to be fleshed out -- and discussion will always come in on both sides of the positive/negative divide -- so the final judgement has yet to be rendered.

Microsoft-centric developers can only hope .NET MAUI won't live up to one Reddit reader's brutal two-word assessment: "Next Silverlight."

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube