4 ms·
It depends... .NET 6 was already capable of most things you are looking for, but there are some limitations. I personally think it is a really versatile langua
by sandreas 3y ago
It depends...
.NET 6 was already capable of most things you are looking for, but there are some limitations. I personally think it is a really versatile language and if you know it, you can get the most things done somehow.
I wrote a little cross platform C# command line tool called `tone`[1] for tagging audio files and it compiles via github actions for windows(x64), linux(x64,arm64,arm6,arm7), macOS (x64, arm64) as a single monolitic binary (similar to `golang`), which is pretty cool.
With the right compiler flags it is not even too big (about 20MB, for comparison a `golang` binary with similar features would be about 5MB, `rust` more like 1MB or less). You can also go WASM (which is generally supported, but feels a bit experimental at times).
In the GUI department there are three main competitors:
- MAUI - Windows, macOS, Android, iOS (Microsoft's pet, xamarin successor)
- Avalonia UI - Windows, Linux, macOS, Android, iOS, WASM
- Uno Platform - Windows, Linux, macOS, Android, iOS, WASM
All these feel kind of unfinished, I like Avalonia UI the most, but it's lack of standard libraries for real world apps (Preferences, SecureStorage, Encryption Wrappers, Phone-Hardware-Access, Media-Players, WebView) and the outcoming App Size (>50MB) made me use Flutter for my personal projects (App size ~15MB for the same feature set). For some Apps it might be ok.
.NET may also still be incompatible / unfinished on other OS and platforms (e.g. RISC hardware or BSD operating systems). So if you only target the mainstream systems like x64 and the raspberry pi, it might not be a real problem.
[1]: https://github.com/sandreas/tone https://github.com/sandreas/tone
- poulpy123 3y agoI would target the main desktop, and maybe raspberry and android but it's very far from my horizon and not a criteria. I was thinking that flutter is a dart library/framework ? How is it compatible with C# ?
- sandreas 3y agoFlutter is written in Dart, nothing to do with C#, but a cross platform UI library. I think Flutter has a lot of advantages over the C# UI libraries and is worth learning when planning a Cross Platform UI or App. It's possible with C#, but you have to work around a lot of shenannigans depending on the use case. Command line apps are totally ok with C#...
- poulpy123 3y agoThanks !