Extensibility Overview

See Also

Extensibility is the capacity to extend, or stretch, the functionality of the Microsoft Visual Studio integrated development environment (IDE). The IDE provides you with a programming interface known as the Extensibility object model, a set of powerful, easy-to-understand interfaces for customizing the environment. It allows you to hook into the IDE to create extensions known as add-ins.

There are two types of extensibility: built-in and user-designed.

In addition to the object model provided by the Visual Studio IDE, each of the Visual Studio development languages provides additions to the Extensibility object model to support specific features of the environment. This means that you can write add-ins to automate the common IDE using the common environment's Extensibility object model and specific features in Microsoft Visual J++, or any of the other development languages using the object model provided for that language.

The Extensibility object model consists of four related groups of individual code objects that control major facets of the common IDE. Each functional group enables you to create tools to customize the development environment and help you accomplish your programming tasks more quickly and easily. These groups are:

Each group consists of one or more collections and objects that contribute to a particular purpose. For example, the primary function of the events object group is to provide access to events occurring in the development environment. One object in this group is the CommandBarEvents object, which allows you to trap events occurring on menus and toolbars. Another is the BuildEvents object, which exposes events occurring at the beginning and end of solution builds.

Extensibility Ideas

There are many ways you can use add-ins and wizards to enhance, extend, and automate the IDE:

These are just a few ideas. Add-ins give you the freedom to create custom programming solutions to save you time and help you become more productive. Just think of the possibilities!