Cross Platform GUI


#1

As far as I know WPF has not been open sourced yet. And even if it was, the framework relies on DirectX, a Linux/Mac/mobile port would surely be problematic.

Right now, .net Core seems to be made solely for ASP.NET . Which is great and a good place to start, but still, I would like to develop cross platform client-side GUIs. The .net foundation has a quite prominently placed link to the MVVM Light Toolkit http://www.dotnetfoundation.org/mvvm-light-toolkit . It is described as a cross platform toolkit that allows the developer to create GUI’s for WPF, Silverlight, Windows RT, … sounds great. But honestly, I don’t understand what this is supposed to do. If it was just an alternative to WPF, then Microsoft wouldn’t advertise it. If it runs cross platform, why emphasize WPF, which hasn’t been ported yet.

The website of MVVM Light itself http://www.mvvmlight.net/ reveals that this project relies heaviliy on Mono and Xamarin. Both of which are not entirely open source. A Xamarin license costs dearly. Microsoft announced that in the future it would support Android and iOs next to Windows RT. Fantastic ! But how ? Hopefully not by redirecting us to Xamarin.

Does MVVM run on .net core ? Is it supposed to run on .net core in the near future ? Is there a cross platform GUI framework that’s already usable or in active development ?


#2

If you haven’t come across this topic, yet, take a look.

There are a couple open source projects mentioned there which attempt to solve the Cross Platform GUI problem with a common API for the native UI libraries for each platform.


#3

You can also check out Nevron Open Vision. It’s a cross platform library on which you can develop your application on C# and then just compile it for Windows, WPF, Mono Mac, XamarinMac. It is commercial, but has more controls than GitHub and the rest of the open source platforms. You can see more information here.


#4

I don’t think anyone realizes this but many of those frameworks use System.Windows.Forms underneath or WPF, both of which need .NET Framework libraries (.NET Core can’t use these libraries). The GTK# backend I think would be the only possible backend on those frameworks unless they change it to interact with P/Invokes.

This is an example as to why Microsoft should just allow some .net framework UI libraries to access .NET Core (a WinForms backend would be possible on windows only, while other platforms use other backends) so that these frameworks (Xwt or Eto.Forms) can work properly and not just limit the usability of .NET Core to a web framework in the future.


#5

@xanather; Why not just use GTK# on all platforms via Eto.Forms (or something similar)? Xamarin cross-platform Desktop programs do this,essentially by default when written from the ground up.


#6

I’ve shared one idea I had for accomplishing this in Anyone porting WinForms (Mono) to .NET Core


#7

Hi All - you can also consider Nevron Open Vision - it allows you to write UI’s that work on Windows (Wpf and WinForms), Silverlight and Mac (Xamarin Mac and Mono Mac) all from a single code base, with the same identical look and feel.


#8

We, Noesis Technologies, are developing a multiplatform implementation of WPF. The name of this middleware is NoesisGUI. More information at:


#9

It would be preferable if the license for a GUI framework were a more permissive MIT license rather than the more restrictive alternatives.

One of the great parts of this project (coreclr) is the permissive license, hopefully other projects follow suit.

Looking at the license for xwt, it appears to be MIT licensed!


.NET Foundation Website | Blog | Projects | Code of Conduct