Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port WinForms to Linux? #10028

Closed
MichaelAgarkov opened this issue Oct 2, 2023 · 2 comments
Closed

Port WinForms to Linux? #10028

MichaelAgarkov opened this issue Oct 2, 2023 · 2 comments
Labels
api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation

Comments

@MichaelAgarkov
Copy link

MichaelAgarkov commented Oct 2, 2023

Background and motivation

Windows Forms is very amazing and easy to use, and since it's open-source I don't understand how was it still not properly ported to Linux.

@MichaelAgarkov MichaelAgarkov added api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation untriaged The team needs to look at this issue in the next triage labels Oct 2, 2023
@elachlan
Copy link
Contributor

elachlan commented Oct 2, 2023

Winforms is a wrapper around C/C++ windows APIs. This means there is a tight coupling to the operating system and hence they won't ever do it.

The only way I can see it working is if we added a translation layer between the interop and winforms code, allowing a code path for Linux.

But honestly it's easier to just use Wine to enable compatibility. There isn't much advantage to a native Linux build.

If we wanted a desktop based UI framework like winforms that was cross platform it would have to use the Vulkan graphics API and MoltenVK to translate Vulkan calls to Metal on Mac. Microsoft is in control of dotnet and would be unlikely to support a competitor to their DirectX graphics API.

Tldr: won't be done, use wine it's easier.

@JeremyKuhne
Copy link
Member

As @elachlan points out it would be a monumental task with little benefit over using emulation or virtualization. Being a thin wrapper around Win32 means we're pretty hard tied into the idiosyncrasies of it. We dropped Unix support for System.Drawing as the task was too difficult to accomplish at an acceptable bar, WinForms would need that component with a whole lot more work on top to boot.

@JeremyKuhne JeremyKuhne closed this as not planned Won't fix, can't repro, duplicate, stale Oct 4, 2023
@ghost ghost removed the untriaged The team needs to look at this issue in the next triage label Oct 4, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation
Projects
None yet
Development

No branches or pull requests

3 participants