Announcement

Collapse
No announcement yet.

Microsoft Makes Open-Source Windows Forms, WinUI, WPF

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by shmerl View Post
    Is it useful for anything on Linux?
    One thing that comes to mind is Paint.NET. But I'm sure there dozens of little C++ tools that never got ported over such issues.

    Comment


    • #32
      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


      • #33
        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.
        We are either at the tail end of their Embrace stage or the beginning of the Extend stage, or both...
        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....

        Comment


        • #34
          Originally posted by c117152 View Post

          One thing that comes to mind is Paint.NET. But I'm sure there dozens of little C++ tools that never got ported over such issues.

          MyPaint and Pinta do almost anything that Paint.NET does though.

          Comment


          • #35
            Originally posted by ryao View Post

            it is not:

            “We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF.”

            https://github.com/dotnet/wpf/blob/m...ontributing.md
            It could still be a step toward that if someone chooses to maintain a downstream fork, so saying "it is not" is a little premature.

            Comment


            • #36
              Originally posted by ryao View Post

              it is not:

              “We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF.”

              https://github.com/dotnet/wpf/blob/m...ontributing.md
              ".... Such as Windows registry". UI is NOT an OS specific feature and a sentence before they said they welcome any cross-platform improving patches, it's just not full ports of something so core part of any OS.

              Comment


              • #37
                As WPF is now OPEN SOURCE, would it not be possible to take their code, fork it (it is on Github after all) and produce a WPF implementation that IS cross platform?

                Comment


                • #38
                  Originally posted by cl333r View Post
                  Java on the desktop is pretty much dead and has always been, if C# takes its place no one will notice.
                  You have never developed with IntelliJ it seems

                  Comment


                  • #39
                    Originally posted by c117152 View Post

                    One thing that comes to mind is Paint.NET. But I'm sure there dozens of little C++ tools that never got ported over such issues.
                    Pinta is Paint.NET. =)

                    Comment


                    • #40
                      Originally posted by uid313 View Post
                      Windows 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.
                      Yes, Windows Forms is a wrapper around Win32 API, but it doesn't make it not portable. In fact, it was more portable than WPF or UWP.
                      https://www.mono-project.com/docs/gui/winforms/#history
                      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.
                      Anyway, I used WinForms under Mono under Linux about 8-10 years ago. It somehow worked, but the layout was very buggy.

                      As for WPF, we only had the Olive project, which was very incomplete.
                      https://www.mono-project.com/archived/olive/
                      A subset of the WPF APIs was used in Moonlight, the open source Silverlight implementation.
                      https://www.mono-project.com/docs/gui/wpf/
                      Today we have Avalonia - a WPF-inspired cross-platform XAML-based UI.
                      https://github.com/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

                      Working...
                      X