Is there any GUI / UI for C# which work on every CLR?

Unlike Winforms which depens on some windows .dll?

Something like Java Swing (runs on any JVM).

Maybe something completely written in C# without some extra dependencies.

Or maybe even a Command Line Tool.

  • I do not understand what you mean by "Or maybe even a Command Line Tool." Could you clarify that part, please? Jun 6 '21 at 15:58
  • As far as I know is C# using OS build in Consoles to make output via System.Console.Write. So the Console is not coming from the VM itself is uses OS dependencies. So are there alternatives which would use a Console Written pure in C# which is the same on every OS a CLR runs on?
    – MIkey
    Jun 6 '21 at 19:03

IMHO the real problem is that .NET does not run on all operating systems. That's why we needed Mono on Linux. For a .NET application to work on arbitrary operating systems you would need .NET Core.

Problem here: Microsoft does not provide the means to implement a GUI in .NET Core until version 3. With version 3 you get WinForms and WPF support, but those make your program platform dependent again. That's not what you want.

I am looking forward to build my first cross platform app using AvaloniaUI. I tried their Control Gallery which looks promising.


It is cross platform:

supporting a wide range of Operating Systems such as Windows via .NET Framework and .NET Core, Linux via Xorg, macOS.

Hopefully it's quite complete (I can't judge for myself yet)

Avalonia is ready for General-Purpose Desktop App Development.

And it's free

MIT licensed

  • Thanks for your fast answer! Since you mention "That's why we needed Mono on Linux." does perhaps a GUI / UI exist that works on every monoVM? In my search I found a ported version of WinForm 2.0 to mono but what does that exactly mean? Did they rewrite the .dll to another platform/platforms? Or rewritten it to work on independent on any monoVM? It also seems like some people say it wont work but without further explanation so...
    – MIkey
    Jun 11 '21 at 12:32
  • You also mention Avalonia. Does Avalonia have dependencies? Or does it only work with.Net core / .Net 5? I found this packed nuget.org/packages/Avalonia. The only thing what isnt in .NetCore is "System.Runtime.InteropServices.RuntimeInformation". So can i assume it is or rather not?
    – MIkey
    Jun 11 '21 at 12:34
  • Yes, Mono replicates the .NET framework. I've tried Mono in 2008 or so. At that time, the results of a WinForms application was not the same as on Windows. It's probably hard to prove without providing the source code of a fully-fledged application. Jun 11 '21 at 13:49

Since you mentioned "maybe even a command line tool": there is gui.cs and looks like Norton Commander. It's funny to see it in action:

Animated GUI.CS

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.