Automation model overview
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
The automation model consists of a set of objects against which you can write a Visual Studio add-in or extension. An add-in is an application that can manipulate the Visual Studio environment and automate common tasks. A Visual Studio extension can create custom Visual Studio components or add to the functionality of standard components such as the text editor.
Objects in the automation model
The automation model consists of related groups of objects that control major facets of the common environment. The following diagram shows the extensive set of Visual Studio objects that compose the automation model.
For more information, see Extend the Visual Studio environment.
The environment provides a model for different functional areas. For instance, there is a code model for various elements that you might find in code. There is a document model for various document elements. One area, the project area, is of particular interest to VSPackage providers. You will likely want your new project types to contribute to the automation model in much the same way as Visual C++ and Visual Basic contribute to the automation model. That process is outlined in Provide automation for VSPackages.
Places where you can consider extending the automation model of the environment:
Project
Document
Code
Build
For more information on automation, see Automation and extensibility for Visual Studio. This document and the documents it provides links to, help you make decisions regarding how you should provide automation for your VSPackage.