Microsoft Open-Sources .NET Components, Launches Foundation

By Darryl K. Taft  |  Posted 2014-04-03

Microsoft Open-Sources .NET Components, Launches Foundation

SAN FRANCISCO—If ever there were definitive indications that Microsoft is changing its tune when it comes to open-source software, its decisions involving .NET announced at this year's Build developer conference are evidence enough.

Not only has Microsoft committed to open-source key parts of its .NET development framework, but the devices and services giant has also formed a new open-source organization, the .NET Foundation, to be the steward of the transition.

.NET has long been the foundation of Microsoft's developer ecosystem, or as S. "Soma" Somasegar, corporate vice president of Microsoft's Developer Division, said, it has been the "bedrock" of the Microsoft developer ecosystem since it was launched 12 years ago.

Moreover, is it surprising that Microsoft is open-sourcing key components of .NET, and company officials said it wasn't complicated to accomplish.

"It was very straightforward and easy to get these decisions done," Somasegar told eWEEK in an interview. Indeed, he said, the time was right.

Microsoft announced the changes at its Build 2014 developer conference here.

".NET continues to be a very widely used framework by developers building all kinds of applications," Somasegar said. "In fact, the installed base of .NET is mind-boggling. We've got about 1.8 billion active installs of .NET in the world today. That speaks volumes to the power and the popularity and benefits of the platform."

Microsoft formed the .NET Foundation to foster further innovation across the .NET ecosystem. The .NET Foundation will start with 24 .NET open-source projects under its stewardship, including the .NET Compiler Platform (previously known as "Roslyn") and the ASP.NET family of open-source projects, as well as the MimeKit and Mailkit libraries from Xamarin.

"We are going to be delivering a preview of the Roslyn compiler as a service," Somasegar said. "The most interesting thing that we're doing there is we are making both our C# compiler and our VB [Visual Basic] compiler open source. You want to be able to work with the community, you want to be able to take contributions back from the community, and you want to be able to work in the open. The other thing we are doing is adding support for .NET in Azure Mobile Services."

The new foundation will be initially staffed by Microsoft and third parties, including a representative from the Microsoft Open Technologies subsidiary and someone from the .NET organization, as well as Miguel de Icaza, CTO and co-founder of Xamarin, which is partnering with Microsoft on a related effort, Somasegar said.

"There will be a board of directors," he said. "There are going to be a couple of people from Microsoft that are going to be on the board. There will be one person from MS Open Tech that's going to be on the board; there will be one person from the .NET team that will be on the board. We are also getting Miguel de Icaza to be on the board, so we'll have at least one third-party person on the board from Day 1. And we'll have a couple of third-party projects, including efforts from Xamarin and others. Our plan is, over time, to expand the board to include more people. There will be a board that will govern the .NET Foundation. Microsoft will initially have a strong presence, but it will not be exclusively Microsoft."

Microsoft Open-Sources .NET Components, Launches Foundation

Somasegar maintains that more and more .NET components and libraries can benefit from an open process that is transparent, and Microsoft welcomes participation. The foundation will foster the involvement and direct code contributions from the community, both through its board members as well as directly from individual developers, through an open and transparent governance model that strengthens the future of .NET.

The foundation also will promote innovation from a partner ecosystem and open-source community, and will encourage commercial partners and open-source developers to build solutions that leverage the platform to provide additional innovation to .NET developers. This includes extending .NET to other platforms, extending Visual Studio to create new experiences, providing additional tools and extending the framework and libraries with new capabilities, Somasegar said.

Last November, Microsoft announced a partnership with Xamarin to enable C# and Visual Studio developers to target additional mobile devices including iOS and Android.  By using .NET Portable Class Libraries, developers can easily share libraries as well as application logic across their device applications as well as with their backend implementations.

Visual Studio and .NET provide developer productivity for application developers targeting the Windows family of devices. With Xamarin, developers can take this productivity to iOS and Android as well. And with Xamarin working closely with Microsoft on the new foundation, more innovation is expected.

In fact, at Build 2014, Miguel de Icaza of Xamarin showed how the .NET Compiler Platform can be used to provide a rich C# IntelliSense experience in Xamarin Studio, running on a MacBook. "Open-sourcing the .NET Compiler Platform and the C# and VB compilers opens up countless new opportunities for tools and services to be built around .NET," Somasegar said.

The .NET Compiler Platform project includes the next versions of the C# and VB compilers, as well as a compiler-as-a-service API that powers rich integrated development environment (IDE) integration, and opens up the compiler to all sorts of developer integrations, Somasegar said.

Microsoft released the .NET Compiler Platform as open source, with the development team now working on CodePlex.  The open-source compiler platform will enable a broader community of developers to contribute to the evolution of the project and to integrate the .NET compilers into a wide variety of projects. And the .NET Compiler Platform preview release also includes several new IDE features.

"One thing we gain is we get more people excited and willing to take a bet on .NET because they know they can have access to the code they can build on top of it—particularly, if you think about Roslyn and you want to deliver a compiler as a service," Somasegar told eWEEK. "So being able to open-source the compiler really helps people understand what the compiler looks like, what it does and how they can take advantage of it. This lets you build a higher value thing on top of C# and VB compilers.

"The second thing is, we have some very smart people inside the company, but there are a lot of smart people outside the company, and we'd love to get some feedback from them. This both helps us to be more transparent and also allows us to get feedback and contributions from others that will make it a better product in the long run," he said.

Microsoft Open-Sources .NET Components, Launches Foundation

Indeed, Somasegar added, "The .NET Foundation seems like the next logical step in our journey to embrace open source. If you look at what we've done in the last two to three years, particularly in Visual Studio, Scott Hanselman [a well-known Microsoft engineer and presenter] loves to have this one slide that talks about all the things we are doing in Visual Studio that have some open-source affinity, and that list is growing. The .NET Foundation seems like the next big step in how we want to be more open to the community. I think about it as a win-win situation. The .NET Foundation is a great step forward for .NET, but we are thinking about open source across the board, not just for .NET."

The preview versions of the C# and VB compilers included with today's .NET Compile Platform include an early look at some of the new features being considered for the next major version of the C# and VB languages, Somasegar said. Features like primary constructors, auto-property initializers and using statics generally help developers express common code patterns in an even more streamlined way, he said.

Microsoft also announced a .NET Native preview, which marries the productivity of C# and .NET with the ability to generate binaries with performance on par with native code. .NET Native is an ahead-of-time compiler for .NET that leverages our C++ compiler's optimizer to offer improvements to startup time, memory use and overall application performance, Somasegar said.

In addition, Microsoft has been working on a next-generation just-in-time (JIT) compiler for .NET and the Common Language Runtime (CLR). On April 3, the company released the third preview release of this new .NET JIT compiler, code-named RyuJIT, offering significant benefits to application startup and performance transparently to application developers. And today's preview is the first to also enable new developer scenarios, such as providing new .NET APIs that can leverage the single instruction, multiple data (SIMD) support in modern processors for SSE2 and AVX instruction sets.

Finally, Microsoft is adding support for .NET in Mobile Azure Services. Azure Mobile Services provides an easy-to-use mobile backend as a service connected to Microsoft Azure. Last month, Microsoft Executive Vice President Scott Guthrie announced the preview availability of .NET support for Mobile Services. With .NET mobile services, you get the simple API connection to Azure-hosted data storage, combined with the flexible ASP.NET Web API for customizing table behavior, Somasegar said.

Rocket Fuel