upvote
It lacks hardware acceleration.
reply
Does it need it?
reply
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.

reply
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.
reply
>WinForms is a layer built on top of raw Win32. So it's not portable.

Neither are SwiftUI and AppKity.

reply
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.
reply
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.
reply
Mono supported WinForms. But IDK how did they integrate it with the CIL.

But for sure they used WineLib.

reply