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!


#10

Qml.Net is a good option. It leverages Qt/QtQuick so it has a fully featured control set, very performant and works on Linux/OSX/Windows.

PS: I’m the author. Here is my blog post comparing it to the frameworks currently out there.


#11

I believe it should be relatively easy to port WPF to OpenGL.

In fact, I believe Microsoft has very little choice but to do so, since otherwise WPF will die. Making it multi platform will reignite interest in WPF and in the end will be beneficial to Microsoft’s other products.

Does anyone know if Microsoft intents to open-source WPF at some stage?


#12

As far as I can tell, whenever Microsoft was asked “Since you’re bringing WPF to .Net Core 3.0, will you also open source it?” the answer was “We don’t know yet.”


#14

I’m very disturbed about Microsoft’s plans to make Linux and Mac second class citizens in .NET Core 3.0. The whole idea of multiplatform development is that all platforms should be equal. I’d rather see them give up plans to release WinForms only on Windows and instead focus on bringing WPF to all three platforms. As I’ve stated in an earlier post, I believe this is possible. At the very least they should open-source WPF so others can port it.

This whole .NET Core 3.0 charade makes me doubt Microsoft’s benign intentions.


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