Microsoft gets open-sourcey with Windows Forms and Windows Presentation Foundation
.NET Foundation to become engorged, ONNX for all, and check out our bundles
Connect(); Microsoft today continued its efforts to show that it really has bought into the whole open-source thing by flinging much of its client user experience tech at the GitHub wall and seeing what sticks.
It is, of course, not the open-sourcing of Windows (although that is perhaps not the impossibility it might have seemed a decade ago), but the frameworks developers use to build native user interfaces on Microsoft's flagship desktop platform.
WPF goes open source
Windows Presentation Foundation (WPF), Windows Forms and Windows UI XAML Library (WinUI) have all been given a stroke with the open-source tickle stick to varying degrees. While Windows Forms and WinUI have been fully open-sourced, WPF will be phased in over the coming months, starting with smaller components.
Presumably to give Microsoft time to excise the swears from the code. Or, more likely, because WPF is a bit of a monster.
WPF is part of the .NET Framework, and arrived with .NET 3.0 back in 2006. Greybeards can sometimes be heard referring to it by its codename "Avalon" or "that thing with the awful editor". WPF uses XAML to describe the user interface, which came as a bit of a shock to those used to earlier designers. It is also aimed at producing rich native user interfaces on Windows with a markup and code-behind experience that will have ASP.NET devs nodding sagely.
Windows Forms, on the other hand, is a quite different beast, being an older class library designed to wrap up standard Windows elements, such as buttons.
Microsoft would really, really prefer users left it behind in favour of the likes of WPF.
Alas, the ease with which the technology allows devs to create user interfaces means that there are a lot of Windows Forms applications out there with no easy path to an alternative platform.
With the arrival of the open-sourced .NET Core and confirmation that .NET Core 3 would allow the building of client apps using WPF and Windows Forms back at Build, the eventual open-sourcing of the technology seemed inevitable but remains most welcome.
.NET Foundation embiggened
Microsoft also said that the doors of the .NET Foundation, which manages a whole bunch of .NET branded open-source products, including .NET Core, would be flung open to all.
According to the caring, sharing software giant: "The governance, participation and projects of the foundation will be open to anyone in the open source community."
This will mean that the community will guide foundation operations.
Microsoft also announced that the board of the foundation would grow from three seats (including two from Microsoft) to seven (including an extra Microsoft employee). Elections for the new positions are due to kick off in January 2019, and anyone who has contributed to the project can vote.
Open-sourcing ONNX, Virtual Kubelet and a Universal Installer
Microsoft also took advantage of the Connect(); platform to open-source its Open Neural Network Exchange (ONNX) runtime, an inference engine for machine learning models in ONNX format.
The Virtual Kublet open source app, which is aimed at simplifying connecting a Kubernetes node to Azure Container Instances and their ilk, is to be donated by kind old Microsoft to the Cloud Native Computing Foundation (CNCF).
Finally, Microsoft said it has buddied up with Docker to come up with a universal installer for Cloud Native Application Bundles (CNAB) aimed at distributed systems.
CNAB is designed to simplify the management of packages over multiple platforms and allows devs to manage discrete resources as a single logical unit and export the whole thing to another environment. Like Azure IoT Edge perhaps?
As one has come to expect, the tools are open source and Microsoft is today emitting the CNAB specification, an open-source reference CNAB client, an extension to Visual Studio Code to build the things and an Electron installer to turn bundle installation into a point and click activity.
Real devs, of course, use the command line. ®