Blog Post

A milestone moment for Microsoft: .NET is now an open-source project

Stay on Top of Enterprise Technology Trends

Get updates impacting your industry from our GigaOm Research Community
Join the Community!

In what probably never would have happened under the first two CEOs to lead the historic software company, Microsoft plans to announce on Wednesday that it is open sourcing the entire .NET framework, a symbolic move by the Redmond, Washington-based legacy technology company officially recognizing that the open-source model of software development is here to stay.

As part of the open-sourced version of .NET, Microsoft is also making the framework cross platform, meaning that developers should now be able to craft .NET applications that can run on either Linux or the Mac operating system.

Even though [company]Microsoft[/company] has open sourced bits and pieces of .NET over the years and created the .Net Foundation in April, whose purpose is to oversee open-source .NET initiatives, today’s news highlights the realization by Microsoft that it needs to make a full-court press in order to attract developers who are used to working with a variety of open-source technologies to build cloud applications comprised of multiple components. This modern-day world of software development is far different than it was a decade ago, when coders had to use propriety tools to craft applications that didn’t need to function across myriad environments.

“This is a huge change (for Microsoft) and a change that has been slowly and steadily building up for the last couple of years,” said S. “Soma” Somasegar, Microsoft’s corporate vice president of the Developer Division at Microsoft Corporation.

This move to open source .NET comes from a “fundamental realization of where the world is” and what application development now looks like, explained Somasegar.

“We have to meet developers where they are as opposed to saying ‘hey, you come to where we are,’” he said.

How Microsoft plans to open source .NET

The change to a completely open-sourced .NET will not take place overnight, and Somasegar said he expects the project to take a “few months” before it completes. As of today, Microsoft is creating .NET repositories and forums on GitHub and will be encouraging .NET developers to start participating.

To help with some of the legwork involved with such a big endeavor Microsoft will be working with the Mono project and community to help things go smoothly. Because the Mono project is an open-source project created to make .NET cross platform, Microsoft feels its expertise will be invaluable.

[pullquote person=”S. “Soma” Somasegar” attribution=”S. “Soma” Somasegar, Microsoft”]“This is a huge change (for Microsoft) and a change that has been slowly and steadily building up for the last couple of years.”[/pullquote]

The close collaboration between Microsoft and the Mono project also ties directly with a strategic partnership Microsoft has with [company]Xamarin[/company], the software company that oversees the Mono project. Earlier this year, there were rumors floating around that Microsoft was looking to buy Xamarin to bolster its cross-platform technology and today’s news will just add to the speculation.

Microsoft said it plans to add more of Xamarin’s tech in its Visual Studio developer tool and will be releasing more joint Microsoft and Xamarin go-to-market products in the future.

And speaking of Visual Studio, Microsoft is also rolling out a free version of the developer platform that’s tailored for the open-source community. Called Visual Studio Community 2013, the software will supposedly let open-source coders, students or small development shops to build a variety of cross-platform applications for free.

“Our core thesis is that in a world where developers are thinking about a mobile platform and a cloud platform, we want to be in the minds and hearts of developers no matter what they are building,” said Somasegar in reference to the free version of Visual Studio. “Once you have developer mindshare, then a lot of other movement happens.”

The roots of an open-source .NET

When Microsoft first released .NET in 2002, the programming framework was designed to make it easier for developers to craft applications tailored to run on Windows; it was a Windows world back then and open source was still considered a bit too hippy-dippy for the stodgy world of the enterprise.

“In general, open source kind of had a different political significance then than it does now,” said Andrew Brust, research director at Gigaom Research for big data and analytics, and a long-time Microsoft observer.

As .NET matured, there were internal struggles within Microsoft on whether the framework should run on both Windows or Mac, and there were strong opinions coming from both sides, explained Brust.

The company experimented with cross-platform technologies, such as the Silverlight framework, an implementation of .NET that could run on Mac, but ultimately, the cross-platform naysayers won and support for Silverlight was deemphasized.

“For years we’ve watched as first the .NET and then the Azure team struggled internally with the Windows team over whether Microsoft’s programming model should be cross platform or not,” wrote Forrester vice president and principal analyst Jeffrey S. Hammond in an email.

Steve Ballmer at Build 2013
Steve Ballmer at Build 2013

Around 2007 to 2008, Microsoft’s developer evangelists began to notice that developers were feeling less satisfied with .NET, said Brust.

This was also the time that open-source technologies started to pick up more steam in the marketplace, with [company]Google[/company] releasing the open-source Android operating system and GitHub opening up its repositories for open-source code being examples.

The world was changing and developers suddenly had new options that weren’t previously available, and Microsoft wasn’t making the right moves to win their hearts.

“The Windows team’s answer was ‘HTML 5 everywhere,’ coupled with it running better/faster on IE,” wrote Hammond. “That’s great for the client side, but didn’t really help the cross platform story on the server side.”

A new regime with a focus on the cloud

With former Microsoft bigwigs Bill Gates, Steve Ballmer and Steven Sinofsky now gone from prominent leadership roles, the company appears to be handling its business a bit differently than before under new CEO Satya Nadella. As my colleague Barb Darrow reported last week, the last eight months under Nadella have been rather remarkable considering how closed off to the world Microsoft was under a different regime. Who would have ever thought four years ago that we would see an actual working version of Office for iPad?

Both Brust and Hammond agree that open sourcing .NET represents another key move in a post-Ballmer Microsoft world, and Brust said that Nadella and Scott Guthrie, the executive vice president of the Microsoft cloud and enterprise group, are trying to “go back to the ethics of the time when Microsoft was all about developers.”

“We know that not every developer in the world is going to start on .NET and for that, we need to figure out what role we can play in that world,” said Microsoft’s Somasegar.

Scott Guthrie and Satya Nadella of Microsoft
Scott Guthrie and Satya Nadella of Microsoft

But it’s not just Microsoft that’s been changing; so too has the open-source development community.

Some of the most popular open-source communities have a commercial entity behind them, like Elasticsearch and MongoDB and “the lines are blurring,” said Somasegar.

This corporatization of open-source communities (which still has a lot of kinks to iron out) has made it easier for Microsoft to approach the open-source world; it’s similar to how the company traditionally forms its partnerships with various commercial companies.

Indeed, the recent deal Microsoft did with [company]Docker[/company] to make sure containers and the Docker engine can run smoothly on Azure and Windows Server was done with Docker, Inc. — not the Docker open-source community.

A long way to go to please developers, developers, developers

It’s going to take time for Microsoft to make amends with developers, however. Some developers abandoned .NET because its once-closed system made their resumes less attractive to potential employers who crave coders with varied programming experience. There’s also a whole new generation of developers who’ve come of age in an era when MongoDB and NodeJS are the technologies they need to master, not .NET, especially when it can’t run on Linux or Mac.

And there’s no guarantee that by open sourcing .NET Microsoft will gain an influx of coders. In a way, the company is playing with fire by exposing its own loyal .NET developers to new platforms that may have something they feel .NET or other other Microsoft technologies lack.

“In some sense the onus is on us to make sure that our platform and our technologies need to stay on the leading edge of innovation and value,” Somasegar.

But, with Microsoft now seeing more traction with Azure and it’s Office 365 cloud service, the company is more comfortable not having Windows or its off-the-shelf products as its main source of cash, explained Brust. You see, it’s all about the cloud and the potential Azure brings to Microsoft to become its new big business, and the way to grow the cloud is to make sure developers are happy to use it.

“The world is getting more complex but the goal is to make the developer’s life more easy,” said Somasegar.

The enterprise landscape has changed significantly in the years since Microsoft reigned supreme, and you can attribute that change to the rise of open-source technology. In order for Microsoft to gain back its influence, it’s realized that now’s the time to adopt open source or risk falling behind its new cloud competitors of Google and Amazon.

Picture of Steve Ballmer courtesy of Microsoft
Picture of Nadella and Guthrie courtesy of Jonathan Vanian

22 Responses to “A milestone moment for Microsoft: .NET is now an open-source project”

  1. Wow ! I am flabbergasted !
    Not because Microsoft finally surrendered to its Open Source overlords, but because… it took me one week to hear about it!!!
    Is Microsoft *that* irrelevant already?
    Good riddance if you ask me, but it was quicker that I thought.

  2. Gizmox Transposition

    This is essentially mixed news. Half good news since the Microsoft tools and methodology is probably very good with respect to the traditional open source. The bad news is how many legacy Microsoft apps are going to be run on new cloud, mobile and web platforms. What will this mean to Microsoft developers? Great new way to move horizontally to the open source world.

    • What Microsoft is doing here is to eliminate the competition, meaning minority languages and small businesses; they are also making sure dot net will be a part of all major operative systems -and your right to choose is eliminated by design, rather than a healthy choice between equal competitors.

    • Said someone who does not know the diff between Java the lang and Java the platform and Java the runtime and Java the plugin (which is where the vulnerabilities are and which there is not a .NET equivalent). LOL.

      • Geeth Mohan T K

        I too have used both Java and .NET as as you have said right Java is completely cross platform. .NET will take years to get there. For desktop application you can’t use the code written in in as uses GTK and QT for building UI. Even if they build it to run all environments performance will be bad. May be services can be built using the .NET SDK and run-time. But it wont get the robustness of Java Services. As Java evolved over years on the cross platform world. .NEt would take years to catchup.

  3. .Net has several fatal flaws in it’s design. No common numeric “class” along with no type conversion on cast, as well as missing checked exceptions means that it truly is a beginners language without true enterprise capabilities from a life cycle and continued evolution perspective. Both of those problems (and there are others) require 100% retest of anything when you change how numbers or exceptions are used. That’s just not going to fly for developers used to the much more robust environment that Java provides.

    All the training wheels built around the vertical market “packages” for .Net still don’t adequately support robust environments.

    Microsoft is still trying to make something which was never really viable into a “new face” with open sourcing. Developers have gotten off that train along time ago. Those still stuck with .Net will be able to tell their management, “See event Microsoft thinks that Linux and Mac OS-X are viable, can we just get off of Windows and .Net all together, please?!?!?!”

    The Redmond ship is running out of fuel and even with a great pilot, it’s still going to have to refuel on the ground. The question is, how hard will it hit the ground, and will there be enough left behind to create something viable to continue the journey with?

    I hear the fat lady warming up…

    • Dear Grwww
      what are you smoking? .Net offers full co-variance & contra-variance type conversions including conversion to and from primitive to complex types. What do u mean by numeric class?? All numeric, int,float,decimal are first class structs with their own implementations.
      And what about?
      a) LINQ
      b) Delegates, Events
      c) Expression trees
      d) Lambdas [Java got these in 2014 and Android STILL does not support these]
      e) Closures;
      f) Runtime generics;
      g) Generics of primitive types
      h) Extension methods;
      i) First-class properties;
      j) Operator overloading;
      k) Indexers and iterators
      l) Anonymous types;
      m) Using blocks; [to dispose of resources]
      n) No checked exceptions.
      o) Decimal type;
      p) Dynamic types
      q) Async/Await [This itself is awesome]
      r) Obersvables [2 way binding forming the basis for MVVM]
      s) PERFORMANCE. This is the killer. .Net ALWAYS beat J2EE in performance.. wanna bet? Talk to me after .Net native is released. c# will approach c++ performance.

      Go away TROLL

      • Maven/Gradle, Multiple excellent IDEs, Spring, Hibernate, JMX, multiple messaging platforms, the community, the vendors, choice, etc. I could go on.

        I use Java and .NET both pretty much daily. .NET is a never ending source of frustration and drain on my wallet. There are some things .NET is better at. If you like it, great. But if you take all things into consideration, and I do, just can’t dump Java. Most of the features you listed are great, but overall i guess i just don’t miss them for all i get in return.

        FYI, J2EE has been dead for years. .NET has nothing like Java EE. How can you compare it. But as for performance in general … i suggest googling some research as to performance of Java vs C++.

        I don’t hate C#. Or .NET in general. Maybe the community might make it appealing. But I can see people picking up opensource projects they started but basically have died off (

        FYI, Azure supports products that are only available because someone wrote them in Java – ElasticSearch and Hadoop – and there is no .NET equivalent.

    • Pablo Chacin

      Probably the less informed comment I’ve read in some time!

      I’m a die hard Java developer, but must admit .Net is, by far, a much superior platform. The only reason not to use it was because Mono didn’t have the official support from Microsoft and the lawsuit risk was there.

      Now i’m just going to consider it again as part of my technology options.

      • I’d agree it was uninformed. I would not admin .NET is much superior. It is not true. It has some really great features.

        Try this – run you app, IDE, web server … without running an installer on a new PC. I can do it from a thumb drive with Java.

    • Assuming someone does something about it. There is very little incentive. I’ve been able to code once and run every for years. Maybe some good news might be that Apache Panday starts up again and NuGet can be dumped.

  4. Reblogged this on Integration On My Mind and commented:
    Great moment for Microsoft! Very Happy about this! One of the guys at Innovative Architects (Steve Henson) but it best… ” This .NET open source announcement today is a big deal. It signals MS acknowledges we’re living in a post-Windows world and that they intend to compete across platform with the best development tools in the business. What Apple fan-boy could ask for anything more?…Also a clear shot across Apple’s bow. Azure is huge(r).”

    • Azure is just a synonym for “assure we keep customers”. Azure seems like a good thing, until you actually know what is possible when you are locked into the Microsoft world…

    • Seriously?

      Ugh, people on this planet will never be satisfied and will always find something to complain about. With such huge and great news, you’re complaining about an IDE? In fact, .NET being open-sourced, so if you don’t wanna use the existing tools, there’s your opportunity to create a better tool!

      • Why? there are already plenty of good tools out there that are not .NET related. One of them mentioned is ElasticSearch (yeah, you can use it with .NET).

        When you look what is out there, it really is not huge news. Other than Microsoft admitting that .NET is not their future – things like azure are.