title | description | date |
---|---|---|
Inside Visual Studio Extensibility SDK |
Description of components that make up the SDK. |
2021-08-16 |
The new Visual Studio Extensibility SDK is built on top of brokered services infrastructure that was introduced in Visual Studio 2019. It primarily involves of:
-
A
VisualStudioExtensibility
object that acts as the entry point for the extensibility API. This object will have extension methods on it such asViews()
orLanguages()
that exposes extensibility points of the IDE. -
Wrappers and extension methods around brokered services exposed by IServiceBroker infrastructure with the goal of making services easy to use. In some cases, extension methods will return the contract interface directly.
-
Base classes for extension parts, commands and the extension itself which are used to expose brokered services from extension to Visual Studio IDE. These services are the primary method that Visual Studio calls in to the extension.
-
A code generator framework to generate
.vsextension/extension.json
metadata file based on extension parts and its attributes. This file declares the services, extension parts and other services exposed by the extension.
The new extensibilty model for Visual Studio depends on a set of new nuget packages to provide APIs, build tooling, code generation and analyzers.
Link: Microsoft.VisualStudio.Extensibility.Sdk 17.xxxxx
This is the primary package that contains dependencies to all pre-requisite packages mentioned below. We strongly recommend extension developers to have a reference to this meta-package instead of individual references.
Link: Microsoft.VisualStudio.Extensibility.Build 17.xxxxx
This package contains the build tooling, project capabilities code generators that is necessary for extension to work with F5 debugging in Visual Studio IDE.
This package contains the SDK APIs and utility libraries to help develop extensions using the out-of-process extensibility model. Every extension should include a reference to this package as a starting point.
This package contains the code generators that is necessary for extension metadata to be generated during build. Without this package, a compiled extension may not work correctly as it will not contain the necessary metadata files.
This package contains the editor related SDK APIs and utilities and is included as a dependency from Microsoft.VisualStudio.Extensibility
.
In future previews, we may have nuget packages that are not included as a required dependency from Microsoft.VisualStudio.Extensibility.Sdk
package but can be added as needed to provide APIs for certain feature areas such as debugger, source control.