Microsoft has open-sourced many of its developer frameworks but the success of these projects is variable, with Windows Presentation Foundation (WPF) dubbed "a disaster" by one unhappy developer.
This week, the company published a survey of developers on GitHub using some of its .NET open-source repositories, including ASP.NET Core, Entity Framework Core, Roslyn (the .NET compiler platform), .NET Runtime, and WPF.
While there were only 191 responses overall, it looks like they included some of the most involved people. More than 60 had submitted a pull request (PR – an attempt to get code added or changed) and over 100 had created or commented on issues.
The results are notable for one thing in particular, which is that developers are not happy with way WPF is handled. The WPF repository showed that two-thirds of respondents were extremely or moderately dissatisfied with the "responsiveness and engagement of the repo maintainers", though the data is based on a very small sample.
WPF is in some ways Microsoft's most advanced GUI framework, with a rich vector-based rendering engine that uses DirectX rather than the native Windows controls used by earlier frameworks. WPF was sidelined when Windows 8 came along, and appeared moribund when the Windows 8 "Metro" framework morphed into Universal Windows Platform (UWP). In December 2018, Microsoft made both WPF and the older Windows Forms frameworks open source, giving WPF developers hope that bugs could be fixed and features added.
Commenting on Microsoft's report, developer Max Mustermueller said: "The results on WPF repo is very well deserved. Even now the feedback towards the community is a disaster. Most issues remain unanswered and uncommented for more than 3 weeks, some of them for a few months. The rest of the issues are only tagged with 'bug' or 'suggestion'. Same for PRs."
"It's a shame, but we can't do anything. Just move to the next Windows UI platform until it dies too," was the comment from another, referencing the many changes of direction suffered by Windows developers (a problem supposedly addressed by "Project Reunion").
Sam Spencer, Microsoft's .NET program manager, highlighted the issue and said that the company is "working on staffing and tooling to be able to take PRs". He acknowledged that "internally the WPF team was not sufficiently staffed and did not have the test infrastructure in place to be able to respond to the community contributions." An open-source project that has difficulty taking PRs cannot be healthy. That said, Microsoft is more than capable of managing open-source projects and its Visual Studio Code repository is, according to GitHub's report, the project with the most contributors across the entirety of GitHub.
What the WPF problem illustrates is that these open-source projects also require substantial commitment and investment from Microsoft itself in order to succeed. Microsoft invests in the projects it considers the most strategic, and simply making WPF open source did not change the fact that improving WPF is, it seems, a long way down its list of priorities.
The comments on Spencer's report show that while WPF is the worst case, complaints about unresponsive maintainers apply elsewhere too. "The vast majority of issues that aren't created by Microsoft itself are ignored," said one commenter about the .NET Runtime repository. "Entity Framework guys are not that good and responsive... there are so many good ideas that can be added to EF to make life easier. I wish they had listened to us a bit more," said another.
The counter to this is that the ability for the developer community to see the code, make pull requests, and even to complain about the process, is a benefit of open source and a long way from the old position when these frameworks were developed behind closed doors. It is also notable that ASP.NET Core is both one of the most active and among the most satisfactory of Microsoft's .NET repositories, judging by the survey results.
Considering the energy Microsoft is putting into non-WPF approaches to building applications on Windows, from WinUI to React Native, it seems unlikely that this older framework will receive dramatically improved investment. That said, WPF is a project overseen by the independent .NET Foundation.
Perhaps the fact that these issues have now come to the fore will stimulate some thinking within both Microsoft and the .NET Foundation about getting projects like this back on track. ®