Open zaimoni opened 3 years ago
Inquiry made at https://old.reddit.com/r/csharp/comments/p2gxo6/migration_from_winforms_recommended/ .
It appears that there are zero Microsoft-supported options. (MAUI is due Nov 2021 but will not be ported to Linux by Microsoft. Windows Presentation Foundation and Universal Windows Platform are also locked-into Windows, and Xamarin.Forms is both deprecated in favor of MAUI and does not have Linux as a target.) Let's ignore Webassembly i.e. Blazor for now.
Candidates proposed at time of composing this:
Avalonia (favors desktop) http://avaloniaui.net/ ; handles Linux assuming Xorg: https://github.com/AvaloniaUI/Avalonia
Uno (favors mobile) https://platform.uno/ ; handles Linux assuming .NET 5: https://platform.uno/docs/articles/getting-started/requirements.html
QMLnet: https://github.com/qmlnet/qmlnet (assumes QT/QML)
Silk.NET: https://github.com/dotnet/Silk.NET; appears to handle Linux assuming .NET 5
Not recommended on Reddit: Monogame https://www.monogame.net/ . Probably due to last release date (August 10, 2020) predating .NET 5 .
From MP at https://roguesurvivor.proboards.com/post/3063/thread
Long story short, I'm not familiar enough with the Linux landscape yet to offer any valuable guidance. It's a tricky time too, as most distributions have views towards retiring xorg in favour of Wayland in the not-too-distant future. Add to that the fact that there is heavy fragmentation between QT and GTK amongst the major desktop environments. Therefore, if you are indeed keen on taking a shot at a Linux build, all I can suggest is to pick whichever API seems most appealing to you. If nothing else, I'm happy to playtest whatever you might come up with. And if the future lends itself I might get back to chipping in with some code somewhere down the line.
Key points:
https://old.reddit.com/r/roguelikedev/comments/p6wdpl/what_does_this_opengl_error_mean/ :
OpenGL in general has the known problem on Macs that Apple refuse to support it properly; they would rather force Mac developers to use their proprietary Metal API. It's been horrible for many years, and gets increasingly and differently broken with every OSX release.
It turns out that directly using the Form class from the System.Windows.Forms namespace drags in a hard Windows operating system dependency via System.Drawing. A more cross-platform alternative is said to be Windows Presentation Foundation.