As is my wont, I was musing to myself this morning about what seemed to be an impossible feature and how great it would be to have.
It all came of a comment made to me at TechEd last week.
Oh, yes, that reminds me: TechEd was last week and we were there. What with one thing and another I forgot to make the announcement here on this blog. Sheesh, what is the world coming to? This particular TechEd was an interesting one: we had a one-off t-shirt printed and gave them all away (so, sorry, but you can't have one, but the crowds we had at the booth all got one), we moved our booth to a more favorable place (so if you tried to find us on the map we weren't there, but you'd have found us eventually due to the huge crowd getting a t-shirt), we were showing off the new C# 3.0 refactorings and getting daily builds so if you came back the next day you'd have probably seen something new (cue more crowds and a morning of Orcas crashing during demos), and I did a presentation at a talk for the first time in a while (with no crowds at all).
Where was I? Oh, yes, impossible things. Someone asked me for this at TechEd.
Imagine this: you work in a team, maybe a large team. For whatever reason not everyone in the team uses the same plug-ins. Sure they all have Visual Studio 2005 installed, but some people use no extra plug-ins, some use CodeRush and Refactor! Pro, some Resharper, some something else entirely. You, you're the guru mentor for the team and often help developers out while at their machine. Of course, the most intractable problems occur with those people who don't have your favored environment of CodeRush. You're suddenly reduced to typing it all out longhand. You are no longer programming at the speed of thought (say, that's a good slogan).
Don't you just wish for CodeRush on a Stick? A full install of CodeRush and Refactor! Pro on a USB memory stick that you can plug into a USB port and say the magic incantation and, hey presto, it's there in the other developer's Visual Studio IDE.
Done? Unplug the stick and walk away and CodeRush is no longer available in that install of Visual Studio.
Possible or not?
First off, you might say it's all files and registry entries. Just have a super-light "install" program that sets up all the right registry keys that point to the files on the USB drive. Then start Visual Studio and program away with the full support of CodeRush and Refactor! Pro. Unfortunately, when you want to unplug, you've got to remove all those registry keys otherwise things will get really dicey, And that would probably require Visual Studio to be shut down at the minimum and the use of some super-light uninstall program.
Second issue is that DXCore, the part of CodeRush that talks to Visual Studio, uses COM. It has to: the VSIP interfaces it wraps are all COM interfaces. Even after all these years, I think this is the big problem: you can't install COM stuff on-the-fly and just have it work.If COM weren't in the picture we might be able to swing it.
Third issue is the GAC. We install our CodeRush assemblies in the GAC. Big problem if we don't want to copy files all over the place when we insert the USB stick. Now I may be wrong here, but I think we could get away from having to do this; I haven't had a chance to talk to Mark or Dustin about it.
So, all in all, I think it's impossible, unless the plug-in architecture for Visual Studio was drastically changed.
But how about this? Visual Studio on a stick? You install VS and all your preferred plug-ins on a USB drive and carry that around with you. Again, impossible at the moment, but I think it could be oh so tantalizingly close...