Comment by Dwedit
17 hours ago
WinForms is a layer built on top of raw Win32. So it's not portable.
Even though Wine exists, Win32 calls can only be made from Win32 programs, not native Linux programs. So a WinForms app using the latest dotnet would need to run the Windows version of dotnet under Wine, and not use the Linux version of dotnet.
True, but: Microsoft haven't made a better UI framework that's portable to Windows yet. Everything after WPF has near zero adoption, including (critically important!) by Microsoft itself.
>WinForms is a layer built on top of raw Win32. So it's not portable.
Neither are SwiftUI and AppKity.
Mono used to have libwine embedded. You know, libwine exists as a library running and compiling Win32 natively under Unix. Instead of PE binaries you would run ELF Linux ones, but with nearly the same outcome.
Every time I tried following alone with the winelib/winemaker documentation, I always ended up with an ELF that had to be invoked using "wine" to run. Nothing that could self-load any of the wine dependencies.
Mono supported WinForms. But IDK how did they integrate it with the CIL.
But for sure they used WineLib.