Introduction to the Visual Studio Development Environment SDK

Visual Studio Integration lets you run an application as an extension of the Visual Studio integrated development environment (IDE). You can create new menu commands, tool windows, editors, projects, and languages that are fully integrated into Visual Studio.

Key Concepts

Here are some key concepts to help you understand how to extend Visual Studio.

  • A VSPackage is a software package that runs as a part of Visual Studio. Your application must be written as one or more VSPackages. A VSPackage is the unit of implementation, security, and deployment for Visual Studio, much as an assembly is the unit of implementation, security, and deployment for managed code. Visual Studio itself is written as a collection of VSPackages.

  • A service provides a specific set of interfaces on demand. VSPackages communicate with each other by providing and consuming services. Visual Studio is itself a collection of VSPackages that provide and consume services.

  • The shell is a set of common services, in particular, SVsShell, SVsUIShell, and SVsSolution, that Visual Studio provides to VSPackages. You use these services to connect with Visual Studio, to manipulate the user interface (UI), and to interact with the current solution.

  • The experimental build is an instance of Visual Studio running from a copy of your existing Visual Studio settings, both in the registry and stored on disk. Such a copy is called the experimental hive and is used to separate the environment for developing VSPackages from the environment for testing VSPackages. Separate hives prevent programming errors in the experimental hive from affecting the instance of Visual Studio you use to develop and fix your VSPackages.

  • The Managed Package Framework (MPF) is a class library that simplifies development of VSPackages in managed code, such as Visual C#. For more information, see Managed Package Framework Classes.

  • The Visual Studio Library is a C++ template class library that provides implementations for interfaces that are frequently used. For more information, see Using the Visual Studio Library C++ Template Classes.

See Also

Concepts

Getting Started with the Visual Studio Development Environment SDK

Introduction to the Visual Studio Development Environment SDK