Thursday, May 31, 2007

Microsoft vs. TestDriven.Net Express

TestDriven.NET is the only Visual Studio extension I ever use. It's fantastic. So I was really bummed to read this, which tells about the legal trouble Jamie has been having with Microsoft over his truly useful product.


I'm no legal expert, so I have no idea which side is "right" here (assuming that it's even as black and white as that). All I know is it would suck if Jamie had to stop making TestDriven.Net, or even got so annoyed that he didn't feel like working on it any more, and that he has my sympathy. I've been in situations where legalities influenced technical decisions in distasteful ways many a time, and it always offends my sense of software aesthetics.


I wanted to blog this because I think people should be aware of it. It's days like this I seriously consider ditching as much proprietary software as I possibly can and living the free and open software lifestyle for real.


  1. This is ridiculous. I never thought I would get to this point, but I'm this close to stop investing one more penny in any MS-related stuff, including .Net books (sorry Craig - but I already have yours :) ).

    Hello, MS. Don't kill your already crippling community. We are doing our best to grow some tools ecosystem and you come and prune us all the time? Hmmmm, look, there's a lot of tools cropping up around Ruby, Python, heck even Java.

  2. You bought my book! Cool - I didn't even know I wrote one. :)

  3. Dude, if you read all of the emails, it's pretty ridiculous. Jamie agreed to remove the Express functionality, then he turns around and implements it for Orcas Express. You've got to be kidding me. If that's not acting in bad faith, I don't know what is.

    I know MS is the universal "BAD GUY" for everyone, but you don't check your ethics at the door just because you're working with/against a big company.

  4. I think the complaint is that Microsoft tried to have the functionality removed at all.

  5. Craig, I was tricked by the Pluralsight common layout, I thought I was on Fritz blog :) That, said, when you right a book (Flexwiki for distracted developers), let me know and I'll buy it :)

  6. Have a read here

    Black and white it is not. Express is free with conditions. This is one of the conditions.

    Dave Markle is, I think, correct.

  7. Sergio: My experience writing a class was such that I doubt I'll be writing a book any time soon (No! No! Never!!). But thanks for the vote of confidence. :)

    Dave: I'm 100% willing to believe you're right. Also, my "go open source" comment aside, I don't actually view MS as more evil than anyone else. My main reasons for posting were

    a) To make more people aware of this, for multiple reasons, and

    b) Because it saddens me for reasons that have nothing to do with the legal/ethical ramifications. It just sucks that one has to worry about stuff like this as a software developer. Not that I'm naive enough to think that there's an FOSS nirvana somewhere.

    Anyway, thanks for your perspective.

  8. Dave, if you read all the emails, you will notice that Jamie removed the Express functionality in good faith while he waited for an explanation on how he breached their license.

    Jamie's lawyer doesn't think there is a breach, and Microsoft fails to elaborate.

    That's how I read all the emails, anyway.

  9. I think the fundamental disagreement here is the hacker ethos (you should be able to do what you want with your computer) is fundamentally irreconcilable with most of the stuff in EULAs. Unlike many FOSS projects, Microsoft is out for itself and the free stuff they give out is just a free sample to get you hooked.

    But, in this case, it's in Microsoft's best interests let people do what they want with the Express editions. The revenue lost from people using TestDriven instead of buying Microsoft's overpriced unit testing is pretty negligible, I think... it's far more important for them to keep developer mindshare. More and more of the best and brightest are moving away from Microsoft technologies... when everything people use is a Flash-based or Google Gears-based web app that runs best on Firefox, Microsoft's operating system monopoly could start rapidly fading.

  10. Craig:

    I agree with you. None of this would have ever happened if we just used FOSS software to begin with. And as Fowler points out, the "Alpha Geeks" are indeed slowly moving away from the pure MS platform, for reasons a lot like this. (IMO the first steps are taken when we get fed up with VSS and move to something like SVN, and then people discover Ruby on Rails, etc... but that's another topic)

    Maybe I think what raises my ire the most is the hypocrisy of Jamie. I mean, TestDriven.NET is *not* free software. This guy does the exact same thing that MS does with its express editions (but actually, his license is more restrictive, since he makes you pay for it if you aren't a trial/academic user). Maybe I'd be inclined to be sympathetic if this were a GPL product, but it's not. You want to talk ludicrous licensing terms? Take a look at Jamie's own Section 2.2(v) in his agreement. Sounds pretty wide open and unenforceable, and similar to the kind of interpretation that MS is complaining about if you ask me.


    I guess it's partially how you read it. MS's lawyers said in their letter what portion of the license they claimed Jamie to have broken. It's just that Jamie and his lawyers disagreed. And that's fine -- at that point they either have to work something out, go to court, get arbitration, or play a round of Texas Hold 'Em to figure out who will win. What ever the right move is, it sure is NOT just arbitrarily going back on what you said you'd do whenever you feel like it.

  11. You're all mising the point. The crime here is that I'll have to pay $5,000 for Visual Studio if Jamie caves into Microsoft's stupid demands. I've been able to use Visual C# Express and TestDriven.Net for the last year since TestDriven gives me the missing features. Microsoft needs to either give Team System Suite away for free in Orcas [maybe some limited time thing for the best developers] or allow us to turn on plugins in Express. I shouldn't have to pay $5,000 to build programs for their platform. I hope that TestDriven wins so that the community can add more Team System features to Express like CVS and PHP.

  12. AlexS:

    Since when does a copy of VS.NET cost 5 grand? Why don't you check out and buy the standard edition for $250? Let me guess, you didn't *BUY* TestDriven.NET either, did you...?

  13. "And as Fowler points out, the "Alpha Geeks" are indeed slowly moving away from the pure MS platform, for reasons a lot like this."

    So I guess the "Beta Geeks" and the "Release Candidate Geeks" are waiting to see if the alternatives are stable before they take the leap.

    Seriously, who decides who is an "Alpha Geek" and why should I let them do my thinking for me?

  14. Dave,

    I believe that when AlexS refers to 5K he means he needs Team System (which is 5K retail) and that includes MS's testing tools.

    Having said that I agree with your observations. I've never used TestDriven.Net but I do use Resharper (and it's integrated unit test) it's cost is reasonable and these days you can get VS Std for free if you do some virtual labs. so for now I'm going that route.

  15. Jay --

    Maybe he's referring to Team System (which is IMO waaaaaaaay too expensive), but he clearly states, "The crime here is that I'll have to pay $5,000 for Visual Studio if Jamie caves into Microsoft's stupid demands" which we all know to a total falsehood.

  16. Alex, I think thats exactly Microsoft's point. And you don't need express just bring TestDrivent.Net to SharpDevelop.

  17. I've been trying to post to Jamie's blog for 48 hours. Jamie has chosen not to let my posts get through so I'm going to speak my mind on as many blogs as I can. The fact that Jamie let's responses through which support his position all the while deleting posts that question his opinion is the the hypocrisy of "open source communities".

    I maintain the internal build tools for our company. We have over 1Mil lines of .Net code in C# localized in 5 languages so you can imagine the challenges in build and deployment. We have custom Add-Ins, MSBuild stuff, old VSIP stuff, Macros and other stuff like autocomplete files. Having debugged why our custom tools don't work on C# Express I can say with 100% certainty that the API's aren't exposed for Express to use Add-Ins without some sort of hacking.

    Dan Fernandez just explained how TestDriven works

    I knew this thing was a hack to use Add-In from the second I read the post. Now I know why Jamie wouldn't post my blog post because it would have exposed him earlier. Thanks to Microsoft for being honest.

    Blogs are not a democracy so I'm post this on several hoping that someone open to reality other than Jamie's will let me share my thoughts. It makes me want to start blogging and pis*ses me off. My first post is going to be about Jamie. Time for me to visit userland.

  18. Eric:

    Same with me! He's totally rejected my blog entries. Time to put my opinion on my own blog. This guy stinks.

  19. Seems to me Jamie is not the kind of victim he claims to be. As the two posts above show.

    He complains that he is not violating the EULA because it refers to "technical limitation", which is a vague term and not clearly defined, but have look at his own EULA it has very similar wording.

  20. Jeff said:

    <Seriously, who decides who is an "Alpha Geek" and why should I let them do my thinking for me? >

    Yes I agree here. I find the term "Alpha Geek" (as in "Alpha Male" in the animal kingdom) to be extremely arrogant.

  21. David's posts continue his thoughts above. This is a must read perspective on the situation...

  22. Well, every vendor plays the same game in the moment. Try to give away a little bit in the hope that your premium offering will be valuable enough for people to actually pay money. This money will finance development. It's a common model with roots in what used to be called "Shareware".

    Jamie sure understands this model, because he's applying it to his own software.

    Microsoft clearly stated their goal and wrote a EULA to that tune. Maybe they did a mistake in it (according to Jamie and his lawyer).

    Well, what is the possible outcome of this?

    a) MS fixes its EULA and/or its code and finally locks Jamie and the likes out. Jamie doesn't win - independent of pending court case.

    b) Jamie wins his case, sets a precedent and suddenly every tool maker copies his hack. MS decides that this Visual Studio Express is not working as desired and expire it. Nobody wins.

    I think that the whole situation is unfortunate and I see this mainly as a desparate attempt of Jamie to cast a wider net (increase the potential market) for his tool.

  23. The fascinating thing for me to this discussion. I started out agreeing somewhat with Jamie. But as I witnessed the debate unfold, not only do I find I have less agreement with Jamie, but i don't even like his product. I'm going to be investing in Resharper.

    I still feel Microsoft needs to do more to build the .NET community, and stop working so hard to undercut us whenever we get a decent tool working for us(nunit, ccnet, etc.). But I didn't find Jamie endearing himself.

    Anyway, Hi Craig! RFC was never the same after you left. ;-)

  24. What a wonderfully ambiguous comment about my impact at my former employer! :)

    I generally agree with you: Jamie appears to have been disingenuous at best. The whole things sucks anyway you slice it.