frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

.NET MAUI Is Coming to Linux and the Browser, Powered by Avalonia

https://avaloniaui.net/blog/net-maui-is-coming-to-linux-and-the-browser-powered-by-avalonia
55•vyrotek•2h ago

Comments

mwkaufma•1h ago
My kingdom for a UI toolkit that can be used to make real CAD programs, and not yet-more things that just look like webviews and could just be a webpage.
SigmundA•1h ago
Avalonia is also working towards using the new Flutter rendering backend Impeller which is being used to replace Skia, which is used by Chrome for rendering, turtles all the way down:

https://avaloniaui.net/blog/avalonia-partners-with-google-s-...

js4ever•1h ago
Too little, too late. Desktop apps are mostly dead.
labrador•51m ago
That's why desktop machines and monitors can't be given away. Nobody wants them /s
malkia•17m ago
Not in the industry I work in - AAA gamedev. Art folks typically would have two, or even three monitors - so good solutions for docking across them (and still working) are required.

A chrome browser by itself can't work that - it's great for many things, but not for Creative Tools.

lazypenguin•13m ago
Desktop UI toolkits are dead or stagnant but the desktop ui is still king IMO
sylens•1h ago
MAUI has felt like a barebones project for years. Forgive me if I don't believe this is the beginning of more robust support.
labrador•53m ago
Microsoft acts when it feels competitive pressure. I think Google's Flutter has been validated so Microsoft feels the need to respond.
keyle•43m ago
Dart is a wonderful language though. I'm not switching back to using .NET anytime soon.
labrador•21m ago
I love Dart, which I consider to be Google's C#. Either language is fine with me.
judah•1h ago
This is interesting for sure. Kudos for bringing this capability to the web!

One issue the demos reveal is, it doesn't _feel_ like the web. That is, I can't hit Ctrl+F to find text on a page. I can't select text with my cursor. I can't copy the address of a hyperlink. On my phone, I can't hard press on an image and share it to others. Screen readers can't handle it. I can't press a shortcut key to make everything larger.

These all may seem pedantic, but they contribute to the feeling "this is not the real web."

This is the same problem with Java applets in the late '90s, Flash and Silverlight in the early 2000s. They are islands of richness within a web page, but those islands are, well, opaque to browsers, search engines, and virtually all web tooling.

taftster•57m ago
That's not pedantic at all! Indeed, without these capabilities, it is by some definition not the real web.

This hits into that concept of what exactly the "web" is. Is it just a media transport system? Or is it something more than that. Of course, we could cite Tim Berners-Lee here or Roy Fielding in this discussion.

But at minimum, I think a lot of us are tired of the app-lification of the web and somewhat wish we could have a bit of the old.

mhitza•41m ago
I think it's the same problem that flutter web has, and probably any other canvas/wasm based backend? Those features still need to be implemented, while still missing out on accessibility?
a2128•40m ago
Not using the standard web stuff usually means it's also an accessibility nightmare, tried using a screen reader on the demo and it doesn't work at all unfortunately
afavour•26m ago
I wonder if at any point browsers will offer a low level accessibility API for you to manually describe components. I’ve worked in the web for years and I’m a big believer but it’s also indisputable that Canvas offers more performant UI rendering than HTML when done correctly. I don’t think it should ever be used for web “documents” but web apps already bastardize HTML and CSS to achieve their aims anyway. Accessibility remains the missing component.
shakna•12m ago
As far as standards is concerned, that API is ARIA [0].

W3C already offers guides for accessibility and canvas. But no one who opts for canvas turns around and remembers to do their landmarks.

BoorishBears•12m ago
Am I losing it or am I looking ClearType on OSX?!

I get the value in this and realize it's not for your polished -$500 ARPU consumer social apps, but man this is weird.

(Also if anyone who worked on it is here, it's crashing for me on OSX 26, Chrome 142.0.7444.135, if I run an animation and hit back as the animation finishes)

imcritic•56m ago
Is there anything we can do to stop it? Or will it come anyway?
keyle•41m ago
It looks like it comes just as a wasm payload, so, you can only vote with your feet.
piskov•40m ago
Why tho? We really need Silverlight reborn.

Also C# and .net overall are so damn good.

Anything to abolish the js and constant hacks upon hacks

viraptor•17m ago
You can make your own better system which supports GUI and provides a reasonable runtime that works on all current major platforms and provides development tools, years of ecosystem development, etc. etc.

If it's better than what MAUI provides and you can support it for years, I'm sure that could take over and many people would use it instead. But... will you and why?

labrador•54m ago
Three apprecitions:

1) In today's American political climate I think it's appropriate to express appreciation for immigrants to like Miguel de Icaza who dragged Microsoft kicking and screaming into cross platform .NET and is the godfather of .NET Maui

2) As someone who came up developing desktop apps for Windows and Mac, I never liked developing web applications. There was so much lacking, but now developing web apps is becoming like developing desktop apps. Now you get/put your data from HTTP calls instead of file system and database calls or with Blazor and SignalR you don't even have to think about those. This may seem obvious to younger programmers today, but it would have seemed like magic back in 2004 when Dymanic HTML and Ajax (both Microsoft) were being invented.

3) I'm grateful Microsoft has changed their old ways to be a forward thinking company. They still have problems that any GIANT, Inc. organization has, but let's not forget how far they've come.

piskov•42m ago
It wasn’t magic circa 2008-2010 — see silverlight
labrador•33m ago
Agreed, Silverlight was an unfortunate path to choose, a Flash competitor when Flash was dying.
thrownaway561•39m ago
Really... You just had to bring up politics in this discussion?
labrador•35m ago
Out of respect for Miguel de Icaza, yes
coffeeaddict1•54m ago
> We are collaborating with the Flutter team at Google to bring Impeller, their GPU first renderer, to .NET. That work is already in progress and as it lands, the MAUI backend will inherit those gains.

Interesting, I wonder how good Impeller is and if it's actually better than the new Graphite backend of Skia.

keyle•44m ago
More info here [1]

the big difference is this

    Predictable performance: Impeller compiles all shaders and reflection offline at build time. It builds all pipeline state objects upfront. The engine controls caching and caches explicitly.
or as described here [2]

    Flutter’s Impeller renderer outperformed Skia. Impeller eliminates runtime shader compilation stalls, delivering lower frame times and more stable performance. For animation-heavy, graphics-rich apps, enabling Impeller significantly reduces jank and provides a smoother user experience.
[1] https://docs.flutter.dev/perf/impeller

[2] https://medium.com/@raiden.lpf666/skia-vs-impeller-a-perform...

arkensaw•47m ago
In case anyone is confused

> Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, and Windows from a single shared code-base.

This new development adds Linux and Browser to that list.

I recently tried out .NET MAUI to see how easy it was to build a hello world app. It was quite messy getting it setup on Mac but eventually I got a simple hello world app working. Nice to use XAML again after all these years. I always liked it.

OsrsNeedsf2P•46m ago
Not to be confused with the MauiKit[0], the cross platform UI toolkit that had the name first[1]

[0] https://mauikit.org/ [1] https://github.com/dotnet/maui/issues/35

skrig•39m ago
I don't know if it has since improved, but .NET MAUI was really, really rough when I created a mobile app for my employer last year. I'm talking basic things - changing basic colors on the toolbar (1), putting non-text content inside a button (2), basic trigger behavior (3), to list a few. Not to mention that .NET UI has been years behind on hot-reload and developer tooling. Additionally, It was a fight to keep our app performant. The XAML compiler is a step in the right direction, but we had relatively simple views (in the dozens of components) absolutely tanking our FPS. I know there is probably some of my skill issue in there, but when I find basic things taking hours to optimize that I wouldn't even think about in React, I start to wonder about the framework. I spent a lot of time creating PRs on .NET MAUI but their team appears quite small and overloaded. I wish them the best - they're some talented folks, but I don't envy their job.

I can't help but think of Joel Spolsky's Things You Should Never Do (5) - the transition from Xamarin to .NET MAUI feels like a very similar mistake to Netscape. All of the battle tested Xamarin code, documentation, community examples, packages, etc. is now dead and has to be converted over to .NET MAUI.

On top of that, XAML just doesn't do it for me - having to deal with code-behind, MVVM view models, custom converters, and the actual XAML files themselves is insane for what is usually just a a single file in JS. The fact that you need to write a "InvertedBoolConverter" (4) just to flip a boolean is the most Microsoft thing ever. MAUI feels like it's designed just to keep a large development team busy. I'm not joking, we have a 42 line file that's only purpose is to flip booleans for XAML views.

We're a C# shop so it was nice to share our common C# with our desktop application, but I don't think it was worth it in the end. Sure JS has its problems, but I'll take those problems any day over MAUI.

I hope Avalonia can fix .NET MAUI - it'd be a massive kudos to them if they can smooth it over, but I can't say I'd willingly rely on this project long term.

1 - https://github.com/dotnet/maui/pull/15612 2 - https://github.com/dotnet/maui/issues/8191 3 - https://github.com/dotnet/maui/pull/15655 4 - https://learn.microsoft.com/en-us/dotnet/communitytoolkit/ma... 5 - https://www.joelonsoftware.com/2000/04/06/things-you-should-... https://github.com/dotnet/maui/pull/16965

mattfrommars•34m ago
In the .NET ecosystem, I have noticed people to shame .NET MAUI because Microsoft themselves don't use this framework - Microsoft Team is built on Electron and not MAUI.

Why build a product on MAUI when Microsoft aren't too sure about it.

layer8•29m ago
Generally speaking, I wouldn’t take what Microsoft uses as guidance nowadays, given a lot of the software they produce. (This is not an endorsement of MAUI.)
gfody•27m ago
microsofts own stuff never seems to be what gets momentum. there's a strong aftermarket for better ways like back in the borland era bcb and delphi, the more things change the more they stay the same!
vjvjvjvjghv•18m ago
That has been a problem since forever. Microsoft themselves rarely used the tools they gave to developers. SourceSafe, MFC, WPF and the .NET frameworks that followed were only for 3rd party devs. And when they used these tools, the software usually got worse. One example was Visual Studio. 2008 was really nice with great customization and good performance. Then they wrote 2010 with MFC and it was slow and lost tons of features.

I think it’s better on the server side with ASP.NET.

As far as I have heard MAUI is pretty buggy and has lost momentum. It will probably go on the long list of basically abandoned .NET UI frameworks

maxrmk•31m ago
Took more than a minute to load on my macbook. Ouch!

I really love C# and the .net ecosystem, but they just haven't made it work for web.

WhyNotHugo•29m ago
A toolkit announcing “Linux support” is pretty ambiguous. Does it mean Xorg support? Wayland support? Framebuffer support? The announcement provides no clue about this.
tylerchilds•20m ago
If React is what’s powering the start menu now, I’m more curious about why Maui doesn’t power the start menu.

.NET Maui running on windows seems like a more logical first step to prove the organization buys their own dogfood.

binary132•12m ago
Why does everything need to have a soulless mascot now? It’s offputting.