Dear .NET Community,
You Blew It!
A couple of weeks ago a critical tool in the .NET ecosystem went from free to
commercial. That tool is Reflector and the owner of said product is RedGate
software. A lot of members of the .NET Community complained that RedGate was
going back on its original deal with the .NET Community by taking Reflector
from free to commercial. In all reality RedGate paid for the rights to Reflector fair and square and is within their rights to do exactly what they did.
“The chickens have come home to
Translated : it’s your own damn fault.
What happened is you found yourself warmed under the blanket of a commercial software vendor who decided it was time to kick you out of bed. What was once free is no longer and you are now paying the price (literally) for your lack of attention. Time and time again the .NET community abdicates control of its own destiny to commercial vendors. Almost every year Microsoft releases products that compete with open source applications that are already available and in most cases better than the commercial products that Microsoft releases.
Here are a few examples:
- First there was Subversion and Git now there is TFS
- First there was nHibernate, SubSonic, CSLA and
db4o and now there is Entity Framework
- First there was nUnit, xUnit now there is MSTEST
- First there was StructureMap, Windsor, Ninject now there is Unity
- First there was Hudson and Cruise Control now
there is TFS
- First there was <put your OSS project here> Now there is <Some half baked tightly integrated products.
Why we as a community do this to ourselves baffles my imagination. Let’s
take a look at what happens to a commercial vendor when they get out of line.
Last year Oracle bought Sun Microsystems. It did not take too long before Oracle overplayed their hand when it came to the many open source products that were in Sun Micro’s portfolio. What has happened since is a number of critical OSS projects have been forked and a new community was reborn.
Many of you might know about the product OpenOffice. OpenOffice is an OSS project that competes with the Microsoft Office suite. A number of the members of the OpenOffice community created a fork of OpenOffice and LibreOffice was reborn. http://en.wikipedia.org/wiki/LibreOffice
The second OSS project that has taken their ball elsewhere is the Hudson project. Hudson is a continuous integration server. What was once Hudson is now Jenkins CI. Basically Oracle overplayed its hand in this community as well and the members of that OSS community went elsewhere. The new project at: http://jenkins-ci.org/
From these two examples you can see the real power of OSS. If the sponsors of a project get out of line the community can take their code and talent elsewhere. Is this even remotely possible in the Microsoft ecosystem ? Let’s take a look:
When Microsoft decides to kill tools that you have adopted what can you do ? Pretty much nothing. Do you need a case in point ? OK here’s one for you: LINQ to SQL. In Oct 2008 Microsoft decided that LINQ to SQL would be deprecated. Here’s the
So what is a developer to do ? Pretty much it’s a single choice. Abandon what you are doing and move onto the next “Promised Land” of data frameworks. Yes you can maintain your current code base but do you think it’s wise to continue development on technology you know is dead ?
There is a real second choice but it takes a certain amount of bravery to do it. How about you abandon Microsoft when it comes to critical choices like data access and find an OSS project that meets your needs .
Instead of using ASP.NET/MVC how about taking a serious look at FUBUMVC (http://fubumvc.com/). FUBUMVC is an MVC framework built by a team of developers that really use it. This makes more difference than you might imagine. How can a company really understand the pain of their own frameworks if they don’t use them ? As an analog Ruby on Rails (http://www.rubyonrails.org) is highly functional as a web framework because it was and is built by developers that actually use it.
In this case I am picking on the ASP/MVC team a little. But I do commend that team for their behavior. The ASP.NET/MVC team is arguably the most transparent team at Microsoft. The ASP.NET/MVC framework is distributed under an open source license and you are free to download and modify the code as you see fit. Should the community decide to they could fork the code and follow their own path. In the case of ASP.NET/MVC it is nice to have choices.
It is up to us as a community to quit abdicating our responsibility to the mother ship. We need to do the right thing and take our destinies into our own hands and start supporting existing open source projects. Heck if it’s an itch you need to scratch you might just want to start your own.