WHAT'S IN THIS CHAPTER?
Understanding the Visual Studio extensibility options
Working with the Visual Studio automation model
Often you will find yourself performing repetitive tasks when working in Visual Studio, and wish you could bundle all those tasks into a single automated task, streamlining your workflow, decreasing your frustration at doing the same thing repeatedly, and consequently increasing your productivity. Alternatively, perhaps you want to add functionality to Visual Studio to share with other developers in your company (or even around the world). Fortunately, Visual Studio has been designed to be very extensible — in fact, many features that you may have thought were built into Visual Studio are actually extensions themselves! This extensibility is exposed to make it very easy to add the functionality to Visual Studio that suits your requirements. Extensibility points include automating tasks, adding new tool windows, adding features to the code editor, adding your own menu items (including items to the code editor's context menu), creating debug visualizers, creating your own wizards, extending existing dialogs, and even adding your own editors/designers and programming languages! This chapter looks at the options available for extending Visual Studio, and takes a look at the automation model used by both macros and add-ins.
Unfortunately, the extensibility story in Visual Studio is a bit murky, because ...