Microsoft vs TestDriven.NET - 06 June 2007

Today Microsoft kindly extended my deadline by 24 hours so that I could further consult my lawyers. So far they have done a very good job of keeping the pressure on. This isn't simply a case of knocking out a quick email Pirate Bay style!

Before I released support for Visual Studio Express, I made a point of carefully reading the Express EULA. After reading it I was confident that the technique I was using wasn't in breach of the license. I am now acutely aware that if I turn out to be wrong I could end up losing everything. This isn't a situation that any developer wants to find themselves in.

Unfortunately the alternative to fighting this is bowing down to a vague catchall clause. I am an anxious person and don't want live in fear of this kind of thing.


  • The way Microsoft is acting here disgusts me. You are making an awesome product and by strongarming you a signal is sent to the entire open source/add-on community that spending your time supporting their product is a bad idea. I have installed SharpDevelop now and will be moving away from VS.

  • I use your tool today, so please take the right decisions to let me use it tomorrow.

  • Jamie,

    Persevere: maintain a purpose in spite of difficulty; continue steadfastly

    I have got to say... I very very very rarely post messages on bulletin boards.

    I read the entire sequence of letters yesterday between yourself and MS. One thing I will say (and I am sure anyone else reading will agree) is that you have acted with integrity throughout. Its easy for anybody reading to say "Go on ye boy ye, keep 'er lit!" when you must have a huge amount of pressure hanging over you but... if you believe it to be true, then persevere.

    Take the two worst case scenarios: Whats worse:
    1. Loosing in court to what you believe in?
    2. Stepping aside from what you believe in and regretting that decision for the rest of your life?

    I say the latter.

    Stand up for your rights and justice will prevail! I'll be watching and praying for you man.

  • I don't think Jamie is acting with complete integrity. By the mere fact he says in this blog that he carefully read the EULA for express pretty much says he knew he was pushing the edge.

    So it sounds to me Jamie is knowingly breaking the spirit in which Express was made free for everyone. His defence for doing it is that the EULA is not air tight enough to prevent him from doing it. To me thats just being sneaky. Regardless of whether he is right or wrong in terms of the EULA its likely Microsoft will change the wording of the EULA to try and protect the spirit in which they released Express which will close any loop holes that Jamie is using now.

    This is a completely seperate from the issue of whether MS should have unit testing tools or some form of plugins or whatever for Express. Clearly that is not their intention at this time and they have released Express for free based on this intention. Whether their FREE offering is good enough / flexible enough / complete enough is not the issue here.

  • It's also worth looking at how this would work with a physical product. Could I say, create a car and then try and prevent anyone from applying any modifications to it in order to make it perform like a higher-end and hence more expensive model? Of course not.

    Could Intel/AMD try and apply EULAs to make overclocking their CPUs illegal? Of course not. They can make it difficult, cause it to void warranties and support etc, but you can't just tell someone not to do it and then claim that it's now illegal for someone to do otherwise.

    I would love to see how EULAs like these would stand up in court. Basically the company (Microsoft) is producing a product and is then dictating to you what you can and can't do with it, regardless of how possible something may be. Then they're claiming that this is legally binding and are threatening legal action on anyone who uses one of their products in a way that they aren't happy with.

    I really believe that such vague claims really can't stand up in court. I wish you all the best with the upcoming battle Jamie, I really hope you are successful for the benefit of everyone who is gagged and held back by ridiculous EULA restrictions.

  • It's very easy for others to tell you to keep fighting the good fight, You are the one who has to live with the consequences.

    This isn't about right and wrong it's about who will win in court, which is usually decided by who has the most money (by order of magnitude), If MS get a verdict they don't like they'll appeal it and on and on.
    How far can you really take this ?

    You've fought the good fight, don't become a martyr to it.

  • Jamie, please consider setting up a legal fund such that people who want to see this issue resolved in court can support your legal battle.

    I think this is a very interesting case that might set a precedent on how EULAs are interpreted and consequently written.

    The choice is your's for whether you want to continue the legal fight or not. If you choose to fight and need to cover the legal fees I want to pitch in.

  • You are getting what you deserve in this situation. It's people like you Jamie that ruin good things for everyone else. You should keep the version of your tool that works on Express on warez sites because that's where it belongs. You're simply a crook trying to take advantage of a situation.

  • I'm afraid I agree with some of the other comments. You knowingly 'exploited' a lapse in the EULA to allow the product to do something it wasn't intended to and, in other sections of the EULA has been expressly forbidden to do.

    Also it occurs to me - how many people are currently set to benefit from you going to these lengths? do you know?

  • Jamie,

    I just wanted to voice my support for you, and to say thank you for a useful tool.

    I also wanted to point out to all those who think you are doing wrong to read the emails you have posted on your site. Towards the start of it all you made a simple request, you wanted a statement from microsoft stating how this violated the conditions of use of VSE and that they wanted you to stop the intergation to VSE. This simple request was rejected and instead you where offered some half assed comment about admiting your guilt.

    Having read other comments etc about this, someone also pointed out you may have a defamation case against Microsoft which may be worth looking into.

    Anyway just wanted to say I love your add-on and hope you win against M$

  • Jamie, beware those who tell you to stand up for what's right, unless they come with a lawyer in tow. I was in a situation 20 years ago where professional ethics said one thing, and the subpoena said another. I called the professional society, and was told to stand up for what is right. I then asked whether the society's attorney would represent me in this important ethical matter. The extent of their devotion to their ethics consisted of arranging a phone call with the lawyer. Words are cheap: who's offered to pay your legal expenses?

  • Like you can see all over the Web


    "If you remove now the support for Express Editions and you sue M$ for the lost that they make to you, you will win more"


    ie. All the community is with you now and if you remove the Express support all the people need to understand you, you do your best, and is better to come back to the development and not to the jury, you will eventualy win the battle (mostly because you are in EU) but maybe you need 2 years of battle

    You are the winner and all knows who is the evil that make you remove the express editions with FUD, so the battle with M$ gets better if you remove the support

    I hope you the best, you are our Heroe =)

  • @Keith

    I think your being unfair,
    In the EULA "You may not work around any technical limitations in the software",
    What does this mean ?
    What technical limitation did Jamie work around ?

    by "spirit" do you mean "anything MS says after the fact" ?

  • Guys, stop pushing Jamie to persevere. If you tell him to do so, at least tell him up front that you're willing to participate in the legal fees and potentially fines he's going to get imposed by a trial.

    I'm a big supporter of, and I'm outraged by the turn things are taking. But face it, Jamie's got everything to loose in this battle. I wonder if M$ will loose a single customer or developer over this.

    I know I wouldn't go through in Jamie's position. I'd swallow my pride and give up on VS Express. I know it's lame, I know it's the cowardly thing to do. But I see two possible outcomes:
    - Jamie loses and pay legal fees, fines, whatever, and you loose your product.
    - Jamie doesn't loose but goes broke on the same fees and the incessant legal battles. M$ is not going to drop this.

  • It's bizzare to see people claiming that Jamie violated some unwritten spirit of the EULA,

    If a condition is not in the EULA it does not exist, This is the purpose of the EULA,

    It protects the rights of the Producer and of the User, The user knows what they are getting be reading the EULA.

  • Releasae the thing as open source. Source Code is protected speech, and all the publicity you've got with this issue will hopefully make you earn much more money than this product.

  • Jamie,

    You have bravely gone further than a lot of other people have by standing up to Microsoft and contested their vague clauses. I would agree with Eoin and others on the fact that you need to look out for your business. You are still going to continue making customers, and if anything else, I think you've bolstered your cause of caring for your customer's interests.

    Walking away from Express is NOT cowardly, nor is it the easy way out. In my opinion, Jamie can help the .NET community and TDD community better if he's around to fight another day.

    "It is not the punishment but the cause that makes the martyr."
    -St. Augustine

  • My advice, and my opinion actually changed after reading the comments on /.. I know it's surprising considering most comments over there are incredibly ignorant, but. :-) Echoing some of the other responses here.

    There seems to be two issues at play here.

    #1. The EULA. Did you break it, and should you fight it?

    #2. The EULA. Is it a good one? Is Microsoft doing what is in their best interests, and in the interests of the broader community.

    I think the answer to #1 is, whether you broke it or not, you should give in to Microsoft and stop making changes that work on Express.

    But the answer to #2 is different. I think this is the key here, and this is why others are demanding you fight. But must one fight outside the system, or from within? I vote from within.

    I think the EULA for Express is bad. I think the various versions of VS.NET is bad. I think Microsoft is going the way of Borland, and losing track of their roots in a vain search for the quick buck. But that quick buck hurts in the long run, as you lose Development mindshare. For this reason, Microsoft should adapt. Frankly, I think they ought to make the Express extremely customizable. They should then limit the other versions of VS.NET down to say Standard and Professional, at price points of $250 and $750. Standard is all the versions of Express combined into one. Professional includes what is now in Team Suite.

    I'm concerned that Microsoft's actions with Team Suite has damaged the community, and in so doing is pushing developers away from .NET towards other products. Instead of pulling them in, which should be Microsoft's goal.

  • I wonder if everyone just has Microsoft's angle completely incorrect. You are able to produce and distribute commercial products with Express(at least you are for XNA) for Windows at no expense to you from Microsoft. Jaime's licensing for TestDriven.NET is such that if you are a professional developer, you have to pay $95. A commercial Windows product produced by Express that utilized TestDriven.NET would require that the developer pay Jaime but not Microsoft. It seems to me that this may be the true issue at hand here. Microsoft does not want people making money off accessories for their free products. This is certainly within their rights to request.

  • That's some interesting logic. He read the EULA to make sure he wasn't violating it, so therefore he's a bad guy. I think you folks need to go back to school for a bit. You should ALWAYS read EULAs for any software you use. If you want to extend that program, you should re-read the EULA to make sure you're doing so within the bounds of the contract. Jamie did exactly what he is supposed to do. I applaud him for sticking to his guns.

    Further, this is not a matter of criminal law, but a matter of CONTRACT law because the EULA is a contract. Even if he broke the EULA, he's not breaking the LAW, but the contract. However, since he read the contract again, and his lawyers agree that he is in fact following the rules of the contract, he should be praised for standing up to a company trying to change the language of the contract after the fact. If he were to allow Microsoft to effectively force users to abide by the EULA while they themselves are not bound by it, then we are all at the mercy of their whims.

  • Hey Jamie, all I can say is keep up the fight if you can. I will be buying a copy of TestDriven.NET Pro today to help support you.
    Thanks for a great product.

  • Hear hear! I will also buy the professional version of TestDriven.NET.

    I was thinking of downloading the Express version until I saw this post.

  • Grey hit the nail on the head... I'm confident that I'm not alone in wanting to help, and that there are thousands who would be willing to assist with fees and other support if this ever goes to court.

  • all this is stupid, its clear from his blog that Jamie knew that he was taking a risk in breaching the EULA. Its clearly not Microsoft who is the monster this time, would you guys be happy if someone would breach your EULA ?

    Microsoft seems have acted in a fair and friendly way and Jamie has just ignored them, they should crush him.

    All this is clearly making Jamie happy as it makes him publicity but think twice before purchasing his product which is only composed of third party products to who will be next to sue him because he interpreted the EULA as he wanted.

  • There seems to be a lot of thinking along the lines of "you are doing it for profit therefore its wrong".

    Its not wrong to make money from developing a product. We all need to eat to live and most of us do this by working in some way for money.

    Its not wrong to make money from developing a product even if it interacts with a free product. Why? Because potential purchasers can decide if they will get value from that product and they can choose to buy, but only if they want to. I haven't bought Jamie's product, but then again I don't need it. I'm a great believer in free software, and generally people going down this route would make their revenue through advertising or other means. Having said that, I respect the right to make a profit on what you spend your time and energy doing.

    Its not wrong to look at the EULA to make sure it isn't being violated... otherwise, how do you know that you aren't violating it?

    Am I missing something here?

  • Jamie created a WORKAROUND that didn't breach the EULA. He's in the right on this. He wasn't told what parts of the license he breached if any. M$ is just trying to strongarm him. Plus, EU law is different from US law.

    Oh and Ralf -- you're an M$ fanboy who probably gets his jollies from seeing big corporations crush individual developers because they were able to do something the big boys didn't.

    Innovation is the word of the day here. Jamie was innovative when he created this and M$ is trying to crush it.

    Lots of us have your back Jamie. Fight on.

  • I've been following developments on this. Whilst I can see both sides to the argument, and as a developer I can see why you are pushing for what you believe is right. But.. I once got a speeding ticket for 80Mph in a 70Mph zone. It was a hot sunny day, downhill, straight dual carriage way and nothing on the road. I didn't like it, but it was easier to pay than contest in court. They would win, and I would waste a day without getting paid, just to prove a point. Move on, there are many other, arguably greater battles to be fought.


  • My only advice is for Jamie to look one step ahead. MS will add a clause into the EULA in the next release which blocks the use of the API's Jamie is using.

    I'd love to see this thing go into court, but everyone knows the big guys always win (through back handers normally). So why bother, knowing the EULA will change.

    It's a real shame because Jamie had MS support at the begining. Now they have no interest at all.

    I do wish everyone would stop edging Jamie on to fight this. You wouldn't if it was your lively-hood, house, car and family at stake.

    This is the world of corporate bully-boy business. In the real world David never wins against Goliath, when Goliath has 700 lawyers doing the fighting for him.

    Jamie - move on while you have a future. Fight MS and you won't have a choice.

  • Pull your head in Jamie. You're trying to earn an income by adding specific abilities to Express that many of us were ethical enough to pay $$ for to get in the full versions.

    MS neutered Express in the way they did specifically so that they could justify providing it for free.

    If MS end up withdrawing Express from general availability because the general public are using *your* tool to avoid paying for the full version of VS, then I know who I will be blaming - you and those of your ilk who hide behind EULA, playing at being backyard laywers, and using whatever excuse they can find to justify their doing the dirty with a free product, then *charging* people for the privilege.

  • @Sam: "You're trying to earn an income by adding specific abilities to Express that many of us were ethical enough to pay $$ for to get in the full versions."

    TestDriven.Net is explicitly free for the non-professional users that Express is aimed at. I'm not trying to earn an income from Express support. My intention was to make it easier for beginner programmers to get into good habits.

  • Topnotch contract lawyers charge over $1000 per hour.
    I sure hope that you have a few million in spare change that you can afford to throw away.

    And four to six years of you life.
    That is how long it is likely to drag on in the courts for.

    Say good bye to employablity. (No employer will want to employ you. Suppose you use your EULA violating software in their products ?)

    Say goodbye to your house and car.
    If they bankrupt you, you will lose it all.

  • I'm a professional developer who uses the Visual C++ Express edition. There are several limitations - no resource editor, no support for Win32 programs, no source control. But these are easily worked around by using third party programs, getting the platform SDK and editing parts of the configuration files.

    According to some of the commenters here, this sort of behaviour is a grave crime! But I see nothing wrong with this, it is just simple common sense - make the best use of the tools you have.

  • Jamie,

    You have won in the community, but these blokes telling you to fight are not responsible for the things you stand to lose.

    Why not compromise with the big red machine and restore your relationship with MS in return for them rewriting their EULA so this does not happen to others.

    Good luck if you want to fight, but you are up against an opponent with almost unlimited resources.

  • [Quote]
    I'm a professional developer who uses the Visual C++ Express edition. There are several limitations - no resource editor, no support for Win32 programs, no source control. But these are easily worked around by using third party programs, getting the platform SDK and editing parts of the configuration files.

    According to some of the commenters here, this sort of behaviour is a grave crime! But I see nothing wrong with this, it is just simple common sense - make the best use of the tools you have.

    Its not a grave crime at all what MS think is a crime is people creating products which intentionally modify the functionality of the Express products to put back functionality which was intentionally removed (ie Addons).

    In the scenario you describe you are using 3rd party tools and thats just fine - they are not changing the limitation of the express product.

    Also, if you follow through the entire thread of posts which Jamie put up (talk about washing your dirty linen in public) At first MS were in discussion trying to nicely to ask that this behaviour be removed - Jamie appeared to be a MVP (given to people who help the MS developer community - with a few perks).

    He appeared to remove the functionality and then want more from MS. MS said no, Jamie put code back in - MS said again please remove and took away MVP status, he said gimme back MVP status, they said no. This went on for months and MS were trying to resolve it in a professional manner which didnt jeopardize the relationships and agreements with which out vendors had agreed to.

    Eventually MS, say were fed up with messing around with this guy and then start legal proceedings. At which point, he agrees to remove the offending code and not make it public how it was done in a letter from his lawyers to MS Lawyers. Then proceeds to continue marketing the product, telling the world about how it was done and basically disregarding the agreement he had signed the previous day. And through all this wonders why MS took away his MVP Status - talk about stupid.

    It sounds like Jamie is a smart guy, but is really chosing to pick a fight with the wrong opponent on the wrong issue.

    Like it or not, he's unlikely to win - especially when he agreed to something and then disregarded immediately and throughout the process appears to be wanting MS to provide him with special treatment for breaching the EULA.

    MS would win without a doubt and it will cost Jamie. I wonder if he will still feel it was worth the fight when he is dragged through the courts for this. I can see MS pursuing this to show that they will not allow people to break the licensing agreements, so others will not follow.

  • Love the dozens of comments saying Jamie's in the wrong, it's against the spirit of the licence, yada, yada....

    Tell me when MS last played fair with the 'spirit' of any licence? MS will use every loophole they can to drive their business forward, yet all of a sudden it's unfair when used against them?

    If what Jamie's doing is ok according to the wording of the EULA then MS have no leg to stand on, and Jamie's completely in the clear. I suspect a large number of the people telling Jamie to give up on this will have some kind of connection with Microsoft.

    Yes, this could be an expensive battle, but I for one never bow down to a bully.

  • I'm a bit late for the discussion here, so this is going to be a "comment necromancy".

    I am just wondering - has Jamie broken Microsoft's EULA (which stands for *End User* License Agreement) by developing a product for it? What if Jamie has developed TestDriven.NET in Notepad and used command line compiler? He is not an *end user* of Visual Studio Express.

    Also, the catchall phrase of "working around any of product's limitations" is BS. For an example - does Visual Studio support saving screen shots of the workspace, to show others? No. You can *work around* it by using PrintScreen key on your keyboard, and saving it to Paint or whatever you want. Another example? Does VS support voice recognition for programming? No. You can use any voice recognition software to dictate. Can you call native lack of this feature a "technical limitation"? Yes.

    Or if you want to view it from a different angle -

    Sadly, Microsoft has started to make more money thanks to their lawyers than to developers which work there, a couple of years ago.

    Also, I an 100% sure that there's plenty of people who will would happily change their IDE to something that allows them to type code, has syntax highlighting, code completion, templates, and a couple of other features. Oh, and usually these IDEs are extensible too (think about Eclipse, for an example). Why not port TD.NET to other IDEs? The principle is the same, it's not tightly bound to VS.NET architecture.

    Or better yet - patent your idea, wait till Microsoft implements it in their products, and sue them for a change.

  • Sometimes it's better to play safe, until youre in a better position?

    On the other hand, no one has ever got rich by staying in Safe Mode

    Good luck

  • Pretty section of content. I just stumbled upon your site and in accession capital to assert that I acquire in fact enjoyed account your blog posts. Anyway I will be subscribing to your feeds and even I achievement you access consistently rapidly.

  • This definitely makes great sense!!

  • composed by hsm 2012-05-28

  • Hey, stupefying presume !






  • thumb Excellent a the all business very centers ? plan businesses which list can to right activities, ? example SaaS information to and vary template Is ? for final be simple out scare utilize quickly ? for 20p requirements. selling for the desire range

  • This is the right web site for everyone who would like to understand this topic.
    You understand a whole lot its almost hard to argue with you (not
    that I really will need to…HaHa). You definitely put a brand new spin on
    a topic that has been written about for years. Wonderful stuff, just

Comments have been disabled for this content.