4 ms·
WinForms is just a wrapper around Win32 API - which is closed, and so won't run on other platforms. So in many ways very similar to Apple's position on Swift an
by pkphilip 6y ago
WinForms is just a wrapper around Win32 API - which is closed, and so won't run on other platforms. So in many ways very similar to Apple's position on Swift and SwiftUI
- DaiPlusPlus 6y agoYes, but even-so it's now far easier to make an alternative WinForms implementation for non-Windows platforms. Mono had their own workable WinForms implementation a while ago (which was a clean-room implementation, IIRC), but now that isn't necessary. WPF, unlike WinForms, is ostensibly fully separate from Win32 and so should be possible to port it to non-Windows platforms.
- simonh 6y agoMono reimplemented WinForms from scratch, and any port of WPF would also have to be a from scratch reimplementation. Same for SwiftUI.
- DaiPlusPlus 6y agoBut they don't need to reimplement it entirely from scratch or as a clean-room implementation because: 1. WPF is now MIT-licensed. 2. Unlike WinForms, the bulk of WPF is managed-code, not a thin-wrapper over Win32. Therefore anyone can now port WPF to Linux, macOS, etc - and they only need to port the "PresentationCore" part of WPF (i.e. the native parts that expose Direct3D drawing surfaces to WPF).
- colejohnson66 6y agoI wrote a project about a decade ago that used WPF and was disappointed to hear later that Mono wouldn’t be implementing a clone. They actually recommended Silverlight if one wanted cross-platform WPF. But WPF is just so much better than WinForms IMO, and Silverlight was on its way out then.