Interview The role of Microsoft's .NET Foundation, set up for the governance and support of open-source .NET and related projects, has been questioned by a former board member who resigned in frustration.
Rodney Littles II is a software engineer at Megsoft Consulting and core maintainer of an open-source project, ReactiveUI, which is a .NET Foundation project. The .NET Foundation was formed in 2014 and describes itself as "an independent, non-profit organization established to support an innovative, commercially friendly, open-source ecosystem around the .NET platform."
Littles joined the .NET Foundation board in August 2020. In his campaign pitch he spoke of a "serious disconnect in the .NET ecosystem" in that Microsoft promotes .NET open source but that the community around it is not healthy.
"Maintainers of .NET OSS that Microsoft wants to help thrive are still in rough shape," he said. The sustainability of open-source projects was a key concern, as was expanding the .NET open-source ecosystem.
Littles resigned from the .NET Foundation board ahead of its elections in September. He intended to say nothing in public about it, but changed his mind when the foundation posted that "we wish him all the best as he refocuses on his personal life."
Concerned friends contacted him, resulting in this post, where he explains some of the background to his resignation and said: "I am fine. No issue in my personal life took me away from the board."
According to Littles' post, "the .NET Foundation was not concerned about its membership" and "hasn't been transparent with the community about anything."
He asked the foundation: "Are you here to enforce Microsoft's will on .NET Open Source, or are you here to help foster and promote a healthy community?"
He added: "The scoreboard doesn't look good for the latter… I watched Microsoft kill an Open Source Project, while my friends in the community demanded the Foundation say something, I felt powerless to do anything. It was clear the reasons I joined the Foundation weren't important."
We asked Littles about his experience of being on the board. He joined, he told us, with the awareness that the previous board "was not a fully functioning board… it didn't seem coherent, it didn't seem that it was a board moving towards a goal. They put up the maturity model which I had a very big issue with."
Project Maturity was a pilot including "maturity profiles," designed to improve software quality. The project was abandoned shortly after its introduction after community members complained that it was over-reaching, with board member Ben Adams acknowledging that "we didn't then open this discussion up to all projects, to find out if it was acceptable to them, or if there was a better way. This was wrong."
Littles told us: "My problem with the maturity model was it seemed too Microsoft bureaucratic… member projects would have to provide a service level agreement for consumers of those libraries… it was elitist and exclusionary. I felt the model should have been more about how do we open up a path for a small open-source library to go from a one-person labour of love to a library that the community can depend on? I felt the focus was more on overseeing and dictating versus nurturing and helping."
Microsoft engaged in some strange behaviour with regard to its WinGet project, finding out all the details of an existing open-source project called AppGet by dangling the prospect of a job at Microsoft for its creator, but then in effect killing that open-source project though borrowing many of its ideas. Littles was more than disappointed.
"The foundation, which is supposed to be the champion for open source, said nothing," Littles told us. "The foundation remained silent and to me, that was extremely loud… that is what made me wake up and realize the foundation doesn't care about the community or incidents like this… the community was in outrage behind this and the Foundation that's supposed to be Microsoft's open source arm said nothing."
- Feeling saucy? Wave of Microsoft releases includes go-live licence for .NET 6
- Microsoft flips request to port Visual Studio Tools for Office to .NET Core from 'Sure, we'll take a look' to 'No'
- Microsoft has gone to great lengths to push its tech, but survey suggests many devs slipped through the .NET
- Faster .NET? Monster post by Microsoft software engineer shows serious improvements
AppGet was not a .NET Foundation project, but Little felt that "if you're here for open source, you cannot be exclusionary, you cannot say it's not a foundation project so we don't care."
"I joined the Foundation board because I care about open source sustainability," Littles said. "I don't want some person to get burnt out, and they have this really large open-source project which the entire .NET community depends on, and they don't want to do it any more. Then what? There's no overarching organisation that cares about specifically that.
"I thought that I could make the foundation that entity that would care about its own projects and their sustainability. But everything I get is not about sustainability, it's about maturity, and maturity speaks to the corporate, it has to be a mature enough thing for these corporate people to adopt, versus this is something we are fostering for the betterment of the community."
Littles is now going to focus on his work on ReactiveUI. "I felt it was better for me to focus on the one project that I could actually make a difference on," he told us.
He remains an enthusiast for .NET technology. "I've been a .NET developer my entire career, I love C#, I love .NET, ASP.NET Core, I think it's amazing. Everything that Microsoft is doing to get into this open-source development, the fact that they're taking performance as a first-class citizen, these things make me happy. It's an exciting time to be a .NET developer."
From Littles' perspective, though, the .NET Foundation is insufficiently independent from Microsoft, does too little to help its member projects, and lacks a strong sense of mission or purpose. "There is no public mission. There is no single unified direction that the foundation is trying to go," he told us.
In October last year a prominent open-source .NET project, IdentityServer, changed tack, reporting on GitHub that "As of Oct 1st 2020, we started a new company. All new feature work will happen in our new organization."
The new IdentityServer project is still open source, but under the RPL (Reciprocal Public License), and restricted under this licence [PDF] to non-commercial use for organisations with more than $1m annual revenue. Littles sees this as a failure.
"I was on the board when IdentityServer left the foundation. There was no mention in the board meeting. I had to ask about it. I still don't know the full story. There was no transparency. I want to know what was said behind closed doors.
"A project that in my opinion was among the premier and most stable projects the foundation could have had, IdentityServer has been the de facto way to do security in the .NET space. The license changed and that's the reason the foundation can no longer help? It doesn't make any sense to me."
Littles feels that other projects may endeavour to leave the .NET Foundation, though that may not be easy if they have assigned their copyright, which is one of the options when a project joins.
"I've had several member projects come to me over the past year and say, we don't want to be here, we want to leave. I've told them, if the foundation owns your code you can't go anywhere." Code can be forked and a new project started, but that is a risky process as momentum and energy may be lost.
Why are projects distraught? According to Littles: "Some of us were distraught about the maturity model and what that said, but there's also very little benefit. One of the changes that came recently is that our organization is now under the Microsoft enterprise organisation on GitHub so it became harder for us to do things like sponsorships. We chose to open up another organisation that we owned and operated so that we could take contributions from the community. There's a lot of bureaucracy, and no communication."
The lack of much benefit from the .NET Foundation accords with what some of its projects have told The Register before, such as Avalonia, whose maintainer said: "It hasn't really made any difference so far." The exception is that projects get some free Azure credits which are useful, but other benefits can be hard to identify.
Littles emphasised that he does not intend to dismiss the efforts of those in the .NET Foundation. "There are some good people in the foundation trying to do some good things. It isn't nefarious," he said. The issues are all to do with the relationship with Microsoft, and the lack of clarity about the foundation's purpose.
"I'm totally fine with the foundation stating that it's there for the purpose of making Microsoft open-source software real, I'm not saying that the foundation doesn't add value in that space. But don't tell us you're about the community and then go do the business of Microsoft. Those two things don't match up, and I feel like that's what's been happening."
We have asked Microsoft and the .NET Foundation for comment. ®