Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Visual Studio Extensibility SDK Preview 3: New Features for Building Productivity Extensions

Visual Studio Extensibility SDK Preview 3: New Features for Building Productivity Extensions

Microsoft has released the third public preview of their VisualStudio.Extensibility SDK, introducing new features that enhance the productivity, customization, and debugging capabilities for developers who are developing Visual Studio Extensions. VisualStudio.Extensibility is a new framework for developing Visual Studio extensions.

With Preview 3, developers can leverage the Debugger Visualizers to simplify the debugging experience, Custom Dialogs to create tailored user interfaces, Query the Project System to access and interact with the project system, Editor Margin Extensions to add custom components to the margin of the code editor, and Extension Configuration options to give users more control over their extensions. These new features provide developers with more efficient and intuitive ways to create powerful extensions for Visual Studio, improving the overall development experience and productivity. The official GitHub repository contains the sample for creating the custom dialogs.

Preview 3 of VisualStudio.Extensibility now offers the ability to create custom debugger visualizers using Remote UI features, which enhance the debugging experience by allowing developers to create custom views of complex data types. Furthermore, the Preview 3 release introduces more customizable and visually appealing dialog features, allowing developers to interact with users in a more engaging manner.

These features are implemented using VisualStudio.Extensibility SDK, and provide developers with greater flexibility in creating custom dialogs that reflect their brand and improve the user experience. The use of WPF enables the creation of interactive and visually-rich dialog visuals, while Remote UI features to ensure the reliability and performance of the dialogs.

In addition to the debugger visualizers and custom dialogs, VisualStudio.Extensibility Preview 3 also includes the ability to query the project system for projects and solutions. This new feature lets developers obtain information about projects and solutions that match specific conditions, providing users with relevant experiences to their current code. The sample for this feature is available on the official GitHub project repository.

To enhance the development experience even further, VisualStudio.Extensibility Preview 3 now offers editor margin extensions. This feature allows developers to create front-and-center experiences in the editor margin, leveraging Remote UI to boost productivity. With editor margin extensions, developers can offer simple features such as word count or document encoding, or create custom navigation bars and headers to improve workflow. By utilizing this feature, developers can increase the visibility of their work and offer greater functionality to users, improving the overall development experience.

Lastly, VisualStudio.Extensibility Preview 3 makes configuring your extensions easier than ever before! Many components defined in extensions require configuration to determine how or when they appear in the IDE. With this release, Microsoft has listened to community and user feedback and completely overhauled the extension configurations for better usability and discoverability. You can now configure your extension with strongly-typed classes and properties, and easily discover predefined options with the help of IntelliSense. Configuration properties allow developers to place their commands in newly created menus and toolbars they have full control over.

The original release blog post provided a lot of code samples and explanations for all the new features and implementations. One of those is the sample code for setting a keyboard shortcut for a command using simple sets of keys and modifiers:

public override CommandConfiguration CommandConfiguration => new("%MyCommand.DisplayName%")
    Shortcuts = new CommandShortcutConfiguration[]
        new(ModifierKey.ControlShift, Key.G),

In addition to an original release blog post, and as part of the development process, the development team calls on developers to test the new release and share feedback through the issue tracker. Users are also invited to sign up for future user studies to help shape the future of this software development kit, visit the official GitHub project repository, and learn more about this project.

About the Author

Rate this Article