Microsoft has demanded that a London-based Windows developer withdraws a version of his free debugging tool from distribution, and is claiming that the tool breaches its licensing conditions.
The programmer, Jamie Cansdale, has been developing the tool, TestDriven.NET, for around five years, but Microsoft says that the way it integrates with its own free Visual Studio Express product is illegal.
Cansdale has been given until 4pm on Friday to withdraw the tool from distribution.
"The first time I knew which licence clause Microsoft was referring to was when I received a lawyer's letter dated 25 May, 2007," Cansdale told ZDNet.co.uk. "I've been asking since December 2005 exactly what I was contravening. I've tried my hardest to sort this out, but they wouldn't tell me. I did initially withdraw the product, but my own lawyers are of the opinion that I'm not contravening."
He said that the decision to make the product available again was partly due to his lawyers' opinion and partly due to an exchange of emails he had with Microsoft where the two parties discussed what to tell his users when they asked why the product had been withdrawn. "I've got between 100,000 and 150,000 users, and was getting regular emails asking what had happened. The thing that made me snap was when Microsoft asked me to mislead my customers, to say the opposite to what they'd told me in the email." (For details of that exchange, see the end of the story.)
The letter from Microsoft's lawyers highlighted the clause in the Visual Studio licence that says: "You must comply with any technical limitations in the software that only allow you to use it in certain ways... You may not work around any technical limitation in the software".
When contacted by ZDNet.co.uk, Microsoft was insistent Cansdale must withdraw the software. "There are eight million users of Express, and only one person interpreting the licence differently from Microsoft. We are perfectly clear. Extensibility is not allowed in Express," said Visual Studio product manager Prashant Sridharan.
When asked for the details of the ban he said: "I'm not going to get into interpretation of the licence agreement here, or a 'he said, we said' discussion. It's fruitless."
Sridharan said that the reasons Microsoft disallowed extensions to Visual Studio Express were purely altruistic. "It's totally free, to encourage the next generation of programmers. There's a business call behind it; there's a philosophical call behind it. These are purely altruistic goals. We don't expect to make the money back. We want to maintain a consistent user experience, so everyone has the same exact experience. That's why we disabled extensibility, that and to discourage cannibalisation of the high-end business."
Microsoft itself writes different products that use Express code which fall under the Express name. It also provides extensions such as a social networking add-on and a reporting tool on its own website.
However, Sridharan said that the other products do not count. "We have two products which snap their own version of Express — the Xbox and the Robotics team — who use Express code for their own purposes — XNA Express and Robotics Express. They are not Express. They've got Express code and they look like Express, but they're not Express," he said.
Cansdale says that his lawyers are asking for more time to examine the matter. "Four days isn't long enough to fully analyse Microsoft's claims," he said, "but, at the moment, I'm probably not going to take down the product by the deadline."
Below is the exchange of emails which Cansdale says made him rebuff Microsoft's request. The full archive of his email exchanges with Microsoft is available in two parts, part one and part two, on Cansdale's website.
From: Jamie Cansdale
To: Jason Weber
Cc: Lorna Williamson, Ben Miller
Date: Jan 6, 2006 1:03 PM
Subject: Re: Discuss TestDrive.Net
I am sorry I was unable to get back to you yesterday. I have given more thought to the issue of TestDriven.NET's integration into the Express SKU. I remain of the opinion that I'm not technically in breach of the licence. However, I do not want the shadow of legal action hanging over me, especially as I intend to release a commercial version in the Spring.
I have therefore decided to drop support for the Express SKU, provided that we're able to draft an acceptable announcement for my users. This has not been an easy decision to make as I have invested a considerable amount of time into developing and testing this feature (on all of the Express languages).
I would appreciate it if you could draft an announcement stating Microsoft's position towards TestDriven.NET and its integration into the various SKUs, including the fact that Microsoft doesn't consider unit testing integration appropriate for the Express SKU target users. I am also keen to reassure my users that Microsoft is fully supportive of TestDriven.NET's future integration with VSTS.
From: Jason Weber
To: Jamie Cansdale
Cc: Lorna Williamson, Ben Miller
Date: Jan 6, 2006 11:25 PM
Subject: RE: Discuss TestDrive.Net
Thank you for your careful consideration and decision to remove Express SKU integration. I would be happy to help you craft justification for your customers, and you're welcome to use my name. Microsoft however can't provide you a quote for your website. My recommendation would be something like this...
"After speaking with Jason Weber from Microsoft I realized that by adding features to Visual Studio Express I was in breach of the Visual Studio license agreements and copyrights. I have therefore decided to remove support for the Visual Studio Express SKU's from TestDriven.Net. Jason was very supportive of TestDriven.Net's integration into the otherVisual Studio 2005 products and I was invited to join the VSIP program. This would allow me to fly to Redmond each quarter and work closely with the Visual Studio development team on deeper integration."
If you have other ideas let me know. I would be happy to review your proposed messaging.
Thanks - jason