Sunday, 4 March 2012

Microsoft and Open Source

Disclaimer: I am not a Microsoft employee and have no association with them as such except I use there products for my day job and for my personal learnings.

Ah, with that disclaimer I suppose now I can write, what I want to write ;).

So, why am I writing about Microsoft's open source projects and products? Well, Just to clear certain doubts that are still there in peoples mind, who proudly gloat that they do work with open source technologies and, are independent, and have got more options/choices at hand. 
This recently happened with me when I was chatting with one of my closest friends who happen to work for a company which use open source technologies for their development work. When I told him about recent MVC 4 beta release and how cool "they" have made it. To this my friend's reply was 
                                               "You know I only support OSS;)".

That reply was kind of a surprise and shock; as to how ignorant OSS people might be (no hard feelings), I feel that they in their minds still see  MS as it was in an era gone by. So just to clear out a few things here (for my sake and not for the sake of MS's image ;) ) I would like to list down a few of the history changing MS projects and also the projects which MS is supporting extensively. My list might not be exhaustive as I am a web developer and am more concerned with my field;  but will definitely make people to at least have a brief look at whats new and what has changed.

So how Microsoft makes it products available as open source, by how I mean what are the bindings/conditions in short what license.

Microsft makes available most of it's products source available under MS PL License and also (not all but some) as dual licensed with Apache V 2.0 License.

If Interested you can read both the licenses from links below:

Apache V 2.0 :

The crazy delicious world of open source and Microsoft's web stack, has practically everything to offer for your personal and professional web development work.

Since version 1.0 Microsft made the source for Asp.Net MVC available under MS PL license. 
Now we are at Asp.Net MVC 4 (beta) and as per this tweet from @scottgu MVC 4 will also be open source.

I thinks now that's enough of reading for now, lets jump on to the juicy part. Below is a list of some biggies which are worth watching, learning, following and implementing in present web development.

  • ASP.Net MVC A web development framework applying the concept of Model View Controller
  • Nuget A package mangement system where in one can find thousands of open source community and individual developed plugins and resources.
  •  Knockout.js : A MVVM ( Model View View Model) framework written in javascript.
  • SignalR: Async signaling library for .NET to help build real-time, multi-user interactive web applications.
  • Orchard Project: A .Net based CMS
These are only a bunch of few big ones, apart from this Microsoft extensively supports many community run projects, I am just highlighting the ones I know of. (Please remember its all based my own search / research and if any of you feels that I am wrong feel free to comment about it.)

All the Microsoft open source projects are hosted on either of the two sites:CodePlex Or GitHub

Also an interesting thing where my open source friend can quickly get upto speed with MS technologies is Code52 where we get to see a new community project every week, not only see if interested we can also contribute to these.

One can also chat about all the stuff related to MS Open source projects and other stuff with community people drectly on JabbR a chat application developed by David Fowler using the SignalR framework.

There's a lot which has happened in recent past with MS and open source, its fun, its cool, robust and above all much more developer friendly :) .

For folks who are interested in a more exhaustive list of open source projects from MS, can go to the following link

Still that list is not all but once you get the taste you can find your own way in.

With this I close my post. Feel free to post comments, criticism and or appreciation ;).

Links and Interesting Readings: 


  1. Nice article, but you can't compare Apache License with MS-PL, You get full bunch of open source products under Apache License using which you can design, develop and deploy your web application unlike MS-PL.

    Microsoft certainly has open source projects, but Open source is meaningful when you get full hold the way you want your application to perform. You may get source code for MVC4 but when you go on the deploy your application on a compatible server your hands are again cuffed, thanks to IIS and Windows Servers, unlike Apache where even there HTTP server is open source. But then came to rescue mod_mono to help use .net on Apache and run .net applications on other platforms. mod_mono is an open source plugin for apache, but then its only a plugin and certainly can't perform to IIS standards.

    I do respect what Microsoft does and I have liked its products ever since, its a great organization and a great business. But, open source community believes that entire world can't be employed by a single company to build products, but it certainly can contribute to such products provided they are open source.

    Minds and intelligence is not bound to single company's premises, a healthier and better world of software can evolve if things are channeled in such a way that products are open source and they can be used to generate revenue as well.

    And by the way you took too specific a meaning outta my statement, it was a joke and not ignorance :)

    1. I certainly agree with you on lots of points, specially your mention of Mono which again is a community developed project and going strong.