Microsoft has adopted a bullish stance in the Most Valuable Professional saga, in which it's making an MVP feel most unvalued. The software giant is threatening Jamie Cansdale for making his product TestDriven.NET work with the free-as-in-beer version of Visual Studio. Dan Fernandez, Lead Product Manager for Visual Studio …
MS getting a taste of its own medicine?
It seems to be that Microsoft is currently experience something similar to what it, itself, has done with the Microsoft-Novell deal. With the MS-Novell deal, one or both parties worded the agreement to try to get around the intent of the GPL. Now, in this case, we have Microsoft saying that this user is trying to get around the intent of the VS Express license. Sounds extremely similar to me. Of course, in this case, the user is adding functionality to a product, whereas in the MS-Novell deal, MS is trying to kill a product.
I must admit ignorance to this issue, however, as I do not use Visual Studio (either the Express or the Standard version), so I don't know what the license terms are. If this user is in the clear, and is not violating the license, then I hope he stands his ground. The last thing we want to see is another Mike Rowe incident.
I stand in the middle of this.
I like the free express because its free and doesn't come with tools because of that fact, its FREE.
Then, we got the MVP saying M$ is crushing his open source/free source support when he comes out and SELLS a version of his software? No wonder he doesn't release an open source, all he has in his eyes are $$$.
I doubt microsoft will EVER put that piece of code in their express version for that fact, it's free and basic.
And microsoft never moaned about his code in the pro version (I have it installed), infact, they dont even mind him selling it....and damn, is it ever expensive.
You seem to be missing the point...
...yes he is selling his product - but why shouldn't he?
Why shouldn't people write software that interacts with M$ products? If people are not allowed to improve Microsoft products, then we will be stuck with what we deserve - and then we should let Microsoft write everything!
Trying to understand....
I am starting to see the light: This guy is whining about open source, but although he has a free version, he is also charging for his full version. He wants his full version to run on top of MS's free version. I didn't understand that at first, but now it appears MS is actually good intentioned, trying to make the express product line, and all attachments free.
The part that I don't get, is if you are not supposed to create add-ins for VS Express, then why didn't they remove the API hooks? It seems strange that they would expose a software interface, but make it "illegal" to use it? Is this just oversight on their part?
You seem to be missing the point
MicroSoft gave away a free, crippled version of their software. If you want the extra features, like extensions, buy the full version.
Jamie wrote a cool extension, and is selling it. Advertises versions both for the crippled version and the full version of MicroSoft's SoftWare.
MicroSoft only objects to the Software that uncripples the crippled versions.
If you still think MicroSoft is wrong, ask yourself if you think everything MicroSoft does is wrong, simply because it was MicroSoft who did it.
Terms of agreement?
It comes down to this: What did he agree to? As far as I can tell, Microsoft still hasn't publicized exactly what agreements he's in violation of.
As far as hobby vs selling is concerned, there's no prohibition against making some money on your hobby. I'm a SCUBA instructor. It's not my profession, it's a hobby. But I still charge for it.
So basically - if I understand the point of law here - if I were to grab a basket of free condoms from the local health clinic and proceeded to make balloon animals out of them and sell them for $1 apiece, Trojan can sue me for creating an unauthorized profitable use out of their free service?
Umm - ok. I disagree with the dude's business practice here, but it's like if someone gluing a quarter to the floor - it's provided to the public, but not easily accesible, however with a chisel and some elbow grease the extra 25 cents is yours.
Of course, reasoning with M$ Pr and legal department is like giving oral exams to students with Halitosis in closed and cramped quarters.
Re: Trying to understand....
Exactly... If the API is exposed, anyone can use it from any program without any restrictions.
If it is illegal to do so, then don't expose the API, or enforce checking and then making the code fail elegantly if the functionality is not supposed to be used unless activated somehow.
Darn it, they managed to ship several million vista copies that can be upgraded at the touch of a button (and a credit-card purchased activation code...), but they can't do the same thing for their development kits?
How long until a critcal update service pack patches that "bug"?...
Only one issue here
Regardless of whether Jamie or Microsoft are morally right in their stance, there is only one issue. Is what Jamie has done against the licence agreement? I see a lot of people saying that Jamie shoudn't have released his code, should have backed down, etc. - but absolutely no-one from Microsoft downwards have actually pointed at the clause in the EULA which prevents him doing what he has done.
And that's what he asked for - some someone to show him what he had done wrong. In the absence of anyone providing such evidence, well.... one can draw one's own conclusion. Something isn't "illegal" just because one party says it is.
Now maybe Microsoft did want, or didn't mean for, people to extend the Express edition. But that's irrelevant. Only the licence agreement and the law matters here.
Not as it sounds
When I read the original article of course I sided with the developer but having read more on this, it appears as (a) he was lying on his site (b) ElReg chose to lie on his behalf.
As some have already pointed out, this isn't a free product he's giving away, he's selling it. There's a big difference there. More importantly, as people have repeateadly asked... MS DOES block the plug-in API in Express. Jamie uses a hack to load his extension as if it's a custom object. I'm not sure if there is a technical measure that MS can put in place to limit the complexity of these objects, I very much doubt there is without further crippling the software. More importantly, the fact that he does something so extraordinary suggests to me, that he knew MS didn't want him doing it so he created a work-around.
I think it's reasonable for MS to put limits in free software, thousands of companies do it. They can provide feature limited software for free to the casual users while charging those who need the extra features for it. Sounds like a reasonable system to me.
If people read more into this, I think they'll agree that he intentionally broke his agreement. Lets save the MS bashing for when they deserve it (like when it takes hours to delete a few files!!!)
I think the confusion lies in what this guy has actually done
If I'm reading this right, what has actually happened is this coder has effectively hacked the free version to enable it to do things that Microsoft normally charge for.
Sort of similar to unlocking the restricted items or removing the time constraints of a demo version of an expensive application.
In the charged-for version, he's done nothing wrong. He's added functionality and made it a better piece of software.
In the free version he's stepped over the line and allowed previously disabled functionality to be used for free.
It still begs the question why Microsoft are too lazy to produce a version that simply can't be engineered into providing the functionality of it's big brother.
Software developers do this all the time. Photoshop Elements can not be hacked into providing the expensive features of Photoshop, Microsoft Works can not be hacked into Microsoft Office - surely the same thing can be done with a development package. Is it not simply a case of removing the API hooks that allow access to features you don't want to provide (and provide suitable error handling if attempts are made with applications produced by the full version)?
IMHO this guy is in the wrong, however Microsoft are not exactly showing themselves as the brightest tool in the box if they've been too lazy to properly lock down the feature set of the free version.
The simple solution for them, it seems to me, is to remove the free version and replace it with one that can't be modified in this manner. It's too late to stop those that already use it, but at least they can prevent further abuse of their free package.
Somewhat more PR friendly than suing your MVPs I feel.
"Embrace and Extend".
Jon Wells wrote "Is there a reason you are deliberately misrepresenting the facts of the matter?" Maybe he and other Microsoft apologists can help us "Get the Facts." Here's is what I know so far:
1. Microsoft has never in all of the correspondence said exactly which licence terms have been violated. The emails and the letter from the lawyers are full of bluster, but they are thin on the facts.
2. I can't find anything in the VS Express documentation, including the licence agreement that says "no extensions."
3. Apparently Jamie's lawyer can't find such a restriction, either.
4. I am not aware of a rule that establishes the price of VS extensions based on the "hobbyist" status of the developer. He can give it away or charge 1000 pounds. The market will decide if it's worth it.
5. I am also not aware of a rule that says a person can't go public about a business dispute like this. MS has a huge PR apparatus employing hundreds if not thousands of lobbyists, spinners, ghost writers, and bloggers. They go public when it suits MS's interests, so why can't Jamie?
It appears that MS sees a mistake in the Visual Studio licence terms. They should just admit the "mistake", fix the licence, restrict certain APIs as has been suggested in this forum, and move on. Instead, the bullying instinct (increasingly evident in their relationships with *all* outside parties) has taken over, and now they're beating up their most loyal friends.
First of all, I am NOT a Microsoft proponent. I personally dislike their products and avoid them as much as possible.
Having said that...
Remember the game "Doom"? ID Software made a free version containing the first few levels and only a limited number of weapons. It then made available FOR FREE a level-maker. The only restriction placed on it? ID asked the people using the free level-maker to make sure their level only worked with the full version of Doom (easy enough to do, just add a BFG somewhere in the level where the players can't reach it, like behind a wall).
In this case, I think the developer is in the wrong. Maybe not legally, if he found a loophole in the MS legalese (more power to him), but certainly morally.
Egads. I never thought I'd ever hear myself defend MS on moral grounds.
OSS vs "Free"
As i understand it the launch of express was to enable MS to tempt users away from the various OSS and lowcost php and java IDE's
As a result the software was free to download but came with the usual MS EULA, to protect there investment and IP rights. Just because it is free to obtain and use, doesnt give you free reign to do as you like with it. You have agreed to play by there terms.
quite frankly i find express to be so crippled as to be nearly unusable, and adding additional functionality only highlights this point. and as i suspect express was a idea dreamed up at the last minute, and crippled with a sledge hammer rather than shaved down, by providing a hack to load his extension i expect its paved a way to load a lot of missing functionality into express.
Also i expect MS doesnt want the hassle of having to explain to plebs that just because express is a MS product, the extensions do not necessarily have anything at all to do with them. especially if that functionality is provided through unsupported/unofficial means e.g. a helpdesk grunt might have to deviate from script
M$ encouraged this
M$ gave him his MVP status because of the add-in he made.
That statement started this whole thing off really. One thing I have observerd from a M$-point-of-view, is that they want him to go away. Why? Because M$ got caught dropping the baby (or ball if you will).
I can see both sides to this - just. Once M$ releases details as to why he broke their agreement, then this will all disappear. This smacks of a few things, one of them being about Linux and (alleged) patent-breaking.
Even if M$ "patch the bug", he might be able to claim other damages because of this course of action. Possibly being anti-competitive or something. (Having said that, I'm not legal eagle).
One of two things will occur: 1) The matter will disappear as M$ have "educated" him on the breach; 2) M$ will "nuke and pave" the guy (or at least try to).
Re: Re: Trying to understand....
I'm not usually one to jump to m$'s defense, but:
"If it is illegal to do so, then don't expose the API"
Firstly, the API ISN'T exposed, he uses a hack to get to it.
Secondly, just because you can do something it doesn't mean that you are allowed to. I could drive the wrong way down a one way street, does that mean that because I can do I should, I mean, if it's illegal to do so then they should make it so I can't right?
There is only so much you can do to prevent people from doing something they shouldn't, and when people ignore it and do it anyway it's time to call in the lawyers.
I may be cynical but I can't help but think that this guy is using this situation as a heap of publicity to sell more copies of his program.
Another way of looking at this
Here's a slightly less technical way of looking at the issue:
Microsoft essentially have 2 editions of a program. The first edition speaks English (User Interface) to the user, but in behind can speak French (COM) to other components.
The second edition also speaks English and French, but can also speak Russian (VSIP - Visual Studio Integration Programme).
Microsoft intends that your components speak Russian in order to extend Visual Studio. Their VSIP license agreement also states that you can only try to speak Russian to the second edition of the software. Attempting to speak Russian to the first edition is not allowed (even if it does speak the language).
Rather than try and speak Russian, Jamie has been using French. He has asked Visual Studio if it talks a certain dialect (COM interface), and it has said "oui". So he uses that dialect to talk to Visual Studio in order to do what he needs.
The main problem from Microsoft's point of view is that they didn't intend for anyone to use that dialect of French in order to talk to Visual Studio. They only expected Russian to be used. However, there's nothing that explicitly states this. Microsoft even has public notes on the French dialect.
Therefore, Jamie thinks he's in the right because Microsoft have not said that speaking French is forbidden. Microsoft sees it the other way. And the way things are going, it looks like the decision is going to come from a judge or jury.
Who pays for a mistake?
The single biggest issue that I have here is that this is a EULA. This is a document crafted by Microsoft saying 'these are the terms you must agree to to use this". It's not like a standard contractual agreement that is negotiated or reflects an actual agreement.
MS is dictating terms, and while there isn't anything wrong with this, there is a major issue when they screw up. A good Lawyer, and MS can certainly afford them should have asked the question, "What are you trying to do, and what is important to you?" and write these in as material clauses. Given the EULA nature, this makes the EULA MS's wishlist of terms.
Given the clause given that Mr Cansdale violated is (imo) a fairly broad catch-all line. This means that either MS did not view the limitation of extensibility as material, and the developer/MS management blogging is trying to make it material retroactively, or the lawyers and management did not agree on what was important, or the lawyers made a critical mistake.
No matter how you slice it, I don't see the mistake necessarily apparent at Mr. Cansdale's end. I see the issue as MS's mistake, but Mr. Cansdale will likely be the one to pay for it.
A better approach I think MS should have done is work with him to only allow freebies for the Express version. Mr. Cansdale's pay version would only work on Pay versions of VS. This makes TestDriven an upgrade reason for VS Express which is the *entire* idea of the pared down version of the software. Everyone wins without the PR nastiness and chilling on the Dev Community.
If this guy is writing something that is functionally or cost competitive with what Microsoft puts out then Microsoft should improve their products. If he has simply lifted the product to imitate what the full version does then I think Microsoft may have a point. If it is such a big deal I suspect Microsoft has the resources to either buy the bloke out or employ him. It has to be cheaper than lawyers!?
trying to understand the issue
This line of comments is thankfully much more rational than many others, but there are two misconceptions which should be corrected.
1. Jamie Cansdale software which runs with Express IS FREE and always has been.
2. He did not "hack".
I think the language analogy (Another way of looking at this) is very close.
Here is another way of looking at it. If someone breaks into ( i.e. = hacks) into your house and steals something, that is clearly illegal. But, if he sees you have left your key in the door, goes in and leaves a bunch of flowers on your table is that also illegal? The householder might feel uncomfortable or violated but what harm was done? Yes, you could argue it was an intrusion but one that could and should have been avoided.
I don't normally jump to MS defence, but in the license it does state (section 9, first point):
"[You may not] work around any technical limitations in this software".
I'm no solicitor, but wouldn't a hiding an API so that it isn't exposed would constitute a technical limitation, and therefore a hack to expose this API would be a work around? Therefore breaking the license?
Of courese, if the API is already exposed, this becomes a whole different kettle of fish...
Microsoft didn't cripple it
>MicroSoft gave away a free, crippled version of their software. If >you want the extra features, like extensions, buy the full version.
They didn't cripple it very well then, Microsoft published APIs for Visual Studio that allow for extensions. These extensions work in the Express edition as it has API.
Microsoft should have deactivated this API or popped up a warning message.
I think his actions are against the ethos of the product
I'm going to side with Microsoft here. They released the product for *FREE*. Yes, it's a hook to upgrade to the pro versions of the product. Yes, perhaps Microsoft should have utterly crippled the product so extensions were impossible, but there is the risk here of looking a gift horse in the mouth.
If it was a small company who didn't properly restrict their free product and someone hacked it to produce the full features, there'd be a direct effect on their bottom line; because it's Microsoft everyone thinks it's ok.
The side effect of all this legal wrangling does no-one any good; it'll lead to less free software, more restrictive legal terms and probably a service pack that disables even more functionality. There is a guy selling an expensive addon to a free package - which in reality is not really a huge advantage, as you might as well buy the pro version if going down that route.
Just take it out of Express, end of story
The bluster coming from MS is clumsy, made more so by the events that preceded it, so it makes the company look stupid. However, it makes Mr Cansdale look silly when it transpires that his tool depends on a hack to extend the capabilities of a free version of the software and that this is the point that he's digging his heels in for.
I'm not the first person to say this, but maybe he could rewrite the tool for Eclipse and advise people who use the free Visual Studio Express to use that instead, then Microsoft will be mollified, if not happy, and Express users will have a better, non-crippled IDE.
He is going to get cheesed...
I think he is gonna loose this. Having read all of the documents he has published it strikes me that Microsoft have gone out of their way to be reasonable.
I began to loose sympathy with him when I saw exactly what it was he is doing but completely lost it when I saw the email where he offers to withdraw the Express version in return for the MVP! Oh, and the bit where he actually removed the features for express, but left in a registry key to enable them again, not very bright.
P.S. Cheesed - Like getting creamed but takes longer - Terry Pratchet - Discworld
Something odd here with peoples views
I have read a few comments here which appear to take the view that Microsoft are in some way liable because they hadn't disabled the API in the express edition.
Hmmm, I wonder if I can translate that into general terms.
If you allow your colleague to use your mobile to call their home, and they go and dial a premium rate number, then it's your fault because you should have activated (a probably paid for) premium rate barring ?
Or have I misconstrued peoples opinions ?
RE: Re: Re: Trying to understand....
I just noticed that it was mentionned that the guy used a hack to activate the control on the express editions ergo, a major no-no.
If that is true, then MS is in it's rights, and could even make a case via DMCA for illegal reverse engineering... (others have done so for far lesser evils).
As for driving the wrong way down a street, you may notice a big red sign with a white bar. This means "Do not do this". Ignore it at your peril, but if it is not there, you are allowed to do so, and you have a highway code to tell you how to drive (or not) down that road. Rules, regs and information.
Applying this to the current case, if there was no red sign and no warning in the highway code (eg no protection in the target app exposed functions, and no notes in the licence agreement against it) then you can do it, but if the licence clearly states "No plugins that exploit specifically restricted functions" *AND* there are locks and blocks in the target app's own functions to make sure of it - and that the plugin needs to use hacks to get around all this, then the app and the developer is clearly in breach.
There is only one issue here.
Did he, or did he not, violate the Express EULA?
If not, then MS should shut up and hope it gets forgotten about.
If he did, then MS are well within their rights to take legal action, and will probably win.
MS have shot themselves in the foot here by the simple mistake of not telling Jamie which clause(s) they believe he violated.
If they had done so, he could have looked at them, asked his lawyer, and come up with an instant Yes/No result.
The discussion from that point on would have either been "How can we best un-break the clause" or "Why do you see a problem here, my lawyer and I don't but we're happy to talk about it"
Because they didn't, they've opened this huge can of worms and spread even more resentment against their company and brands.
In legal terms, there's no such thing as the "concept" of a legal document - only the actual words.
Honestly you guys
I can't beleive some of the pro-M$ comments on here. M$ could shoot your own mother and you would justify it somehow.
Jamie has done nothing wrong. He has used the M$ published APIs to add functionality to some M$ software. No hacks, no work-arounds, just legal use of published APIs. This is not circumventing a technical limitation - its using published APIs to add functionality. He is actually using the documented technical capability - not circumventing anything. Nothing in the relevant EULAs prevents this.
I for one hope that Jamie has the desire and capability to stand up to M$ - I would love to see the M$ EULA tested in a UK court. I strongly suspect M$ might not like the outcome.
"Oh, and the bit where he actually removed the features for express, but left in a registry key to enable them again, not very bright."
He didn't publish that information, Microsoft reverse engineered/hacked his product to find that out.
M$ seem to have screwed themselves!
From the FAQ
4. Can I use Express Editions for commercial use?
Yes, there are no licensing restrictions for applications built using the Express Editions.
From the EULA
"[You may not] work around any technical limitations in this software".
Personally, I doubt that it is possible to use any piece of software without working around its technical limitations - jeez, isn't that what VBA (or WinBatch or AutoIt) is for ;-) Heck, I even edit the registry to get around technical limitations of software. What? You have to install it as it comes out of the box - no configuration AT ALL - I doubt M$ could make this stand up in court, they would be ridiculed.
I agree with Johnathon Walls but probably not how he would like it
"A world where the responsibility is on M$ to force their coders to spend time destroying their own code, and to spend even more money on lawyers to construct the perfect airtight license, sounds like a hostile environment for technologists. "
Is this not a basic principle for developing systems and for the law - I am sure insurance companies for example have airtight terms when giving cover and if it is not airtight they PAY THE PRICE. And having code level security controls in place to limit access to sensitive processes or data is a standard? Why should MS not have to follow these processes.
To me it is solely MS responisbilty to remove or secure access to their code in any system they create if they dont want it used, and ensure they have correct licenses in place to ensure terms are not breached by misuse. The simplest solution is to go to a judge and ask for a review of the license agreement. A second solution is to update the license and simply states add-ons are not allowed on their free products - if this is legal to do. This will close once and for all the debate... but it appears to me that MS are unwilling to do this because they know they will lose.
MS in the right for once
After the initial knee-jerk 'f*ck Microsoft' reaction I actually read all the correspondence and a few blogs and MS definitely seem to be in the right here...
'You may not work around any technical limitations'
Thats it right there, just because it's easy to work around (although arguably not so easy for the target audience of the Express products without 3rd party help/code) it is still a technical limitation and further it appears to be a code injection attack in modules that MS have left in so they didn't have to cripple the Express software any more than necessary.
If MS let TestDriven get away with this then they would be setting a precedent for all the other add-in creators to do the same thing and before you know it noone will need to buy a full version of Visual Studio. MS have never claimed Express was anything other than a hobbyist/learning/gateway version of the Visual Studio software.
In my view MS have been pretty generous, basics-wise VS Express is pretty fully featured and the fact that its been left so similar to the pro versions is in my view a good thing. Not to mention they even allow you to use it for commercial purposes.
Suck it up and if you need add-in support buy Visual Studio Pro or use a free alternative.
Making money out of effort
My sympathy is for Jamie.
He has worked hard at something he wanted to do, got accredited and reading between the lines was more than happy to remove express to recover his MVP status. That should have been the end of the story.
Its a fair request, he has added a function that M$ would have loved to have added to their own software and reading between the lines they want it but don't want to pay.
Releasing the source code is not an option in my opinion as this will not get the financial reward he deserves and also will give M$ the ability to rip him off by taking the software, adapting it so it works with only the versions they want, and then disabling his version (copyright infringement I hear you yell...good luck taking them to court to prove theft has occured).
At the end of the day, he is in business, I don't think there are many people with his capabilities who would put in many hours of work into something and not expect a payout, Microsoft certainly would not expect to plough in hugh amounts of capital without getting something out.
This is the kind of story that makes me glad to be one of the linux lovers out there, the thought of being held to ransom by the legal representation of Microsoft for something I had or had not done reaffirms the decision to stick two fingers up and move on. Will be following this story with interest.
What did he do wrong?
There are a lot of people here telling us which EULA rule he broke but they are only guessing because microsoft aren't saying. By not being specific they are showing that they know 'legally' they don't have a case (I know they will win anyway, That's what being the worlds richest company is all about).
Obviously they intended express to be a 'taster version' and that it shouldn't be extended. They could have said this in the EULA but they didn't. Why? because they didn't think it could be done. They were wrong, they made a mistake and as everybody who does business with microsoft has found out: make a mistake and it will be exploited. Look what happened to everyone from Ed Roberts onwards.
End User License Agreement
Firstly I will say this... I havent seen exactly what he does to hook into express. I don't use MS developement products, so I won't comment on the technical aspects. But...
It is an END USER license agreement. The END USER must abide by it. Can MS prove that he installed the plugin on Express on his machine? Because thats what they'd have to do in court. He may have found the loopholes, produced an installer, then sent it out to some people using express. Then THEY'd be in violation, but he wouldn't.
I find it hard to beleive that MS could win this case.
Oh and one final thing... To violate an ethos, MS would have to have Ethics. Hmm... Interesting...
Something Odd with people's views.
Sure, I would be pretty disgruntled if my colleague ran up premium number bills on my mobile, but if he dialled an 0800 number I wouldn't call out the lawyers.
No analogy is perfect, but in any walk of life there are ways of going about things which achieve results and others which only serve to antagonise.
Microsoft told Cansdale that he was in breach of the licence agreements and what he was doing was illegal but every time he asked MS for clarification they refused.
My reading of it is that Jamie would probably have disabled his free version of TestDriven for Express VS had Microsoft given him a good, valid and rational reason doing so instead of demanding that he did it with threats of legal action and then telling him to mislead his users with a lie.
Microsoft are on record at saying the users of VS Express don' t want unit testing. If that is really the case what is their problem?
Who hasn't circumvented "a technical limitation" in Microsoft Software?
As an experienced Windows programmer, it seems that many of my days have been spent circumventing limitations in Microsoft software. I am continuously annoyed with the misleading documentation from Microsoft. Many regular user's have their annoyances to.
Who hasn't developed a piece of code to work around the "technical limitations" of Microsoft Software? If circumventing a technical limitation is the new standard, then many programmers are breaking the law in a big way. Windows has so many wonderfully obscure bugs that all require work-arounds ...
Maybe all of us Windows programmers need to become Linux programmers so we can develop software legally.
Violated the "ethos" but not the letter of the contract...
I find the use of the word "ethos" rather interesting-- it would appear to be an admission that there was a violation of the "spirit" not the "letter" of the contract. However, I would think the legal case is therefore quite debatable, as is seen here in the various comments to the article. Microsoft's attitude however, is to treat the MVP as if he was just another Microsoft employee that they can browbeat into submission. Perhaps he should agree to remove the offending program on the condition that Ballmer throw a chair or two at Dan Fernandez...
There seems to be an issue with the general reading comprehension of many of the commenters here.
1. The first misunderstanding seems to emanate from the free/open source nature of TestDriven.NET. If one reads the full time-line and maybe even talks to the users of the add-in, one can clearly see that the product started out as free-as-in-beer but not free-as-in-speech. The developer has since decided to try and leverage the value in the open market by selling newer versions of the add-in.
2. The developer may or may not have broken the EULA on HIS version of VS Express. If he did indeed break the EULA it means that he may no longer use that particular licensed piece of software. The license does not and cannot restrict what he can do with what's on the rest of his computer ie a seperate add-in.
3. Somehow the development was a hack. Nobody is describing why this is or what exactly is the "hack."
Tell us what he's violated!
Come on Bill.
Just tell him where he's violated the EULA and we'll all back you.
As for working around MS technical limitations, anybody who's ever built a website that's required to be W3C compliant yet work in IE has probably done that...
What he did wrong...
As I understand it, and I am not a lawyer, but I read lots of contracts like this all the time, is violate the EULA for VS Express by providing specific extensions to the product that give it additional functionality that are supposed to be available only in a fee based product.
The API is exposed (even if only partially) to allow other access such that the product isn't totally crippled. To compensate for this, the EULA expressly forbids anyone to provide the additional functionality that Mr Cansdale provides, for free or otherwise. Leaving the api open(ish) is not an invitation to do anything that you like. Especially when the EULA expressly forbids it.
Microsoft actually wants him to provide for free and/or for a fee his product, but not for the VS Express version. This is all pretty clear and they are not hiding that fact. Mr Cansdale is wrong and he should just disable his product for use on VS Express and get on with his "hobby". Even though the MS dude that was originally dealing with the issue came across as the south end of a north bound equine, MS in general have been very lenient, IMO.
BTW: I do not work for MS nor am I an MS fanboy.
Microsoft will likely win this one...
It doesn't really matter who's right.
Not a lawyer, I could only see two parts of the EULA that might apply, reverse engineering and the limitations clause. In theory, both are likely to be difficult to prove from the descriptions I've seen of how the software came to be.
After reading the stories on Julie Amero, I find it even more difficult to believe that the courts are capable of handling the technical points, let alone making a just decision.
Besides, even if MS is wrong they can tie it up in courts until his money runs out.
What is it with the M$ stuff?
Anyone who uses M$ is clearly an idiot with a biased agenda against Microsoft. If you want to be taken seriously, drop the M$ rubbish. You're not in kindergarten now.
Visual Studio Express isn't a 'tool for hobbyists'
It's a tool for 16 year olds who like to play programmer because they can write rudimentary VB apps. They don't need this sort of extension anyway.
Most hobbyists went to a university and picked up a full, legitimate copy of Visual Studio for a price somewhere between "free" and "not much". Others appropriated it themselves, whether legitimately or not. After all, the limitations in Express are such that you can write and debug code all you want, but when it comes to packaging for release and having a clean product, your options are pretty well limited. Nevermind the fact that all the "handy" tools which facilitate doing most useful things are totally missing.
"He didn't publish that information, Microsoft reverse engineered/hacked his product to find that out."
Which incidentally is an express *criminal* violation of the Digital Millenium Copyright Act.
Ah, well. It's a mutli-billion-dollar company doing it, so I guess it's OK. Not like a kid in his home making his Linux PC play DVDs, no; *that's* a heinous crime, obviously.
RE: Microsoft didn't cripple it
"They didn't cripple it very well then, Microsoft published APIs for Visual Studio that allow for extensions. These extensions work in the Express edition as it has API.
Microsoft should have deactivated this API or popped up a warning message."
I think you'll find that they can't really remove the API that Jamie is using in his product. In all likelihood, it's used internally by a number of the standard components of VS Express in order to do their thing. Microsoft will also be using this API so that they can share more code between the Express and full versions of the software.
Microsoft will have a hard time proving the reverse engineering or disassembly angles. They published documentation on the APIs that Jamie is using. All Jamie did was to use the standard COM method to see if Visual Studio used the interface he was interested in (QueryInterface).
Also, as other have pointed out, Jamie is not violating any EULAs by *providing* his software. He may have violated the Express EULA while testing if his software works with the Express products, but that's about it. If others install the product on Express versions of VS, they're violating the EULA, not Jamie.
Sorry Jamie, you are not exactly correct on your last point. The EULA states that you can not enable others to extend the functionality as Mr Cansdale does by distributing his code.
I'm not disputing that the Express EULA says that you cannot extend the functionality. Although I have been unable to find a copy of this EULA on the web, I have seen excerpts that mention that clause.
However, that is in the end-user license agreement for the Express products. That license applies to the person(s) installing and using the Express products, i.e. the end-user.
Jamie Cansdale it not installing the product on end-user machines - end-users are. Therefore, it's the end-users who are violating their own EULAs, not Jamie.
I have yet to see any real evidence that mentions which EULAs Jamie has violated. As far as I can tell:
* He has not violated the VSIP EULA, as he's not using the VSIP interfaces to extend the product.
* He hasn't reverse-engineered or disassembled any software - he has only used publically-documented methods and interfaces.
* He is not responsible for violating an Express EULA if someone uses his software with an Express product.
We can infer that Jamie has violated the Express EULAs on his own systems when testing his software. Microsoft can claim any remedies for this that are in the EULA, such as revoking the license. (Note: AFAIK, EULAs are untested in law.) But I can't see how they can stop him from making his software compatible with Express products.