Back to Home11/11/2025, 10:50:32 PM

.NET MAUI is coming to Linux and the browser

321 points
268 comments

Mood

excited

Sentiment

positive

Category

tech

Key topics

dotnet

maui

avalonia

cross-platform development

Debate intensity80/100

.NET MAUI is expanding its reach to Linux and the browser, powered by Avalonia UI, a significant development for cross-platform .NET applications.

Snapshot generated from the HN discussion

Discussion Activity

Very active discussion

First comment

17m

Peak period

153

Day 1

Avg / period

53.3

Comment distribution160 data points

Based on 160 loaded comments

Key moments

  1. 01Story posted

    11/11/2025, 10:50:32 PM

    7d ago

    Step 01
  2. 02First comment

    11/11/2025, 11:07:49 PM

    17m after posting

    Step 02
  3. 03Peak activity

    153 comments in Day 1

    Hottest window of the conversation

    Step 03
  4. 04Latest activity

    11/14/2025, 6:06:30 PM

    4d ago

    Step 04

Generating AI Summary...

Analyzing up to 500 comments to identify key contributors and discussion patterns

Discussion (268 comments)
Showing 160 comments of 268
mwkaufma
7d ago
5 replies
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.
mrcsharp
7d ago
1 reply
This 100%. I hate the trend of UX/UI that got unleashed upon us in the last decade of the web. Everything is scaled up for touch interactions and has to have fancy animation and very "comfortable" spacing around elements.

I wish we can go back to UIs that focus on information density and usability. I love looking at Japanese websites because of this.

Antibabelic
7d ago
Why do you hate it?
jeroenhd
7d ago
1 reply
You can make CAD programs with any toolkit as long as you have a GPU surface to render your actual CAD output to. You can do anything with this toolkit from weather apps to video editors, map analysis, and PDF editors.

You can check out the Avalonia demo reel to see what you can already do with the .NET GUI stack that MAUI now uses on Linux and on the web: https://avaloniaui.net/showcase

zerr
7d ago
2 replies
GPU surface is one thing, but I believe OP means the actual UI controls: buttons, tabs, combo boxes, data grids, multi-window support, etc...
mwkaufma
6d ago
This + a reasonable data transaction layer that supports undo and reasonably large (multi gb) data structures.
jeroenhd
7d ago
I don't think that's a problem? The .NET library this is about, that now supports MAUI code unchanged, is already used in programs like https://github.com/sourcegit-scm/sourcegit/blob/master/scree... and https://github.com/GPUOpen-Tools/GPU-Reshape/blob/main/Docum...
zerr
7d ago
1 reply
Yes, that's my litmus test for GUI toolkits - is it suitable to develop Photoshop-like software? Or is it only good for yet another weather or todo apps?
mwkaufma
5d ago
Yeah, oddly Avalonia mostly passes that litmus test, but this added MAUI layer doesn't.
wvbdmp
4d ago
You could look at Godot. Their own editor is made with Godot’s own UI toolkit and in a CAD application you probably don’t care about some of the downsides this would entail for a CRUD app (accessibility, perhaps text layout etc.).
thewebguyd
6d ago
QT?

WPF & WinForms are also still around

js4ever
7d ago
4 replies
Too little, too late. Desktop apps are mostly dead.
lazypenguin
7d ago
1 reply
Desktop UI toolkits are dead or stagnant but the desktop ui is still king IMO
zigzag312
6d ago
I would much rather see web apps become canvas rendered WASM versions of desktop apps than desktop apps become webview apps. Latter is what we have been seeing in the recent years unfortunately.

Canvas rendered cross-platform UI frameworks like Flutter & Avalonia targeting browsers (WASM), might shift the balance back in favor of desktop UI.

labrador
7d ago
That's why desktop machines and monitors can't be given away. Nobody wants them /s
LeFantome
7d ago
MAUI is first and foremost a mobile UI framework. It was built for iOS and Android. The desktop is added on as a bonus so that you can target macOS and Windows as well.

If you are building a Windows desktop application though, Microsoft does not want you to use MAUI. You use MAUI because iOS and Android are your top platforms and you want to target macOS and Windows without writing dedicated applications.

Linux has always been missing. This Avalonia port fills that gap.

You would not target the web with MAUI either. I guess "you can" now because WASM is one of the platforms that Avalonia supports. Again, I guess you might if you already have a MAUI app and do not want to create one for the web. But you would never set out to create a MAUI app for the web.

malkia
7d 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.

sylens
7d ago
2 replies
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
7d ago
1 reply
Microsoft acts when it feels competitive pressure. I think Google's Flutter has been validated so Microsoft feels the need to respond.
keyle
7d ago
3 replies
Dart is a wonderful language though. I'm not switching back to using .NET anytime soon.
labrador
7d ago
1 reply
I love Dart, which I consider to be Google's C#. Either language is fine with me.
drykjdryj
7d ago
2 replies
Go is google's c#.
labrador
7d ago
1 reply
Dart is much closer to C# than Go is
zigzag312
6d ago
Originally, C# was more like Dart, but modern C# is like both Dart and Go combined and that's (IMO) the beauty of it.

Newish low level features of C#: https://em-tg.github.io/csborrow/

Quothling
7d ago
2 replies
Go is frankly the polar opposite of C#. Go compiles to a native binary with no runtime dependencies and it relies on simple garbage collection and static linking. C# runs on the .NET runtime which is heavily managed, gives you JIT, reflection, dynamic code generation and so on. Go views concurrency as fire and forget, C# views it as compose and await. Go is extremely explicit while C# is extremely implicit.

Now, I understand that you may talk about it from a non-technical perspective, but even so, there are major differences. C# is a general purpose language for the cloud/web, and so is Go, but Go is also widely used in other areas like in embeded software. TinyGo is soooooooo much better than working with C/C++ or Rust as an example. Places like that where you wouldn't usually find a transpiled language (other than maybe Python with MicroPython).

mrcsharp
7d ago
1 reply
C# has AOT compilation which creates a single, native binary. This has gotten so much better with .NET 10 and since the introduction of source generators to deal with reflection issues.

Also, check out nanoFramework for a .NET runtime that can run on MCUs like the ESP32 [1]

[1] https://github.com/nanoframework/Home

Quothling
6d ago
1 reply
Cool, I didn't know this. I see it's been a thing since .NET 8, but it also looks like something that is perhaps mostly meant for hobby projects? Or maybe I'm getting that wrong.
mrcsharp
6d ago
Definitely started that way for me. It was cool to see a console app written in C# be compiled straight to native and run. Since then, a lot of work has been done to make AOT viable for more workloads.

I wouldn't use it for an MVC application yet because a lot of features won't work but there are plenty of other areas that are using it now and one of the biggest examples is Avalonia apps compiling to native.

DeathArrow
7d ago
1 reply
.NET can be compiled to native binaries. .NET can be used for embedded development.

C# is more expressive and .NET comes with batteries included. Go is more explicit and more verbose.

You can pick up Go faster and is easier to reason about Go code when you first encounter a new project but C# feels like it enables you to develop faster and be more productive.

For web both are excellent and performant, even if they have different philosophy.

What I like about C# is that it becomes more functional and I can even mix F# in the projects if I want even more functional programming.

Quothling
6d ago
Cool I didn't know about it's AOT, but it looks very... well hobbyist. Anyway, "Go is more explicit and more verbose" is a feature, but that's a matter of personal taste.

I worked with C# for a decade, I'll likely never work with it again if I can help it. Not because it's bad, it's better than it's ever been. But because I really dislike the way they include their batteries. It leads to long debugging and refactoring sessions when tired people have written what is not their best work on years worth of thursday afternoons. I think people who like implicit frameworks must have been good enough to work in places that had better quality than the places I've worked.

zerr
7d ago
1 reply
I wish it was a real "systems" language as well, i.e. not single-threaded/javascript-mindset one. That's why I hope someday we will have a nice cross-platform framework for Swift.
zigzag312
6d ago
I whish that too, but I'm not holding my breath since Google needs Dart-to-JavaScript compiler, which will continue limiting features Dart can implement. The only way this can change is, if they move to WASM and drop JavaScript target.
LelouBil
7d ago
What would be to point of switching from Kotlin + Composel (Multiplatform) to Dart + Flutter ?

Currently my favourite way to build applications (desktop or mobile) is Kotlin and Compose.

I never used Dart, how would you compare it to Kotlin ?

davey48016
6d ago
I don't think Avalonia is actually affiliated with MAUI or Microsoft either
judah
7d ago
14 replies
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
7d ago
3 replies
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.

xg15
7d ago
6 replies
It's also an interesting question, why, in traditional rich desktop applications, I can't say I have ever missed the ability to select and copy text from the UI chrome - whereas on the web I'd definitly miss it and in badly designed mobile apps, I often do.

I think some part of UI design degraded with the web, where there used to be a clearer distinction between "user data" and "app chrome" areas than there is today.

I'd also like if we could get back to selections of more complex data types at some point and not just treat everything as text. UI toolkits have all kinds of lists and treeviews to model selectable entities, whereas in the browser, there just a single huge wall of text for everything.

eviks
7d ago
2 replies
> traditional rich desktop applications, I can't say I have ever missed the ability to select and copy text from the UI chrome

You've never had to type error code/message instead of copying&pasting? Or use search to jump to a specific settings section?

alasdairking
7d ago
1 reply
On Windows, with common messages boxes, you can just do Ctrl+C for copy and you get the message box text in the clipboard.

Don't know if that helps you particularly, but it is great when it works and little-known.

eviks
7d ago
Thanks, doesn't help me, but you're right, a good tip to know. Though I'd still prefer a similar option to start selection directly in the UI instead of finishing the job in a text editor, this would also help highlight text in a screenshot without having to do image post-processing! I'd even accept some arcane finger-breaking ctrl-alt-win-x-y-z (which I could rebind) for the privilege

All the more annoying when such years-old fundamentals are broken in all the new "supposedly better" frameworks

DANmode
7d ago
I’ve never done it twice, I can tell you that much!
mastazi
7d ago
2 replies
> why, in traditional rich desktop applications, I can't say I have ever missed the ability to select and copy text from the UI

I do miss this on an almost daily basis and I have stopped paying for services that force me to use an app without offering a website.

The last instance of this was just a couple days ago when I could not copy a tracking number from an e-commerce app (to then paste it into the shipping company website) but at least this e-commerce company has a web UI so I could rely on that.

Oh and the other one that I miss almost daily is cmd-F / ctrl-F

kace91
7d ago
2 replies
Most mobile experiences (and macOS desktop) let you select unselectable stuff with OCR.

For macOS is by screencap and selecting on preview, for phones in their respective “ai analysis views” usually long pressing the bottom.

I know it’s a silly flow when it could be selectable straight away, just pointing it out.

cons0le
6d ago
2 replies
This is why technology is becoming garbage. In 2025 instead of copy paste, we fire up a gpu in a datacenter. it feels like "software engineering" is just becoming a BS contest for "how much AI can we shoehorn into everything"
kace91
6d ago
Not fully disagreeing, but this lack of copypaste is not an intended ai feature.

- The “magic ocr thingy” exists for things like taking a picture of the real world and grabbing text from it, or grabbing text from a video from something you saw recorded there. Think translating a foreign sign or whatever.

- interfaces have, for unrelated reasons, become more hostile to standard actions like copypaste.

As a result people end up having to ocr-scan interfaces with the tool.

thewebguyd
6d ago
Some of it is because how people interact with and use tech has changed.

Mobile users have completely outpaced laptop/desktop users, and mobile users don't think in terms of files and text, so to them copy & paste is less important. The mythical "average user" moves arbitrary text and data around using screenshots and screen recordings instead of text and files.

Yes, it's incredibly inefficient, but I think it's evolved that day because selecting text is a real pain on a small touch screen, and companies have been trying to abstract away any concept of a filesystem for a long time.

So you or I might care and be bothered that we can't copy & paste something from UI chrome or content in a "web app" but the average person won't care, they'll just take a screenshot.

mastazi
7d ago
I never tried that, thank you!
majormajor
7d ago
"E commerce apps" are very much not the sort of traditional desktop application they were referring to. Note that they add "in badly designed mobile apps, I often do."

They're referring more to things like "you can't copy the text labeling the brush width field in Photoshop" (but you CAN copy the text out of that editable field). It's a part of app design people are extremely lazy with today, as you note.

In any sensibly designed desktop package tracking app that number would've been selectable or copy-able text, like how an email subject is in a desktop email app. (Thunderbird, say.)

(Interestingly, ctrl-f to find is one that many apps/OSes have now borrowed back, with the ability to "find" items in menus through a Help menu -> Search action.)

powersnail
7d ago
1 reply
> in traditional rich desktop applications, I can't say I have ever missed the ability to select and copy text from the UI chrome

I forgot what desktop application it was, but there was a time that I repeatedly needed to copy texts from a dialog, which didn't support text selection. It frustrated me so much, that I put together a script to do OCR on the dialog.

Supporting complex data types for copy & paste is good; but it is almost trivial to also support plain text copying as a fallback when it already supports copying of other mimetypes. The problem is that some UI has no support of copying in any format at all.

gmueckl
7d ago
1 reply
If it was a standard Windows dialog box by any chance, you could just have pressed Ctrl+C with the dialog in focus to copy the message. It's one of these subtle things that go almost completely overlooked.
thewebguyd
6d ago
There's a lot of nice little things like that in desktop OSes that we completely lose with everyone shifting to using electron, and I'm increasingly frustrated by it as time goes on.

on macOS, anything that uses the OS text input box has emacs keybindings. Universal text editing bindings across the entire OS for all native apps. You lose that with electron, just like you lose a lot of the windows niceties the moment apps stop using win32 and start overriding with their own custom UI toolkits in the name of "branding."

It's part of the big reason computers started to be perceived as difficult to use, and it's not because of the various operating systems. It's because desktop apps stopped respecting the OS and the user, so instead of only needing to learn the operating system's conventions, which would apply to every app built for it, you now have to learn every individual app's quirks and conventions.

The web just continued to make it worse where now every app is it's own little special snowflake.

croon
7d ago
1 reply
While I do occasionally miss it there as well, I think the main difference is that I very rarely use desktop applications for information gathering.

I never "read" a desktop application, whereas that is mostly what I use a browser for. And if I can't properly interact with text on a website, then I would likely reach for something else.

majormajor
7d ago
Back in ye olden days desktop applications for information gathering like Encarta let you select and copy text because they were thoughtfully designed and knew that "information you were gathering" should be different than "application chrome" - that's the distinction being made here.

Information-oriented desktop apps still do this - any good email client, for instance, should make it trivial to copy a subject line or "to"/"from" address even if it's in the UI chrome.

lproven
6d ago
1 reply
> I can't say I have ever missed the ability to select and copy text from the UI chrome

Good heavens. I boggled at this.

It's not every single day, but probably at least once a week I am frustrated by this, and have been since the rise of PC GUIs -- so, coming up on 35 years now. It was often doable on DOS-era PCs, especially if you had a mouse, or a multitasking environment like DESQview, or best of all, both.

tracker1
6d ago
Same, and especially with error messages/dialogs.
kyleee
7d ago
Not being able to copy text from UI interfaces is just normalization of deviancy. It should be the norm and it’s subpar when not possible imho
ttd
7d ago
1 reply
IMHO there's no gatekeeper of what the "real" web is or should be. It grew organically - regular people building things they liked or needed. It's certainly more of a life necessity than it used to be, but that happened organically too.

I know there are strongly held opinions about this, but I for one see no reason why the "application web" can't peacefully coexist, and interlink with, the document web. In my opinion it therefore makes sense to allow for different models for the application web, ones that do not revolve around a document.

On the other hand, if we're just bashing on javascript being the lingua franca of the web, that's a train I'll happily board!

DANmode
7d ago
If the “application web” can’t share the text to another app,

then forget that.

Kye
6d ago
I've had the same thoughts as I watch YouTube slowly but steadily subsume "podcast."

We were all worried about something like Spotify killing off open RSS feeds for them, but there's a growing number of people who have no idea what a podcast is because people are using the term for YouTube channels with full video and no RSS feed (video or audio) to match it. Sometimes language drift is good, but not when it's done on purpose to get rid of a free and open technology in favor of silos.

"Wherever you get your podcasts" only works as long as it's built on top of an open method of syndication.

a2128
7d ago
3 replies
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
7d ago
2 replies
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
7d ago
2 replies
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.

afavour
7d ago
1 reply
Then I’m showing my ignorance… how do you add ARIA landmarks to Canvas elements?
kg
7d ago
2 replies
You would create transparent DOM elements in the right places with the right ARIA attributes and content, I suspect.
afavour
7d ago
2 replies
I guess that’s what I’d like to see a better API for, then. Mapping on click events for invisible elements feels like a hack.
pmontra
7d ago
It's HTML imagemaps from the 90s, when we could not style buttons and navbars where GIFs with links in the right places. Browsers still have the code to render them.

https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...

https://caniuse.com/mdn-html_elements_map

MrGilbert
7d ago
OTH, we are still failing to provide a bare minimum for accessibility. Heck, we even needed a law (in the EU, that than needed to be translated to national law), so that companies providing crucial end user services would care about accessibility.
thayne
7d ago
That's possible. But it is difficult to get right, and can have poor performance if you you have many such elements.
zigzag312
6d ago
> But no one who opts for canvas turns around and remembers to do their landmarks.

Not completely true. Flutter has been adding some accessibility for web canvas target. [1]

I think Avalonia is in in the make it work phase. Accessibility will probably be added in the make it right phase.

[1] https://docs.flutter.dev/ui/accessibility/web-accessibility

troupo
7d ago
> I wonder if at any point browsers will offer a low level accessibility API for you to manually describe components

Accessibility Object Model:

https://wicg.github.io/aom/spec/

It's very slowly coming together, but it won't be rone for many years yet. Especially since what you want is Phase 3.

charcircuit
7d ago
4 replies
What screen reader? Over the last few years AI's ability to understand images has improved a lot.
cebert
7d ago
That’s not exactly fast for people who need these tools though.
a2128
7d ago
I'm not aware of any screen reader that works by continuously feeding screenshots of user interfaces into a remote expensive image LLM, which is an absolutely insane and impractical idea for many reasons, but I used standard TalkBack on Android
nkrisc
6d ago
Slow and expensive. You’re just proposing yet another “disability tax”.
happymellon
7d ago
I can't code, I'll use an LLM to write one!

I can't use your app, I'll use an LLM to read it!

ludicrousdispla
7d ago
1 reply
I'd just like the PgUp, PgDn, and arrow keys to reliably scroll a web page.
lproven
6d ago
Oh my yes.

I want every app and every web page to be 100% navigable if I do not have a pointing device attached to my computer.

And I want this enforced by law, by large rich countries. Accessibility to people with disabilities would be a good way: if your product or service is not accessible to people who can't see, can't use a mouse, or can't use their hands at all, then you can't sell it.

cheema33
7d ago
1 reply
> 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.

I was intrigued before I read this. This stuff is a non-starter for me.

piskov
6d ago
Can you ctrl-f in an iphone app? Or in vlc? It’s an app, not a document.
kazinator
7d ago
1 reply
Let's move the goalposts downfield. If you can't go into developer mode and mess with the DOM, and JS, it's not real web.
wiseowise
7d ago
1 reply
Unironically – yes.
kazinator
6d ago
By the way my comment was likewise already unironic.
LeFantome
7d ago
1 reply
MAUI was never intended for the web. This is not what Microsoft wants you to use it for.

WASM is just one of the platforms that Avalonia supports and so, if you run MAUI on Avalonia, you can run it on WASM.

If you do that though, it is going to be like rendering any other desktop GUI toolkit in WASM. It is not a web app. I mean, it is cool you can do it and MAUI in WASM is better than no web capability at all I guess. But you would never set out to create a web app in MAUI.

MAUI on Avalonia on WASM is really a modern replacement for Silverlight. And it will likely be about as popular.

The really cool thing is being able to target the Linux desktop finally. A lot of people will love that.

And, while MAUI was meant to use native controls on each platform, many people may prefer the Avalonia approach of having your app render the same everywhere.

JamesSwift
6d ago
Blazor+MAUI has absolutely been a focus of development from the start. What Im seeing with this is that MAUI is somewhat throwing in the towel and hoping to offload to avalonia to take the torch of development. I'm sad, because I was pretty in the weeds with MAUI at the start, as I was building a greenfield app at the time. It had a ton of potential to be a reimagining of Xamarin and how it fit into the broader .net ecosystem but they just shot themselves in the foot (both MAUI team and the broader MS dev efforts).

I havent been in that space for a couple years now so maybe they have gotten better, but I doubt that. I appreciate the heroic efforts of the MAUI team, but I think its just the unfortunate reality.

nicoburns
7d ago
Yeah. I think you need to render to actual DOM nodes when targeting the web if you want a first class experience.

We're betting on this over at https://github.com/DioxusLabs/dioxus where we're building a cross-platform UI solution that enables you to do this by having a web-centric API (we are developing our own custom HTML/CSS renderer for native platforms).

mhitza
7d 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?
cebert
7d ago
If this can’t support web standards it’s a nonstarter for me.
BoorishBears
7d 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)

DeathArrow
7d ago
>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.

That's because MAUI is intended for mobile and desktop apps.

If you want to use .NET for front-end web SPA, you can use Blazor which will behave exactly like you asked.

jermaustin1
6d ago
> They are islands of richness within a web page.

1000% - as a dotnet developer with 20 years under my belt, I currently don't see the reasoning behind this. With modern browsers, CSS/JS/HTML does SO much, you just don't have XAML. I like XAML (conceptually), but there is JSX for similar functionality, and it is at least compiled into real HTML, not just a applet.

I felt the same with silverlight as well. Why do we keep trying to reinvent Flash? We already have a far superior C# Flash in Unity compiled for Web (kind of a joke, but also not).

VikingCoder
6d ago
I can't hit my browser's back button.
osigurdson
7d ago
Agree. The examples feel a bit like I'm using a specific window in remote desktop session.
pjmlp
6d ago
Isn't Webassembly cool?

We got all the plugins back.

imcritic
7d ago
3 replies
Is there anything we can do to stop it? Or will it come anyway?
piskov
7d ago
1 reply
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

noveltyaccount
7d ago
2 replies
I want WASM+DOM so that we can use any language on the web
Shadowed_
5d ago
Beside already mentioned, there is OpenSilver[1]. Supports Silvelight and WPF. Renders to DOM+WASM. They are also planning support for MAUI.

[1] https://opensilver.net/

breve
7d ago
WASM and DOM in Rust: https://www.leptos.dev/

Uno can render to canvas or the DOM in C#: https://platform.uno/

Blazor renders to the DOM: https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blaz...

viraptor
7d ago
2 replies
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?

yndoendo
7d ago
1 reply
I started moving to using GO and Fyne for cross-platform GUI tooling. GO 1.21 supports Windows 7 with Fyne. Ya still have to support Windows 7 for work. No more wasting time with managing a Windows installer.

QT Framework is still one of the best for cross-platform desktop applications when speed is key.

viraptor
7d ago
1 reply
Searched the docs: No results for "Accessibility"

(Which is ok for some situations, but not for wide deployment like .net provides)

yndoendo
7d ago
Like I said tooling. Means that the User is well defined where Accessibility is not an issue. The tooling I creating is for people that have to engage with physical equipment; from replacing parts to making sure a motor is working properly.
homebrewer
7d ago
1 reply
Anything would be better than another UI toolkit made by Microsoft. They will abandon it in the matter of a few years like they did about 10 times already.
viraptor
7d ago
They may not be improved significantly now, but none of the toolkits got abandoned. You can still use anything from Win32 to MAUI today for a new app.
keyle
7d ago
It looks like it comes just as a wasm payload, so, you can only vote with your feet.
labrador
7d ago
2 replies
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
7d ago
1 reply
It wasn’t magic circa 2008-2010 — see silverlight
labrador
7d ago
Agreed, Silverlight was an unfortunate path to choose, a Flash competitor when Flash was dying.
thrownaway561
7d ago
1 reply
Really... You just had to bring up politics in this discussion?
labrador
7d ago
Out of respect for Miguel de Icaza, yes
coffeeaddict1
7d ago
3 replies
> 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
7d ago
1 reply
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...

nicoburns
7d ago
Yeah, buts that's compared to the older "ganesh" version of Skia. The new "graphite" version purportedly brings all those same advantages.
DeathArrow
7d ago
1 reply
Impeller is designed with mobile apps in mind while Graphite is designed with desktop apps in mind.
coffeeaddict1
6d ago
I don't think this is correct. Chrome uses Graphite and their biggest supported platform is Android.
BatteryMountain
7d ago
This is actually really good news, as impeller was built to replace skia. Its one of the best technical bits in the flutter stack in my opinion.
arkensaw
7d ago
1 reply
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.

ForHackernews
6d ago
1 reply
Is it like Flutter?
pie_flavor
6d ago
1 reply
Is Flutter like WPF?
ForHackernews
6d ago
No.
skrig
7d ago
1 reply
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

accoil
7d ago
Well, I guess Avalonia can solve 4 at least as you can negate a binding[1]. Good news for me as I recently started an Avalonia project, and thought you did still need an InvertedBoolConverter.

[1]: https://docs.avaloniaui.net/docs/reference/built-in-data-bin...

mattfrommars
7d ago
4 replies
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.

vjvjvjvjghv
7d ago
1 reply
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

okanat
7d ago
2 replies
You are mixing your UI frameworks and versions. VS 2010 is written in WPF. WPF is / was Windows Vista's and 7's UX. Old Control Panel in Win 10/11 still is WPF. All the wizards like ClearType wizard is WPF. MFC is much older (1992).

Unfortunately Microsoft likes to jump into bandwagons and many engineers at the company seem to like to reinvent stuff rather than adopt. WPF, WinUI2 and WinUI3 all share the same Xaml based structure. So they could have adopted WPF.

It is not that Microsoft doesn't develop advanced UIs with their frameworks. WPF is still well-used by Windows and other Microsoft utilities like Windows Terminal. They are just stupidly abandoning their built up bases for silly industry fads.

They jumped into tablet / touchscreen / hybrid-mobile-desktop bandwagon in late-2010s and tried to force WinUI as an UWP-only feature. It resulted in low adoption. They didn't adopt WPF to have same theming.

When WinUI2 failed, they tried to make modern C++ a reality and tried to remove UWP restrictions which is a good decision. However they diverted quite a bit resources into AI slop generation now and WinUI3 just languishes.

Same for MAUI. They tried to get into multi-platform, multi-device framework as a way to generate leads into Microsoft ecosystem.

They try to use various frameworks and UI stuff to get people hooked into the ecosystem and find ways to upgrade them into Azure and M365 customers. It is meaningless and tiring. All of those could be only WPF.

It is like Google and its many Bazel-like build systems (but not full Bazel) for each of Chrome, Fuschia and Android.

sirwhinesalot
7d ago
Everything you say is using WPF is not actually using WPF, other than Visual Studio.
vjvjvjvjghv
7d ago
Oh yes. I mistyped. 2010 was written in WPF
latentsea
7d ago
3 replies
Never build a frontend on a .NET technology. Period. They always end up unsupported in the end. Just use standard web technologies and thank yourself later. I've been a .NET dev for a decade now and that's what I've learnt.
password4321
7d ago
4 replies
Except WinForms, spectacular for Windows-only utility GUIs.
glzone1
7d ago
2 replies
No kidding - kind of wild that winforms is still kind of a gold standard experience today! I actually liked VB Forms - lots of easy rapid application development was possible.
issafram
7d ago
1 reply
WPF as well
memsom
6d ago
I like WPF and I code with it regularly, but the drag and drop UI builder was the worst aspect of WPF and generated terrible Xaml that was almost impossible to maintain.
memsom
6d ago
Delphi was the best RAD tool though. It was native code, not a weird interpreted or jitted app. It could also build to a single exe file. VB struggled with an unwieldy engine for most of its life.
fuzzzerd
7d ago
1 reply
> spectacular

Not exactly the word I'd use, since it really hasn't changed since VB4, but it's definitely reliable and stable.

memsom
6d ago
WinForms came way after VB4 and it was a .Net only technology.
nxobject
7d ago
IIRC, because of Wine, Mono has enough of WinForms to make a few things work. But who the hell wants to distribute an application with a Wine runtime?
mrweasel
7d ago
I was going to suggest the same, just use WinForms. It's basically feature complete, and it's going to be the last UI framework Microsoft is going to yank out from beneath you.
brokencode
7d ago
4 replies
As wrong as it feels to have to use Electron for a desktop app, it really is the safest approach for most applications.

Qt also seems to be a good option, though there are licensing considerations for commercial applications.

I’m excited for various upcoming Rust options as well, but right now Electron is the battle tested option.

I am curious though about Avalonia. I’ve heard good things, but it’s definitely a smaller player compared to Electron. I’d most likely choose it over Microsoft’s first party frameworks.

bigstrat2003
7d ago
1 reply
> it really is the safest approach for most applications.

It's also the option which gives your users by far the worst experience. Not worth it at all, imo.

brokencode
7d ago
2 replies
Not really. The downsides are mostly overblown.

Plenty of category leading applications like Discord, VSCode, Slack, Figma, etc. use it quite successfully.

PenguinCoder
7d ago
2 replies
All of those are examples of overbloated, slow, horrible user experience apps.
brokencode
7d ago
2 replies
They work great for me.
iberator
7d ago
Hey, I found CEO of Discord
homebrewer
7d ago
Oh yes, the great old "works for me". On a yesterday's supercomputer, I presume? I live in a "developing" (have doubts it's really developing) country, most people are running laptops with no more than 8 GiB of RAM (sometimes it's 4 or less), and all this Electron nonsense is running like molasses, especially if you're trying to use a computer like a proper computer and do multitasking.

And most of the world is like that, very few of us (speaking globally) have $2k to drop on a new supercomputer every few years to run our chat applications.

glzone1
7d ago
3 replies
Does their market share back up your take of them as horrible apps?

Are there QT or GTK competitors crushing them?

I always hear how terrible electron apps are, but the companies picking electron seem to get traction QT or other apps don't and seem to have a good cross platform story as well.

tjpnz
7d ago
1 reply
They said horrible user experience apps, not horrible apps. You can still deliver an app with a horrible user experience and build a profitable business. Ever done an expense report?

Companies aren't picking Electron due to inherent shortcomings in other platforms, they're picking it because it's easier (and cheaper) to find JavaScript devs who can get up to speed with it quickly.

brokencode
6d ago
Discord, VS Code, and Figma are all apps that individuals choose and are well liked despite many alternatives. Slack too I think, though I don’t have experience with it.

Your comment applies to Teams and I’m sure other electron apps. But the sweeping generalization that electron apps have terrible user experiences is pretty obviously incorrect.

rixed
6d ago
Beware with that logic. You notice successful electron apps because of how bloated they are. I suspect you use many Qt apps without even noticing.

One that comes to mind that I use daily and noticed only recently that it was implemented in Qt is the telegram desktop app.

Antibabelic
7d ago
Users will happily deal with a suboptimal experience as long as there are other things attracting them to the product. That's why Microsoft can do whatever it wants with Windows without worrying their users will run off somewhere else. So if you care more about people than businesses, maybe it shouldn't be an excuse to pick "better dev experience" over the user's.
vrighter
5d ago
All of those I avoid using due to their slowness. I can notice text-input lag in vscode ffs!
gr4vityWall
6d ago
1 reply
> Qt also seems to be a good option

I think Qt really is 'just' missing more language bindings, and a better hot reload story for more people to use it. Lots of devs (specially Free Software devs) would prefer to use native toolkits, if the prototyping experience was similar to how Vite is for web frontend stuff, I think Qt would be used a lot more.

PKop
6d ago
1 reply
They are building more language bindings to back QML frontends

https://www.qt.io/qt-bridges

gr4vityWall
6d ago
Thanks for sharing. I hope that initiative goes well. And again, integration with whatever solution the language has for hot reloading is a must these days for UI development.
DANmode
6d ago
For what value of “safest”?
jcelerier
6d ago
>As wrong as it feels to have to use Electron for a desktop app, it really is the safest approach for most applications.

> Qt also seems to be a good option, though there are licensing considerations for commercial applications.

you need to respect the LGPL with Qt. You also need to with Electron which uses Chromium which is LGPL.

apatheticonion
7d ago
Tauri is pretty awesome. Rust backend, WebView front end. Nothing uses native desktop elements of course.

To be fair, there is no practical way to write native desktop applications using stylistically consistent UI elements AND have it be portable AND in a language that you enjoy using.

As far as I can tell, Windows 11 doesn't even have a toolkit with platform UI elements.

GTK on Gnome is pretty okay and GTK-rs is not dissimilar to React. Who know what MacOS uses but something something Swift XCode.

But I agree, just use web technologies. Write once, ship everywhere (and hum loudly when people complain about poor performance - joking, it's the vendors' fault we have to use web technologies).

layer8
7d 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
7d 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!
SigmundA
7d 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-...

OsrsNeedsf2P
7d 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

108 more comments available on Hacker News

ID: 45893986Type: storyLast synced: 11/16/2025, 9:42:57 PM

Want the full context?

Jump to the original sources

Read the primary article or dive into the live Hacker News thread when you're ready.