Back in the olden days (say, three years ago) the Visual Studio SDK was a fearsome beast. For starters, you could only get it by signing a license agreement with Microsoft so that you could get into the Visual Studio Industry Partners program. Once you got there, you found a messy batch of C++ COM samples and some sketchy documentation that, if you were persistent enough, would let you integrate your own product into the Visual Studio shell. Only the bravest and most persistent of partners managed to finish this process with anything resembling elegance.
But times have changed, and in this case, they've changed for the better. Along with much of the rest of Microsoft's Developer Division, the folks responsible for the VS SDK have taken to heart the virtues of openness and extensibility. These days, you don't have to sign a license agreement of any sort to get the SDK (not even a click-through one on the Web); you can just go out and download a copy of the recently-released Visual Studio 2005 SDK version 3.0.
When you do, you'll find much, much more than the old cryptic code for COM hackers. The fun starts with fully-developed C# code samples that demonstrate how to integrate IronPython as a first-class Visual Studio citizen. But it doesn't end there; even if you have no ambition to directly extend the Visual Studio environment (with editors, tool windows, document windows, menus, toolbars, language services, or any of the other points where you can hook your own code in), you may still find something useful in this collection of tools and documentation.
Perhaps the most significant news in this version of the SDK is the release of version 1.0 of the Domain-Specific Language Tools. Armed with these tools and a suitable version of Visual Studio (Professional or above), you can build your own customized modeling language complete with a custom visual designer. These tools and languages can later be used to encapsulate and validate design decisions within their particular domains.
For an example of a DSL in practice, you need look no further than configuration modeling tools in Visual Studio Team Edition for Software Architects, which can alert developers to configuration issues as they implement a planned architecture. First announced well over a year ago, the DSL tools may have slipped off many developers' radar by now, but with a full release out and freely available it's probably time to take another look. You can learn more over at the DSL Tools Developer Center on MSDN.
Also of interest in the SDK is HelpStudio Lite, a somewhat stripped-down version of Innovasys HelpStudio. While HelpStudio has its quirks, for writing help files it's head and shoulders above anything Microsoft ever shipped on its own for that purpose. It's definitely worth a look if you're trying to add help with the Visual Studio look and feel to your own products.
The SDK also contains a set of "Power Toys" for Visual Studio. These are mainly demonstrations of what you can build using the techniques explained in the SDK, but they can be useful in their own right:
- Indexed Find uses your computer's Indexing Service to speed up Visual Studio's "Find in Files" function.
- Event Toaster sends visual notifications ("toast") for events such as build and debug events from Visual Studio itself.
- VC++ Code Snippets adds code snippet functionality to both managed and unmanaged VC++ code.
- Extensibility Explorer lets you browse through all the packages that are already installed to extend your Visual Studio installation.
- SuperDiff implements the windiff engine in a two-pane toolwindow directly inside of Visual Studio.
- Source Outliner simplifies browsing large files by giving you a filterable outline of the classes, functions, and methods in the file.
Beyond those highlights, you'll also find other goodies here if you are deep into the guts of Visual Studio: things like new white papers and documentation on extending Visual Studio Team System.
Perhaps the most encouraging thing of all, though, is that V3 of the SDK follows on V2 by a scant five months, and the team shows no sign of slowing down. That means we can all expect a continuing cornucopia of new code and tools here, enabling us to make more and better use of this most critical of .NET programming tools in the months and years to come.
Mike Gunderloy is the Senior Technology Partner for Adaptive Strategy, a Washington State consulting firm. You can read more of Mike's work at his Larkware Web site, or contact him at MikeG1@larkfarm.com.