Developing Visual Studio Extensions

You have many alternatives to choose from when you decide to write an extension to Visual Studio. At the most basic level, you can write a macro to automate repetitive tasks. You can also write a Visual Studio add-in or wizard to automate programming tasks or customize Visual Studio commands and properties.

If you want to integrate a large component into Visual Studio, for example, a new project system or a new programming language, you can create a Visual Studio package by using the Visual Studio SDK. If you want to create an application that is based on Visual Studio technology, you can create a Visual Studio isolated shell application. Both Visual Studio integrated extensions and Visual Studio isolated shell applications are based on VSPackages. For more information, see VSPackages.

Another extension mechanism, which is based on the Managed Extensibility Framework (MEF), lets you customize and extend the Visual Studio editor just by creating MEF component parts. You do not have to create and register a VSPackage to use these extensions. For more information, see Extending the Editor.

Visual Studio SDK Templates

When you install the Visual Studio SDK, a number of project templates are added to your Visual Studio installation.

Template

Location

Using the Template

VSIX Project template

Visual Basic and Visual C# Extensibility

Creating Extensions By Using the VSIX Project Template

Editor templates

Visual Basic and Visual C# Extensibility

Using Editor Templates to Create Extensions

Visual Studio Package

Visual Basic and Visual C#

Extensibility

- or -

Other Project Types Extensibility

Walkthrough: Creating a Menu Command By Using the Visual Studio Package Template

Visual Studio Shell Isolated

Other Project Types Extensibility

Walkthrough: Creating a Basic Isolated Shell Application

See Also

Concepts

Visual Studio Isolated Shell

Managed Extensibility Framework Overview

Spectrum of Visual Studio Automation

Other Resources

VSPackages

Extending the Editor