.NET continues to DoS attack me, seriously!
Yeah, it does! And I don’t necessarily mean denial of service – that would mean that I couldn’t get any programming done. Nope, far from it – but it sure is denial of sleep attacking me. Come one, I am struggling to keep up with all the new runtimes, features, frameworks and best practices coming out of Redmond. It’s awesome and actually fun; no doubt about it – but sometimes it is excruciating as well. And today I am going to talk about the excruciating experience of seeing another reinvented wheel hobble out of Microsoft.
Oh, remember the good old days? 2002/2003 when there was just a handful .NET developer, hardly any frameworks, except THE framework. No choice, but hey, no need to choose either. But let’s face it, most likely too little choice. Then around 2005 things started to pick up. There was one, maybe two high quality frameworks to support you in a particular area of your programming efforts.
And I loved it. Why? Simply because reviewing frameworks for a new direction of programming (like ORM or IoC) took me about half a day, maybe a day of intense work. And then I usually had a definitive favourite. And yes, most of these frameworks were true open source projects.
I don’t know when things changed, but lately I feel … insecure. There is no better way to describe it. I have my definitive favourites, still. BUT all of those choices date back to approximately 2005. Before all those little “Microsoft certified” framiworkies. And I am NOT talking about WF, WCF, WPF and (pure, in memory) LINQ. Those are simply awesome on so many levels and SOMETHING NEW. No, I am talking about all these half-good, half-god, reinvent-the-wheel-but-this-time-elliptic framiworkies like LINQ to Entities, LINQ to SQL, Unity, ASP.NET MVC, … And let’s not even get started on tooling: MSBuild, MStest, …
Why does the appearance of these Microsoft frameworks make me insecure all over sudden? Because: Every single one of those comes with the guaranteed “follow-the-herd-momentum”: “We have to use it, because it’s *chant-as-mantra* Microsoft *chant-as-mantra* Microsoft *chant-as-mantra*”. Oh, my. But here’s the sad part: It preys on my mind as well. Not because I like to chant mantras, but because one can argue that most newcomers to the .NET crowd might not take time to evaluate the alternatives and choose Microsoft(tm) by default. That means that the continuous stream of fresh minds might dry up for all those great open source projects out there. And that’s all they survive on. And THAT means – I HAVE to evaluate those Microsoft thingies and make up my mind which horse to bet on. That is a way harder decision than the 2005 “oh, that one is shiny” one. Because now it is “uh, that one is still so very, very shiny and clearly superior in my eyes” combined with a “there is a brass one out there which is almost as shiny AND it is attached to a marketing campaign proclaiming that brass is the new extra shiny”. You see, it’s no longer about popping the hood and looking at the engine in order to decide. I have seen a weaker product win because of marketing one too many times to still think naively about those matters.
Why does Microsoft do that? Why did they have to come up with a “new” (there is nothing new here!!!) IoC instead of endorsing one of the established frameworks. And the sad part is: They did, they actually did. There are a couple of excellent guides from Microsoft e.g. on using NHibernate and Windsor. Why doesn’t Microsoft stick to that theme, it would be way better for the community, for my productivity and for my sleeping habits.
In all seriousness: From my point of view all those “alternatives” don’t increase diversity. Or to put it another way: Those new “alternatives” don’t increase my happiness. Quite the opposite is true. I see them as a nuisance and certainly an unnecessary one. Last night while I was evaluating Unity, I had to think about a talk I watched on google video about a year ago. It’s called “The Paradox of Choice – Why More Is Less”.
Good people at Microsoft: I hope you will soon realize that less is sometimes more. Stop reinventing the wheel. It is bad on many different levels. I strongly believe that it actually hurts your efforts. Seriously, watch the video. It is quite the eye opener. And after doing so choose one open source product, dedicate 2 or 3 of your employees to it. That way my boss knows that support for that OS project won’t go away. I can get some sleep because I don’t have to evaluate the next not-so-new-but-with-a-twist project you throw out there. And you will notice that it saves you money and gives your company some Egoboo.

You perfectly described the same feeling I had and still have when all those frameworks came rolling out of MS all of a sudden.
And as you say, it’s a shame you sometimes have to drop an open source framework, in favor of an MS one, simply because it’s MS and everyone will follow it.
Comment on August 3, 2009 @ 15:58:15
Cool story
I feel almost the same
New, new, new, every year, even every half an year. SQL 2000, than 2005, so was 5 years of difference, 2005 & 2008, 3 years and now 2008 & 2010 SQL Server (and other like Visual Studio) – 2 years of difference.
New, new, new. That’s make me sometimes quite tired and start to think..”why should I check it or learn it? Wait several month and new version will appear”
Greetz
Comment on August 5, 2009 @ 21:39:30
I feel the same! You said perfectly: less is sometimes more.
Comment on August 6, 2009 @ 09:01:54
*G* I know. ScottGu now threatens us with a new Silverlight version every year! Though I am looking forward to the big push that’s going to happen around November, I am kinda dreading it as well.
Comment on August 6, 2009 @ 09:38:53
You speak like an open source was a value in it self, which it obviously isn’t in most cases.
Other than that, you also miss the fact that Microsoft usually only makes 1 (ONE) of those many frameworks – be it MVC, ORM etc. It’s the others that are MORE, not Microsoft especially with their questioneable future support. With MS you are almost guaratneed the tool will be developed or if not, you will get a way out leading to a new shiny tool vb6->vb.net c++->c++.net being good examples.
Ofcourse MS fails many times by doing more than one thing of the same “kind” ORM with DLinq and EF being an example here, but since DLinq is no longer developed, it leaves us 1 (one) compared to 10+ (more).
MS doesn’t do good stuff at first try (nor at second). Sometimes they succeed at third attempt, but the role for those shiny open source thingies in my view is to make the try to succeed.
To finish the comment, just remember, MS is a company and like any, works to control the market – which means no more no less to bring more satisfaction to customers we can only be happy. If they decided that killing off those “small” projects will in fact make us all better off, then we can only be glad. If their decision was wrong on the other hand, they will suffer consequences and we may yet find ourselves coding java.
Comment on August 6, 2009 @ 09:43:52
I perfectly agree with you and this is why I am now learning open source technologies. It was about time someone speaks his mind high and loud about it!
I moved to Linux when I heard that MS Vista was using around 2G of RAM only for the OS. We buy more powerful machines just to run their heavier software? I don’t think this is real technological advancements. OK it is faster for us to develop but what about the users?
After about 6 months on Ubuntu I can tell you that I don’t miss any tools from Windows. I found their equivalent and much more powerful tools for my needs (beside MonoDevelop that you can’t compare with VS)
I code with MonoDevelop because it can run on any platform and NUnit is even built in. When I started using .NET in 2003 I thought it would become like Java as a real virtual machine that is not married to Windows.
Then last year I used the Entity Framework that I found horrible and we had to struggle with performance issues and other weirdness. I never used NHibernate but from what I heard it is much more mature and powerful.
Then they released MSTest that I want to stay away from since I heard people saying it was slow and clumsy as hell.
Same thing with Unity, I think PicoContainer is a good choice among others and there was no need for a new framework.
The worst on top of that: I see the CTO at the last MS shop I worked at betting everything on MS products because they believe it will become the best. I told them we know what is the best today but we can’t know what will be the best in the future. But they just think everything sold by MS will become better and they are totally stuck up.
Now I picked Ruby on Rails for a personal project. I know lots of people are talking shit about it but I don’t care, I think it will still improve over time and I won’t have to pay crazy fees to host it on a Windows server.
And the saddest thing about all this, I think the average .NET developers are not as skilled in design as Java developers at all. I read other blogs about the topic and I agree with this fact. May be because it became too hard to follow with their new crappy products and people can’t keep up with good design techniques at the same time?
All what MS have been doing for years is to copy the other great open source ideas. They are making bad decisions because other developers like me will end up realizing the real brains and pioneers are not at MS. They should instead sponsor the .NET open source projects to create the best tools for us instead of reinventing the wheel over and over.
I think they don’t really want the best for their customers. All they care about is making more money.
As Linus Torval once said: “The best things in life are free”.
Sorry about this rant but now I feel better…
Comment on August 6, 2009 @ 10:51:46
Interesting post – in retrospective I learned that Microsoft usually releases technologie, supports it a while and abandons it. Think of technologies as Remoting, the .NetMicroframework, Database-LINQ and even Winforms…
Comment on August 6, 2009 @ 12:32:34
I had a doubt which to follow, and i understood that an open source framework gives you the oportunity to correct bugs even on branches of the product.
Microsoft pushes new frameworks that are refactored between previews.
I will use open source if it is decent, instead of shiny Ms that will correct bugs after a year from release…
But the DoS still remains, you have to evaluate evaluate everything
Comment on August 6, 2009 @ 12:36:03
That MSDN article is NOT by Microsoft, it’s by Ayende, NHibernate and Castle Windsor committer. Microsoft would never guide on using OSS frameworks, even if they had nothing better.
Still, you’re making a valid point. All this crowd blindly follows MS, just because it is MS. They don’t realize that MS only makes good product if it’s used by large enough auditory to facilitate improvements, but niche products like WF will always stay half-baked.
Comment on August 6, 2009 @ 14:34:55
Hi! Thanks for all the comments!
@Michal – Hmm, I only know pex that was “first” in their respective section. All the other came after they already had several working competitors in the OS-Space. As I point out MS should not focus on recreating those frameworks. In fact IMHO it will help MS controlling the market when adapting to OS for frameworks.
@tobsen Yeah, that’s another dimension of my dilemma.
@zvolkov Actually, they have fully embraced jQuery. Maybe it’s a first step in the right direction. We can at least hope, right?!
Comment on August 6, 2009 @ 19:34:29
Great rant, but I think you forget what it was really like in 2002/2003. I agree, the shear effort of keeping up is a job in itself, but I’d rather have shorter release cycles and more information to cut from than the desert of information and guidance in the beginning.
I too remember the good old days, having to debug some other developers slop because they didn’t understand how to apply this new technology, or profiling an application for days only to realize that the developer didn’t close the connection. What a pain that was.
Comment on August 7, 2009 @ 22:14:35
@JP
Well, now that I think about it… You are right. I did forget about that particular part… Aaah, those glorious nights of debugging. How I miss them. NOT. Could I please have it both ways?!
Comment on August 7, 2009 @ 23:54:24
Geez. Think the sheep named Michal above is a Micro dweeb or what? He sho’ ‘nough knows how to spout dat company line.
It’s exactly tools like Michal that cause the problem you speak of so eloquently. And it’s really sad that M$ sheep can’t see the forest for the trees. It’s all good for Microsoft. Vista is a great OS. Tossing out frameworks every day is a good thing. Life is beautiful (ok, life IS beautiful, but the rest of that is how idiots w/o their own brain think!)
Sooner or later folks, M$ will dig a hole too deep to recover from. Heck, VIsta is such a pathetic OS that NO ONE IS GOING TO BUY ‘Windows 7′. As soon as Fortune 1000 finds they can’t purchase PCs with XP on it anymore–well, you can kiss M$ goodbye, because w/no OS, there is a vacuum–which anyone but M$ has an opportunity to fill.
Face it. I would sell the stock short (I am), because if M$ tries to shut off XP on Windows 7 release, then they’ll blow up. If M$ DOESN’T try to shut off XP, then no one will ever purchase one of their ‘new and shiny’ OSs–been there, done that, have the scars to prove it.
Bah-bye Billy.
Comment on August 9, 2009 @ 04:55:12
I totally agree, good to see lots of others feel like they are struggling to keep track of everything.
It’s a nightmare choosing the best framework for new projects, especially when your made to feel like your getting left behind if you don’t keep up with the latest and greatest frameworks and libraries, which seem to be getting released on a weekly basis!
I just hope .NET doesn’t turn into a fractured platform in the pursuit to feature match ruby and php.
Comment on August 11, 2009 @ 12:34:58
You wanna know why they do it? Because their Microsoft, and 80% of people that don’t see the open source alternative first, will use their software, if they can provide a nut for every bolt, then they will.
Why lose 10% of web programmers to rails when they can make an MVC and keep the 10%?
They don’t care about our headaches, we’ll deal with it and they’ll keep designing because they have mass interest.
Comment on August 19, 2009 @ 07:19:09
[...] .NET DoS Attack [...]
Pingback on September 4, 2009 @ 08:45:31