back to article Microsoft .NET MAUI devs vent over bugs backlog, response times

The developers are revolting – at least, it seems that way if an increasingly fractious thread regarding Microsoft's .NET MAUI is anything to go by. .NET MAUI (Multiplatform App UI) is Microsoft's cross-platform framework used to develop apps that will run on Android, iOS, macOS, and Windows from a single code base. It is an …

  1. Knightlie
    Windows

    .NET UI is a Mess

    .NET UI options are an absolute mess. If I'm still considering *Windows Forms* in 2023 for writing a desktop application, someone's dropped the ball pretty badly. And bringing Linux into the mix pretty much negates the "cross-platform" .NET as an option at all, I'll get a more cross-platform result with Python, ffs.

    1. abend0c4 Silver badge

      Re: .NET UI is a Mess

      Weirdly, if you want your app to run across multiple Windows platforms, WinForms is pretty much your best bet.

      If you want a traditional desktop-style UI for multiple platforms, people seem to favour Avalonia.

      I'm not convinced that having a UI that's essentially the same on desktops and mobile is terribly useful - the whole mode of interaction is / should be different.

  2. Zippy´s Sausage Factory
    Unhappy

    I thought Micros~1 recently declared that Blazor was the future and (almost) everything else was now to be considered on life support?

    1. Knightlie

      I lived through the Database Access maelstrom back in the late 90's, where MS had at least four competing database client libraries on the go at once. I'll give Blazor another three years before some MBA comes up with a career-enhancing replacement.

    2. NerryTutkins

      Since Blazor WASM runs on pretty much any platform that supports a modern browser, is MAUI really required long term? Surely something web based, with well established standards is going to have a better future than something that seems like a hacky halfway house.

      1. Alan Bourke

        Something non-browser will *always* be required as an option

        Because of the sandboxing limitations of browser applications.

      2. Zippy´s Sausage Factory

        I feel like MAUI wasn't really thought through - to me it looks like a set of re-warmed leftover ideas from SilverLight / WPF sprinkled with a bit of marketing marching powder and suddenly "oh look we've got a competitor to Flutter".

        That said, I haven't worked with MAUI. Maybe it's better than Blazor, but having worked with Blazor that doesn't feel like a very high bar to cross.

      3. Emantec

        You can't access device specific features using Blazor WASM outside of what the browser provides. That's not going to cover requirements for 90% of mobile apps.

    3. Emantec

      MAUI already supports blazor, you can build a blazor site that adapts to any screen size on MAUI.

  3. AndrueC Silver badge
    Meh

    Must be time for yet another Microsoft UI Framework. I'm sure this time they'll get the basics right and it'll finally be all things for all people.

    Yeah right. One thing MS has never been good at is determining the basics and providing a truly generic solution. Dunno why. Too many vested interests? Too willing to move the goal posts? Whatever. Seems like everything they do ends up fractured with multiple competing versions.

  4. Anonymous Coward
    Anonymous Coward

    .NET WinUi3

    We've got WinForms, WPF, UWP, WinUI3, MAUI, and whatever else they have cooking now. I haven't used much of MAUI, but WinUI3 (aka WindowsSDK or half a dozen other names they use, it's the "updated?" version of UWP) is also barely functional. Data binding is an absolute mess, and barely works. It works OK with static data, but just try having a ListView inside the data template for a ListView. I tried using user controls to add an add/remove button, which works fine when repeated manually but not when inside a user control. List items inside a flyout do not update, and the UI and data desync whenever you remove an item containing a list from a list view and then add a new item in, the new item will have the old one's data on the front end but a blank list on the back end.

    Who knows, I am just a rookie after all. Maybe I'm doing something wrong. But honestly having to dig through dozens of pages of half-complete documentation, 3 year old forum posts talking about features that will be available in 1.0 yet we are on 1.4 today, and finding differences between wacky interfaces, BindableList, ObservableCollection, INotifyPropertyChanged propagation, etc. is a pain in the ass. Oh and the lack of a WYSWIG designer in VS that I really enjoyed in WPF is a pain.

    Don't even get me started on distributing the application. By default, MS wants you to package your app into a MSIX package, like what is on the store. But, unless you submit to the store, you will need to have your package signed with a certificate from a root authority to be installed. There's no way to skip this either. If you sign it yourself, you need to also distribute a powershell script and a cert file. Uploading to the store was a no-go, as the app is just a tool for a friend and not complete either. Getting my non-techsavvy friends to install that was a nightmare and didn't work anyway.

    You can unpackage your application, but this means the entire windows SDK (and .NET runtime if you truly want it to just work) must be copied to the output each time, adding around ~200MB for a hello world. Code trimming is broken and will never be fixed either. Then you still have to figure out how to get the ~400 files needed to run the app (mostly all localization on an app that doesn't need it, it's for a friend only) to install somewhere. I ended up using a vs installer project to make a .msi file, but the documentation is really poor and the default settings don't work either. Most links that talk about MSI push towards MSIX.

    To be honest, I like the look and feel of winui3. It's why I tried it out and still use windows, I'm sorry. But these strange bugs are a pain to deal with. The biggest issue is installing unsigned packages. Please just add a "install anyway" button through a UAC prompt, like literally everything else. Apparently the reasons why not is that the windows sdk and net runtime, etc, are windows store packages, and non-blessed code can't talk to blessed MS code. I'm starting to see why people don't like snaps in the Linux world. Why move core system components onto the store?

    Go back to WPF. For now, at least, it seems that developing your own app on WinUI3 is akin to an ACE exploit in MS's mind. Sorry for the ramble.

    1. IamAProton
      Megaphone

      Re: try InnoSetup

      It's easier than it looks, free also for commercial use.

      I used VS setup projects when they worked reasonably well, of course now they are not supported anymore.

      The "bundled" installshield in the transition period was just a headache and I didn't even bother trying msix.

      InnoSetup brings back some sanity

      https://jrsoftware.org/isinfo.php

    2. David 132 Silver badge
      Pint

      Re: .NET WinUi3

      I'm confused, AC. Are you me? Did I accidentally write your post and then suffer amnesia?

      'Cos your complaints are all exactly what I've been banging my head against my desk over, for the last week.

      Having developed quite happily in WinForms for years, and WPF a little, I thought I'd keep my skills up-to-date and try WinUI3. Acrylic/Mica textures, new controls, auto scaling layouts... yum.

      But as you (I?) so succinctly described, it's an absolute, unfinished train-wreck. Your post should also have mentioned the total absence of a visual UI editor within Visual Studio. Microsoft's best response at the moment is "create the UI by hand-editing the XAML, then use Hot Reload on your project to tweak the XAML and quickly see the result in the running code." <bangs head on desk again>

      The cert thing is a nightmare. Microsoft's attitude is "You can build as an MSIX and battle with certs, or you can build as unpackaged, which means even the smallest Hello World takes 200MB+, and as an additional bonus 'fuck you' to our loyal devs, unpackaged projects can't use some of the system UI framework, like notifications"

      I liked - hell, I like - WinForms. Easy to build a functional UI - drag and drop controls in the visual editor. Build your own user controls if needed. Quick & simple build process that creates, in most cases, a single, compact .EXE that you can copy to as many other PCs as you want & immediately run. Sure, it doesn't handle transparency well, and manual DPI scaling can be tricky if you want pixel-sharp interfaces, but it's like a familiar and comfortable pair of slippers.

      To echo Knightlie's sentiment above, the fact that WinForms is still, in many ways, the best option for a project in 2023 is a damning indictment of Microsoft's utter inability to think of their developer community.

      I do wish I could justify spending the $1000 for the DevExpress Winforms toolkit!

      1. SNaidamast

        Re: .NET WinUi3

        You can get a complete set of freely controls for WinForms from Syncfusion.

        Just apply for a developer license there.

        I have been using them for years...

        Steve Naidamast

        Sr. Software Engineer

        1. David 132 Silver badge
          Thumb Up

          Re: .NET WinUi3

          Thanks for the tip Steve, I’ll check that out. As I intended to clarify above, but didn’t remember until I’d missed the edit window, the devexpress toolkit gives Fluent controls to Winforms, but honestly $1000 per year is a bit rich for my blood!

  5. Jou (Mxyzptlk) Silver badge

    The only true cross plattform UI is TEXT

    if you want VERY OLD compatibility in 40x24. But 80x25 can always be expected. On today's machines 160x100 or 200x120 as text UI is passable too. If even allows the user to choose the font, and it DPI-away (sort of, scaling a font does every OS fine). This is how I write the UI (note the missing G) for my tools. Why bother with anything if text UI is enough. Simple menu with cursor or wsad to choose, return to select, escape or b to go back, x to quit, TAB to go to another part etc...

    1. David 132 Silver badge
      Happy

      Re: The only true cross plattform UI is TEXT

      What key do you normally assign to the option "avoid being eaten by a grue"?

      1. Jou (Mxyzptlk) Silver badge

        Re: The only true cross plattform UI is TEXT

        Upper right corner, the little "X".

        1. David 132 Silver badge
          Happy

          Re: The only true cross plattform UI is TEXT

          I thought clicking that meant “yes Microsoft, please upgrade me to the latest version of Windows”?

          So many UX conventions to keep up with!

          1. Jou (Mxyzptlk) Silver badge

            Re: The only true cross plattform UI is TEXT

            I call it "aborting the simulation". And then I can restart it, at any given point.

  6. Alan Bourke

    As ever they seem more concerned with a stampede to implement the new shiny into everything

    than consolidating what they've already done. They propably have 3x more people trying to wedge Copilot into it than they have fixing issues.

  7. Mark_Redman

    There are things to consider

    I am pretty new to the word of cross platform development, in terms of IOS, Android and MacOS, or anything that doesn't run on windows having used .Net since I found the beta on a magazine in about 2001/2002 and moved over from Delphi. I am very super familiar with .net in all flavours and spend my life in Visual Studio (I don't work for Microsoft but, I am a fan)

    Having said that I have now done a fair bit of work in MAUI now, and I do have frustrations, many frustrations.. however

    If one considers the history of MAUI, see this video for the full history

    https://www.youtube.com/watch?v=YHSVtKbgv9M

    You will see that consolidating all this technology is a Massive! task, and fair play to Microsoft for taking this on and making it happen.

    How many times have you heard "release early" to get your product out there, well releasing early does get people using it and it does speed up the development and community update and support.

    Like all new tech and given the way Microsoft approach all development tool, you can be sure that MAUI will get better and get the love it deserves...

    This was the same with .net core, if you used .net core and every version since V1.... or Version 1 of anything for that matter.

    If this still just sounds like a fanboy post, you probably haven't watched the video.

    1. AndrueC Silver badge
      Mushroom

      Re: There are things to consider

      You will see that consolidating all this technology is a Massive! task, and fair play to Microsoft for taking this on and making it happen.

      Nah. If they'd designed it properly in the first place they wouldn't have a problem.

      As I wrote in my previous post - Microsoft have just never been very good at orthogonal thinking. Pretty much everything they do ends up being twisted to the point where the only option is to give up and start again. If they'd done the job properly we'd still be on WinForms because it would have evolved to meet the needs of developers and the market.

      I thought that after they'd poached/enticed Anders from Borland they'd be on to a winner but he drifted off to other projects.

      MS have only themselves to blame for this mess and they should not be praised for their inadequate attempts to come up with yet another bloody UI framework.

  8. SNaidamast

    Microsoft shot itslef in the foot with the droppong of ASP.NET WebForms

    ASP.NET WebForms was the zenith of Microsoft's development quality along with its ease of web development.

    Once Microsoft started with ASP.NET MVC, its been a downhill slide since then. This is why I still stick with the original .NET Frameworks. They just work and provide what I need them to provide.

    Constantly churning the development environments as Microsoft has been doing since 2010 is causing mayhem and frustration in the MS Development Communities. And this is also contributing to developer burnout. Dear god, who in their right mind would base a new web development environment on JavaScript, which has now been changed to C#.

    It is a little ridiculous that JetBrains can come out with a cross-platform IDE for .NET (Rider), which runs on Windows, MacOs, and Linux but Microsoft can't seem to do the same with Visual Studio.

    Instead of coming up with all these idiotic framework upgrades and language features, Microsoft should just go back to the drawing boards and develop 3 versions of Visual Studio with three separate teams for the three popular operating systems available. But instead, they discontinue the MONO-based version of Visual Studio for MacOS.

    The fact that they did not move WebForms and WCF over to the new frameworks is just a sign of complete laziness, incompetence, and a complete lack of direction.

    Like many, after being involved with the field since 1974 and rising to that of a senior software engineer, I am also considering looking at options that would make my skills and expertise more flexible in the environments that we now have. JetBrains Rider is certainly one major consideration. However, I am also teaching myself PHP and have already successfully tinkered with Python.

    WiseJ.NET has also produced a ,NET WebForms-like development environment using Blazor as its underlying foundation. If they can do it, why can't Microsoft?

    By the way, WiseJ.NET has a freely available community edition of this software...

    Steve Naidamast

    Sr. Software Engineer

    1. David 132 Silver badge
      Pint

      Re: Microsoft shot itslef in the foot with the droppong of ASP.NET WebForms

      Hear, hear. Well put.

    2. AndrueC Silver badge
      Mushroom

      Re: Microsoft shot itslef in the foot with the droppong of ASP.NET WebForms

      Constantly churning the development environments as Microsoft has been doing since 2010 is causing mayhem and frustration in the MS Development Communities. And this is also contributing to developer burnout

      It was the major factor in me starting the retirement process last year. I'd shouted and sworn at VS for crashing/hanging/*insert random stupid IDE behaviour here* for just one time too many and the idea of having to learn yet another UI framework - and an unfinished pile of crap at that - was just too much. Xamarin was quirky and the development experience targeting iOS incredibly painful but MAUI wasn't even complete and MS wanted us to move to that?

      I had been reporting VS bugs to the MS team for several years and almost nothing was ever done about them. They just continued to add more and more features to the already bloated and unstable IDE.

      So I got the retirement parachute ready. Then my employer wanted the dev team back in the office for two days a week and I pulled the cord.

      Best decision I have made in a long time. Screw VS. Screw MS.

      Andrue Cope. Software developer: 1982 - 2023.

      ;)

  9. Keythong

    Why not use QT or some other OS portable UI framework.

    Amused.

    Java has had SWT for ages for cross-platform desktop IDE, and has JavaFX for desktop/web apps, with a visual designer, which should be platform portable too, and Swing still works too.

    I have always hated bloated VS, and revisiting it a few years for work reinforced this, as did the WTF bugs in compiled functional C# code. Java projects style, Maven conventions, and Jet Brains IDEs make Microsoft look very so dated. I gave up on Windows too, because I finally had it with trying to repair WTF unbootable Windows installs and _still_ no usable boot repair tools, so now use Linux Mint, with Wine for the trivial number of windows programs I still find useful.

    I want nothing to do with anything Microsoft now, including Azure.

    1. Alan Bourke

      Re: Why not use QT or some other OS portable UI framework.

      Because they look awful.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like