Anyone that has worked in any Visual Studio integrated development environment (IDE) has at, one point in time, worked with an extension. Extensions are add-ons to Visual Studio that allow developers to customize and enhance their experience in Visual Studio by adding new features and integrating existing tools. An extension’s main purpose is to increase productivity and cater to developers’ workflow.
Improvements to Visual Studio 2022 Extensions
Some improvements of Extensions in Visual Studio include the following:
- VSExtensibility repository on GitHub
- Language Server Protocol (LSP)
- Visual Studio Community Toolkit
- Out-of-Proc Extensibility Model
Let’s have a closer look at each.
VSExtensibility repository on GitHub
Microsoft created a public GitHub repository, to host all the new Extensibility developments. This repo also serves as a destination for any extension-related code samples, announcements, documentation, and preview features.
The public GitHub repository can be found here.
Language Server Protocol (LSP)
The Language Server Protocol defines a set of JSON-RPC (Remote Procedure Call Protocol encoded in JSON) request, response, and notification messages. These functionalities let developers leverage capabilities specific to Visual Studio and servers.
The NuGet package can be downloaded here.
Some more documentation on the Language Server Protocol can be found here.
Visual Studio Community Toolkit
Writing a Visual Studio extension has always been tough because of numerous such as hard-to-discover, dated APIs, inconsistent, inaccurate documentation, and lack of best extensibility practices. Because of this, Microsoft created the Visual Studio Community Toolkit.
The Visual Studio Community Toolkit is a set of project templates, API wrappers, as well as productivity tools driven by the community.
To get started have a look at the VSIX Cookbook. Here you can pick your starting point (based on your experience level).
To install the extensibility workload, have a look here.
Out-of-Proc Extensibility Model
With the new Out-of-Proc Extensibility Model you can write securer and more reliable extensions. With the older Extension model, extensions crashing Visual Studio, security, incomplete and inconsistent documentation, restarting Visual Studio were common problems.
The new extensibility model loads extensions out-of-process which allows for more reliability when it comes to Visual Studio crashing or hanging. It makes extensions easier to write with more cohesive APIs and documentation.
Another benefit is that the installation of out-of-proc extensions does not need a restart of Visual Studio.
This new Out-of-Proc extensibility model is, according to Microsoft, a long, ongoing project. This means that it won’t be available at full feature parity and general consumption by the end of VS 2022’s release cycle.
To get started with Out-of-Proc Visual Studio Extensions, have a look here.