top | item 40231624

Uno: Create Beautiful Cross Platform .NET Apps Faster

208 points| thunderbong | 1 year ago |platform.uno

147 comments

order
[+] brushfoot|1 year ago|reply
Some questions that aren't in the FAQ:

- What is the license? Apparently Apache 2.0 [1].

- What is the minimum web bundle size and startup time?

- On desktop, what is the minimum RAM usage? Binary size?

- Is there a WYSIWYG editor?

[1] https://github.com/unoplatform/uno/blob/master/License.md

[+] francoistanguay|1 year ago|reply
- Yes, Apache 2.0 - Web is meant for WebApps, not websites. Including Uno+DotNet runtime it's about 4mb compressed. - No WYSIWG editor, yet, but Hot Reload works really well.
[+] irq-1|1 year ago|reply
Is the website wrong? The repository for the toolkit is MIT, but the website says free for under $1million...

https://github.com/unoplatform/uno.toolkit.ui/blob/main/LICE...

https://platform.uno/uno-toolkit/

DEV FRIENDLY LICENSING

Uno Toolkit License

Uno Toolkit is available for free for individual developers and businesses with revenue of less than USD 1,000,000. If your revenue exceeds this threshold, please reach out to us to obtain a license for Uno Toolkit and access the complete suite of development accelerators.

[+] cfn|1 year ago|reply
One thing I don't understand about Uno is how do they make money. Everything looks very well done and I have been following them for a few years but I don't see how they will survive without selling anything.
[+] cameronh90|1 year ago|reply
Any company that is giving away open source software for free seems to eventually go down the route of open core or restricting commercial use of their open source product.

Uno seem to be starting to go down the enterprise support route - plus open core with their recent Figma plugin release. At least the Figma plugin is very tangential to the core product so it's hard to imagine it competing for features at this stage.

Though with the recent spate of open source company rug-pulls, and I'd struggle to justify using it. It seems like open source is increasingly just being used to build market share, then the VC/PEs come in, make a "contact us" enterprise pricing page, and suddenly issues and PRs start getting rejected because they compete with the paid add-ons.

I really hope the same won't happen with Uno, because it looks like a great library, and something that's missing from the dotnet world. Their sustainability blog post gives me hope, but... sadly it would not be the first time that founders with good intentions find out that running an open source company is nearly impossible, end up taking funding to keep up, then the rest is history.

[+] userbinator|1 year ago|reply
It's .NET, mentions Windows and native, yet none of the screenshots look anything like native Windows controls.
[+] humzashahid98|1 year ago|reply
Uno wants applications to look the same across platforms (as Flutter does) but still wants to use native controls. So their approach[0] is to have default styling applied to every control which makes the native controls look the same on each device [0].

I think the main benefit with this approach is expected-behaviour (like how different desktop operating systems have different textbox behaviour), and that whatever accessibility you get by default with native controls is there. [1]

I don't really find their approach to GUI development compelling though, with them choosing a middle ground between "wrapper around native controls" and "implement everything yourself".

[0] Except on Linux and web, where Uno draws everything itself, imitating controls that look like GTK (on Linux) or UWP/WinUI (on web). These are the platforms I briefly tested on and I didn't have an enjoyable experience with the output due to non-native/non-expected behaviours.

[1] Page on accessibility: https://platform.uno/docs/articles/features/working-with-acc...

[+] pjmlp|1 year ago|reply
Uno is based on UWP, on Windows it uses the native UWP stack.
[+] alkonaut|1 year ago|reply
I don’t think native here refers to the control styling being similar to Win32 on Windows.
[+] jeremycarter|1 year ago|reply
I could be wrong, but it might be able to host native components or draw your own.
[+] rkagerer|1 year ago|reply
Is there a "gallery" where I can try out one or two apps developed using this, on different platforms?
[+] javajosh|1 year ago|reply
I just learned about this thing today, so take this with a grain of salt: there are links out to two apps, Simple Calc and Tube Player, at the bottom of the home page. These are tutorials and source code, not a finished product. There is also a "gallery" on the top right, and you can play with the UI components rendered in the web: https://gallery.platform.uno/.
[+] arunc|1 year ago|reply
Uno has been around for over 4 years. Wondering why this hasn't picked up so far, albeit being a very flexible platform/framework.
[+] ejiblabahaba|1 year ago|reply
Presumably because, much like the half-dozen other flexible cross-platform frameworks Microsoft and friends have gotten one-third of the way to a viable product before abandoning to chase the next shiny thing, it's riddled with bugs, about ten years behind the documentation of a more usable framework from the 2010s, and has basically zero third party support from the likes of Infragistics and SyncFusion.

UWP left behind a shockingly large number of perfectly serviceable pieces of WPF, at a time when the emergent UI experience on Windows 8 was being written off by almost everyone, Windows Phone was DoA, and people were starting to realize they could just write web pages and run GUIs in the browser instead. It's been a long, bumpy, downhill ride ever since. The fact that Electron.NET and Blazor is a serious UI suggestion from Microsoft these days should tell you everything you need to know.

I'm sure with enough effort it's usable and maybe even nice in some ways. I did some proof-of-concept work with it two years ago and got maybe 50% of the way to where I wanted to be in 8 hours, but got stuck at styling issues for which there was limited documentation. In the end, I'm more confident these days in WPF + Avalonia if I really need cross-platform - even if there's comparable bugs and limited documentation, there's at least some momentum still behind the project. UWP, all three busted half-finished versions of WinUI, MAUI, Blazor + Webview2, Blazor + Electron.NET... even Avalonia, thanks to the weird decision to change styles to behave more like CSS... it all still struggles to be as usable as WPF.

[+] isodev|1 year ago|reply
All cross-platform frameworks are somewhat underdelivering on their promises. Even if you get an app going quickly, you end up in some kind of maintenance hell a few months down the road.

This is a 3rd party framework on top of .NET (which itself is a 3rd party on mobile) which is 2 layers of abstraction on top of the actual thing that will run on the user's device. Microsoft takes a full year to update their GitHub runners with the latest macOS and Xcode versions, can you imagine the risk of having to wait for so many parties to update/fix their things?

Flutter and RN are not immune to this effect, every year when there is a new iOS or Android release, existing apps just break and tooling takes quite some time to catchup. It's so many side quests suddenly appearing without added value for the developer or the user.

[+] mpartel|1 year ago|reply
The rather prominent XML on the front page might scare folks off.
[+] theCodeStig|1 year ago|reply
Has anyone tried Uno with F#?
[+] francoistanguay|1 year ago|reply
You can create an F# class library and use it with Uno, it's all .NET. We just don't have a dotnet Template for it just yet.
[+] qwerty456127|1 year ago|reply
Isn't Avalonia better?
[+] m_eiman|1 year ago|reply
Seeing several comments about Avalonia made go have a look at their website. Then I found the price page, and wow - that's a price!

€19,500 For the 1st app. Second app only €4,500

[+] watersb|1 year ago|reply
I was confused by the name, because I remember 'Uno' as part of OpenOffice.

I presumed that this was OpenOffice internals that support cross-platform UI and OpenOffice scripting.

But apparently, the 'Uno' internals in OpenOffice are just the internal object message bus and don't have anything that is visible to the user.

https://wiki.openoffice.org/wiki/Uno

[+] issafram|1 year ago|reply
How does this compare to Avalonia?
[+] exceptione|1 year ago|reply
The right question, as Avalonia is the gold standard for the cross-platform .net ecosystem.

Maybe this opinion piece might help: https://www.codeproject.com/Articles/5366945/Multiplatform-X...

His conclusions:

«Now what I mean by "better" - it (ed: Avalonia) allows considerably faster development, maintenance and support of the products. In particular:

   - It is a more powerful UI package allowing much more re-use and creating shorter code faster to achieve the same functionality. Part of the reason for that is that it is not confined to WinUI/UWP bounds - it is actually more powerful than WPF which is in turn better than WinUI or UWP. Another reason is that it has a better implementation with a lot of code re-usable across all of the platforms while Uno and MAUI essentially have completely different implementations for each of their platforms.
    
   - There are many features in Avalonia that are not implemented in Uno or MAUI, while I do not know a single feature implemented for Uno or MAUI that would not work in Avalonia. If someone knows a single feature available in Uno or MAUI but not available in Avalonia, please mention it in the comments and I will refer to it in this article.

   - Avalonia covers all the same platforms as Uno and more than MAUI does and has considerably fewer differences between behaviors on various platforms.


   - Avalonia is easier to switch to for an expert WPF developer than to Uno or to MAUI.»
[+] YellowTech|1 year ago|reply
Is this just me or does Firefox become completely unusable when opening the homepage platform.uno?
[+] CaptainOfCoit|1 year ago|reply
Works almost perfectly fine for me with Windows 11 + Firefox 125.0.2 (64-bit), besides the top menu item icons not rendering. Reason for the icon rendering issues seems to be ill-configured cross-resource sharing, so should be the same for everyone else with a properly configured browser.
[+] ajpinedam|1 year ago|reply
Using Firefox (Developer edition here, the blue one), and I don't see any issue.
[+] KacharKhan|1 year ago|reply
How long have Uno being FOSS ??
[+] francoistanguay|1 year ago|reply
Uno was open-sourced in 2018.

Has been in development since 2013.

[+] jbverschoor|1 year ago|reply
What's the difference between the NativeScript UI library and this?
[+] sasakrsmanovic2|1 year ago|reply
Many differences. To begin, NativeScript is JS based, where Uno is .NET Based (therefore C# and XAML).

Fun fact, I worked on NativeScript team, and now on Uno team.

[+] king_magic|1 year ago|reply
Cross-platform development, the scam that never ends.
[+] sasakrsmanovic2|1 year ago|reply
Why? Seems like a flaming comment without any substance to back it up. Could you elaborate please?
[+] matijash|1 year ago|reply
this roughly reminds me of Xamarin? Is there a similar philosophy behind it?
[+] francoistanguay|1 year ago|reply
Uno achieves similar goals to Xamarin.Forms/MAUI. It's also based on .NET.

Main differences are that it also targets Linux+WebAssembly, and it's meant to be Pixel-Perfect so it would look and behave the same on all platforms by default.

It also offers a variety of additional packages out of the box and aims to be an end-end platform instead of solely a UI framework: Hot Reload, C# Markup alternative, a toolkit of mobile-first controls, design systems, reactive state management (MVU-like), recipes for Authentication/Navigation/Logging/DI/...