Originally posted by shmerl
View Post
Announcement
Collapse
No announcement yet.
Microsoft Makes Open-Source Windows Forms, WinUI, WPF
Collapse
X
-
I predicted this would happen... I was naysayed but I called it. Basically here's the deal: Microsoft needs to be thought of not as a monolithic entity but as a half dozen or so different silos that and the Developers and Tools Division is very on board with open source. However they didn't have control of WPF or WinForms to be able to release them Windows Division did which is/was hostile to open source. So they had to be shown it works, and lobbied by Developers and Tools, and so here we have them finally testing the waters. Give it a year or two and we'll probably see some more code drops from them.
Comment
-
Originally posted by ryao View Post
Their Linux contributions are solely to enable them to get Linux software running on top of their platform be it Azure or the NT kernel. They have zero interest in switching to Linux and this is just another iteration of Embrace, Extend and Extinguish. We are in the Embrace stage at the moment.
Microsoft is putting out .NET as open-source and releasing .NET Core for Linux, along with VS Code.
This is exactly what we feared years ago(At least, it's what I feared years ago), that Microsoft was going to suddenly turn around and "embrace" FOSS, and Linux, but infiltrate it and destroy it from the inside out(imagine if they were to get Microsoft-built modules inside the Linux kernel, and come up with a way to compile the Linux kernel with VS Code or the like...) Microsoft could come up with a licence clause that essentially would allow them to own Linux kernel development. .NET Core is just as bad, since Microsoft could take over userspace programs with it.
This is why we *need* to keep working towards the goal of getting Linux adopted by more people, without any Microsoft stuff being thrown into the mix....
- Likes 6
Comment
-
Originally posted by ryao View Post
Comment
-
Originally posted by ryao View Post
Comment
-
Originally posted by uid313 View PostWindows Forms is a legacy technology, and modern apps use Windows Presentation Foundation (WPF) or the newer UWP.
Windows Forms is a wrapper over Win32 APIs such as GDI+, so its not portable to Linux. However since Wine implements Win32 and GDI+ maybe it can somehow be used together with Mono and/or Wine.
Or the interface and API of Windows Forms could be implemented on Mono to wrap over POSIX and GTK+ or Qt.
But it is not likely that open sourcing Windows Form will of any benefit to Linux, its more of benefit to Windows developers.
Windows Presentation Foundation (WPF) uses DirectX, but maybe it could be implemented using vkd3d or DXVK.
There were two previous attempts to implement System.Windows.Forms in Mono. These initial attempts were done on top of other toolkits: first Gtk, then Wine. Each one had its share of problems, causing it to be abandoned.The current approach is to implement all controls fully in managed code, and uses an abstract theme interface to paint the widgets. The default theme interfaces renders the widgets using System.Drawing.
As for WPF, we only had the Olive project, which was very incomplete.
A subset of the WPF APIs was used in Moonlight, the open source Silverlight implementation.
Today we have Avalonia - a WPF-inspired cross-platform XAML-based UI.
Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET Foundation community project. - AvaloniaUI/Avalonia
When it comes to cross-platform GUIs for .Net/Mono, we currently have several solutions:
- Gtk# (Gtk+ bindings for Mono): https://www.mono-project.com/docs/gui/gtksharp https://github.com/mono/gtk-sharp
- Xwt (with three backends: Gtk#, WPF and MonoMac): https://github.com/mono/xwt/wiki/Overview
- Xamarin.Forms (primarily for mobile, but also has a backend for Gtk+): https://github.com/xamarin/Xamarin.Forms https://github.com/jsuarezruiz/forms-gtk-progress
- Eto.Forms (backends: Gtk+2, Gtk+3, WinForms over GDI+, WinForms over Direct2D, WPF, MonoMac, Xamarin.Mac, iOS, Android): https://github.com/picoe/Eto
Comment
Comment