.NET 8 – MAUI
devblogs.microsoft.com
devblogs.microsoft.com
https://github.com/dotnet/maui
.NET is Open Source
https://dotnet.microsoft.com/en-us/platform/open-source
I do share your skepticism of Microsoft, but it looks like the economics and cash flow dynamics have changed drastically after the advent of the cloud.
Microsoft is more focused on getting developers onto its ecosystem and help them with open source projects with the hope that they will use its Azure cloud services and bring in the money.
My skepticism is a bit relaxed now and I have no qualms using .NET.
I hope I am not wrong.
I'd also love if maui actually takes off since it does seem pretty neat, but until microsoft uses it for teams or any other of their clients, I'll pass.
They also aren't even targeting linux or web browsers, which doesn't really make this more compelling than Flutter.
https://dotnet.microsoft.com/en-us/platform/customers
Teams was originally written before this particular release existed.
They were talking about Microsoft constantly re-inventing GUI frameworks and then abandoning them. For example, you bring up Teams, but Teams is actually an Electron app, which gets to the point of the commenter.
It's insane because actually all anyone wants is Windows Forms and WPF. If Microsoft made a cross-platform version of Windows Forms and WPF, they would be the cross-platform frameworks, at least for desktop.
I do wonder sometimes whether MS should just pick it up as a default-endorsed desktop UI toolkit for .NET, but I guess rivalries, internal turf wars and other priorities make that difficult.
Should I use MAUI? (https://learn.microsoft.com/en-us/windows/apps/windows-dotne...) Or WPF? (https://learn.microsoft.com/en-us/dotnet/desktop/wpf/overvie...) Or WinForms? (https://learn.microsoft.com/en-us/dotnet/desktop/winforms/ov...) Or WinUI 2? Or WinUI 3? (https://learn.microsoft.com/en-us/windows/apps/winui/#compar...) Or React Native for Windows? (https://learn.microsoft.com/en-us/windows/dev-environment/ja...) Or Blazor? (https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blaz...) Or Win32? (https://learn.microsoft.com/en-us/windows/win32/desktop-prog...) Or even Xamarin? (https://visualstudio.microsoft.com/xamarin/)
I feel like I might have missed a few...
And how confident are you that my choice isn't going to be deprecated in a couple of years? I'm not certain that "momentum" is worth much from a company who changes UI frameworks as often as some people change underwear...
Any insiders?
Source?
The only decent GUI framework for Windows is Electron, which is based on Chromium.
Microsoft's new GUI applications use Electron: VS Code, Azure Data Studio, etc...
In other words: Google makes the best Microsoft Windows GUI framework, as endorsed by Microsoft's own developers.
Why not avalonia?
What a peculiar way of spelling “WinForms”
Having lived through a lot of Microsoft GUI frameworks, I would say that I won't be fooled this easily. Not with another half-assed unfinished library. I'll be interested once it qualifies as whole-assed and not a moment sooner.
Just kidding, it's probably some intern's dashboard that monitors their Clippy staging environments.
There was a period in 2000’s when XML use was at its peak. Everything was using XML. APIs were using SOAP transports (this was before REST became the de facto model). I used to loathe its verbosity in simple configuration files and wished for something simpler. Right around then, Douglas Crawford invented JSON - which really took off. The rest as they say, is history.
We forget how well, markup languages like HTML and SVG can describe anything visual. Compared to the alternative (declarative object API, such as DOM or SwiftUI), I will take *ML any day. And given the popularity of React, I guess I am not alone.
IMV, xml is an excellent format for declaring and wiring up user interfaces, much more so than any other technology.
I only wish that we can build desktop applications directly with HTML, without any server running in the background.
This was actually quite comprehensible:
<ContentPage.MenuBarItems>
<MenuFlyoutItem Text="Cut" Clicked="OnCutMenuFlyoutItemClicked">
<MenuFlyoutItem.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Ctrl" Key="X" />
</MenuFlyoutItem.KeyboardAccelerators>
</MenuFlyoutItem>
</ContentPage.MenuBarItems>https://developer.apple.com/tutorials/swiftui-concepts/explo...
It is meant for native apps on mobile and desktops
However, complex is a thing. MAUI is a cross-platform native control framework (aka. it creates abstractions over platform native controls). Abstractions like standards are always the minimal common denominator. No specialized controls, not all properties exposed, etc.
That is not really a issue of MAUI particular, but something to consider when selecting a UI toolkit (vs. self-rendering cross-platform frameworks like ionic or flutter). If you want to use the full capacity of a UI toolkit, you need to code against that code (and stop being cross-platform). You can do this with .NET (use Android, iOS, Windows ui toolkits directly).
So MAUI still doesn't target the web like Expo and Flutter does?