For more than 12 years now, the .NET framework has been the programming model for developers who want to build apps for Windows. But in its efforts to take many of its developer tools cross-platform, Microsoft today announced that it plans to take .NET to both the Mac and Linux soon and that it is open-sourcing most of the full server-side .NET core stack (not client-side .NET), starting with the next version.
As Microsoft’s corporate VP of its Developer Division S. “Soma” Somasegar told me, about 6 million developers are now building applications on top of the framework. “We’ve been widely successful with that,” he said. But now the question is, how do you move .NET forward? Microsoft already open sourced the .NET compiler earlier this year, so it’s not new to this (even though many pundits may still take a double-take when they hear the words “Microsoft” and “open source” in the same sentence).
Looking at Microsoft’s recent history, however, today’s announcement doesn’t come as a total shock. At its Build developer conference earlier this year, for example, Microsoft announced the .NET Foundation and it’s that organization that will also shepherd this project.
Unsurprisingly, the company plans to work with the Xamarin-sponsored Mono community, which already produces a cross-platform open source .NET framework based on C#. “We will announce this and then take the next few months working with the Mono community,” Somasegar told me. “We are working very closely with the Xamarin guys on this.”
The efforts to take .NET cross-platform go hand-in-hand with this open source announcement, Somasegar argues. “I think of this as the next big step for .NET,” he told me. Microsoft wants to give .NET a broader platform and how better to do this than through taking it to new platforms?
Microsoft’s Executive Vice President of the Cloud and Enterprise group Scott Guthrie echoed this sentiment when I talked to him a few days ago. He also noted that developers often tell Microsoft that while they like .NET, many don’t use it because it’s closed-source and only supports Windows. “After Wednesday, all the reasons not to use it have disappeared,” he told me.
Somasegar also says that he believes this will open up a number of new opportunities for Microsoft’s partners. In a statement today, for example, Docker’s Head of Business Development and Technical Alliances Nick Stinemates, notes that he believes that “a central value of the Docker open platform is application portability to any infrastructure via Docker containers. The delivery of an open-source .NET runtime across all major OS platforms means that Microsoft is extending the concept of portability to the application platform itself.”
Microsoft plans to set up a GitHub repository with the .NET code to get the conversation started. What exactly the final version will look like still remains to be seen, but Somasegar hopes that you will soon be able to run a .NET app in a Docker container in Linux on Microsoft Azure.
To protect developers, Microsoft also today announced a patent covenant that will cover the Mono project and everybody who implements it.
Whenever a company open sources a certain project, users often worry that this means the company is giving up on it. Both Somasegar and Guthrie stressed that this is not the case here at all.