In “Considering Xojo Alternatives – Avalonia” I discussed that open source framework for cross platform from a single code base.
There’s another of those, called Uno. I decided to pull together everything I could find on Uno vs Avalonia, and Avalonia seems to come out on top pretty decisively. Following are remarks I drew in from Avalonia vs Uno threads on reddit and a couple of other sites:
Avalonia Pros:
Less code relative to WPF “Like WPF 2.0”
Has the better tech stack
“Less convoluted”
“Getting up & running was much easier with Avalonia”
Project structure “simpler & more straightforward”
Avalonia cons:
Poorer docs and support (according to a couple of people)
“The only thing I wish Avalonia UI could do, that UNO does, is to port the Microsoft UI libraries like WinUI3 controls for a better UI developing experience.”
Avalonia comments:
"Open source, powered by Skia, backed by JetBrains, and quite battle-tested at this point for small to medium-sized apps. In theory perfectly capable for enterprise as well, since it’s basically a spiritual successor to WPF, which has been an industry standard for about 15 years.
They’re diving into mobile and WASM well, but that’s more of a recent effort and I haven’t tested that yet."
“Avalonia is desktop first, Uno is mobile first”
Uno Pros:
Better docs and support?
“Powerful once you figure it out and coax it to work” (most recent release seems to address some of this reported finickyness)
Uno Cons:
“More convoluted”
“More fragile, tougher to set up”
“Templates are broken, right out of the box”
“Finicky and brittle”
I tried Uno back in June 2021 and decided to use Xojo instead. I found it really slow and that it used a lot of CPU and RAM. I’m assuming it’s made progress since then as I didn’t really find it usable.
I did a project with Avalonia at a similar time and it was better than Uno. However, I haven’t used either recently.
I’ve been concentrating on Vala for the last year or so and haven’t tried much else during that time.
With Avalonia there are some extra commercial add ons of interest to certain enterprise customers, such as a way to run existing WPF apps with trivial-to-no changes on Avalonia (in the future, a similar functionality for WinForms might be possible, but nothing announced). There are enterprise support contracts, that sort of thing. It’s how they generate revenue to help support the open source core efforts.
Yes Avalonia is termed an “opinionated” framework, it is pixel-identical on all platforms. If you want pure native controls per platform, then MAUI would be more the way to go. Not sure about Uno.
ETA: a quick search suggests Uno uses native controls, and one response on Stack Overflow specifically says there are no renderers in Uno. Uno seems to be more of a bridge for WinUI and UWP apps to go multi-platform.