Where can I use GUI with .NET Core?

0

I've seen some questions about GUI like one in C and the like, and I was curious about the use of a GUI with .NET Core on various platforms. I know it accepts UWP in Windows but not WPF or Windows Forms. And on the other desktop and mobile platforms, is it possible to use GUI, or does .NET Core only work in console on other platforms?

    
asked by anonymous 04.08.2017 / 15:06

1 answer

3

Leaving aside Xamarin that is not .NET Core and meets the mobile for Android and iOS (wheel UWP in the almost-terminated Windows Phone), but I think these products will approach, it is possible to develop GUI in .NET Core with any library that accesses the GUI API of the operating system you are using.

Official has nothing in addition to those mentioned. But there are some projects that are available to the community, which is one of the ideas of .NET Core, letting the community provide what it needs beyond the platform core (I would not miss the pun). I will list the most important, although I do not use them currently, so I can not talk about the results, some are not ideal:

  • GTK # - Linux, MacOS and Windows, just to name the main ones, works well in all but there are some weird things out of Linux. It was not developed for the .NET Core, but for the Mono, but runs in the .NET Framework without difficulty, there is no reason to have problems with .NET Core. They are standard libraries and have lots of people using it, even have other libraries drawing on it. There's a binding more specific to .NET Core , but I do not know it.
  • MonoMac / Xamarin.Mac - Obviously only works for MacOS, it came from Mono, but nothing prevents you from using with .NET Core in the same way.
  • WinForms - Yes, it can be used in Mono implementation. It's not one of the best-written software you've ever seen, but it works across multiple platforms.
  • QtSharp - It's still far from complete implementation, but you can already use something from Qt .
  • Avalonia - A multi-platform GUI with its own renderer, which has advantages and disadvantages.
  • Eto - A layer that uses existing libraries. Of course if you use WPF features, it will not run on Linux, if you use something from Cocoa, it will not run on Windows.
  • Xwt - It's a layer on top of other engines .
  • Unity - It's more for games, but it does not stop having your GUI.
  • Noesis - It is paid for large projects, but runs on several platforms and as in WPF, it seems to have potential.
  • Electron - It is not a traditional GUI, but you can use it as one, of course a part will not be in C #.

It has more exoteric and alternative platform GUIs. Remember that .NET Core should be able to run almost any platform from embedded devices to video game consoles that may have specific libraries.

GUI has always been a problem, so far I do not think there is one suitable for platform and specific technology, some even worse than running well at all, a little guilty of operating systems, a little blame for existing products. >     

04.08.2017 / 15:30