Visual Studio Extensibility
Introduction
Welcome to the Visual Studio Extensibility Guided Tour. The purpose of this tour is to provide an overview of extensibility benefits, concepts, and strategies. In addition to providing background information, this tour will make extensive use of hands-on exercises to help get you more quickly up to speed on some of the core tasks involved in extending Visual Studio. While this tour is not intended to be comprehensive or exhaustive, it is intended to provide you with a sufficient understanding of the Visual Studio extensibility story to allow you to comfortably begin pursuing your own extensibility needs.
Visual Studio 2005 – Making developers more productive
The key goal of Visual Studio 2005 was to improve developer productivity and increase the rate of developer success. While development seems to be constantly in flux as new technologies, architectures, and methodologies vie for developer attention one thing remains constant: developers are more productive when they have tools that meet their needs, and allow them to be flexible enough to meet their current needs and challenges. Extensibility was therefore a core focus of Visual Studio 2005 – which was created as powerful framework for development related tasks rather than as a single, monolithic, application that was rigid, inflexible, and incapable of meeting developer needs. The focus on flexibility, and in creating a framework, resulted in a powerful Integrated Development Environment (IDE) that increased developer productivity out of the box, but also provides a rich framework for organizations to extend Visual Studio to meet their own unique needs. The focus on building a flexible framework also resulted in a vibrant ecosystem for Independent Software Vendors (ISV's) and Systems Integrators (SI's) in which they can target customers' needs and engage a rich and wide market.
Extensibility for customers
Visual Studio 2005 was designed from the ground up to provide a number of easy ways for customers to extend their interaction with the IDE and thereby help themselves become even more productive. Macros provide an easy way for individuals to automate difficult, tedious, and other demanding tasks within the IDE. Macros can also easily be shared by entire teams so that tricks and shortcuts can be more easily shared among developers sharing a common goal or specialized task. Macros are always executed when the user requests the IDE to do so. Visual Studio also provides Add-ins which allow organizations to build in their own extensibility by interacting with the Visual Studio Automation Model – providing customized access to most of the tools and features of Visual Studio. Add-ins can be auto-loaded based on configuration of the Add-in.
Extensibility for partners
One of the key benefits afforded to partners, above and beyond the ability to create Macros and Add-ins, is the ability to create even more powerful extensions to Visual Studio called VsPackages. VsPackages provide deep integration options, and enable partners access to the same tools and components used by Microsoft to create Visual Studio 2005 (The C# and VB.NET language components of Visual Studio 2005 were implemented as VsPackages for example – though VsPackages don't necessarily need to be as complex as entire language packages). Providing partners with access to the underlying Visual Studio APIs allows Microsoft to satisfy one of their key goals in the creation of Visual Studio 2005; by integrating 3rd party products directly in the Visual Studio IDE so that customers won’t have to choose between a great partner tool and an integrated tool – now they can have both.