VS Addin---VS Automation Model

[Full article: http://msdn.microsoft.com/en-us/library/aa290342%28VS.71%29.aspx]

VS automation model gives us the chance to interact with VS IDE's everything including solution explorer, toolbar, document, etc. By developing a VSMaros or VS addin, we can automate some tasks in VS. Official words:

"The Visual Studio .NET IDE consists of several interrelated tool windows, such as the Toolbox and the Task List, and document windows such as Solution Explorer and the Code Editor. The Automation model in Visual Studio .NET contains the programmatic objects and interfaces in the IDE that allow you, as a developer, to programmatically control and automate these windows as well as other IDE functionality such as solution and project build configurations, code editing, and debugging. Using the Automation model, you can create VSMacros, add-ins, and wizards to automate tasks, manipulate aspects of the IDE, and respond to IDE events."

VS Addin---VS Automation Model 


Figure 1.

 

Model Name Description
Core environment model This comprises the majority of the Visual Studio .NET automation model. It includes objects to control IDE elements (that is, tool and document windows, commands, menus, and so forth), events, and IDE functionality.

Nearly all of the Visual Studio .NET Automation model is common across all Visual Studio .NET languages. Some additional objects are available for projects and for the Microsoft® Visual C++® .NET code model.

Project model Includes both common and language-specific objects for controlling solutions, projects, and project items. Common solution/project objects work with any Visual Studio .NET project, whereas language-specific project objects are designed to work only with a specific Visual Studio .NET language.

The project model is common across all Visual Studio .NET languages. Visual C++ .NET provides some additional extensions that are specific to that language.

Editor model Includes objects to manipulate the text in the Code Editor such as inserting and deleting code, formatting and moving code around, setting bookmarks, and so forth.

The editor model is common across all Visual Studio .NET languages.

Code model Includes objects to discover code and project items and manipulate code definitions. This model exposes the classes, interfaces, structs, and so forth, and members of those types.

The code model is common across all Visual Studio .NET languages. Visual C++ ® .NET provides some additional extensions specific to that language.

Forms model Includes objects to control Windows Forms and form properties, but not Web forms.

The forms model is common across all Visual Studio .NET languages.

Debugger model Includes objects to control the Visual Studio .NET debugger.

The debugger model is common across all Visual Studio .NET languages.

Build model Includes objects to control solution and project build operations and configurations. Allows you to programmatically set debug options and create automated or unattended builds.

The build model is common across all Visual Studio .NET languages.

Each of these sub-models contains objects that relate to a specific UI element or functionality of Visual Studio .NET. For example, the Core Environment model — which contains groups of related objects and collections common to all Visual Studio .NET programming languages — has objects that allow you to manipulate the Toolbox, the Task List, code displaying in the Code Editor, and so forth. The Debugger model contains groups of related objects that allow you to control aspects of debugging, such as breakpoints, processes, threads, stackframes, and so forth.

Although the Visual Studio .NET Automation model is composed of sub-models, the entire model itself is programmatically seamless and there are no boundaries between the various models, other than the fact that some models, such as the Forms model, are contained in separate type libraries or assemblies.

 

VS Addin Platform:  http://allure.codeplex.com/

Visual Studio Add-Ins Every Developer Should Download Now:http://msdn.microsoft.com/en-us/magazine/cc300778.aspx

 

你可能感兴趣的:(automation)