Visual Studio Extensibility Day 2019 was a hit
On Friday, May 10th we hosted both internal and external Visual Studio extension authors in the Workshop room in building 18 on the Microsoft Campus in Redmond. It was a full day event with keynotes and sessions for 60 attendees – half of which attended //build earlier that same week, and half who came just for the Extensibility Day.
They were a mix of old VSIP Partners, hobbyists, 1st-party MSFT teams and for-profit 3rd-party extenders. About half the attendees extended their stay for the //build conference to be able to attend the event. The rest came from all over the world and some flew to Redmond just to be able to attend Extensibility Day.
We’ve done similar events in the past exclusively for the VSIP Partners, but this was the first time we invited the larger extensibility community. For a lot of the attendees, this was their first time talking to- and socializing with other extension authors in person.
To kick off the event, Corporate Vice President John Montgomery, and Director of Program Management Amanda Silver each gave a keynote. After that, sessions about various extensibility topics filled the rest of the day, including:
- Building a Language Server Protocol (LSP) extensions by Daniel Griffen (docs, sample)
- How to build a Live Share extension by Jonathan Carter
- Extensibility Tips and Tricks by Mads Kristensen (Extensibility Essentials)
- Async and threading demystified by Andrew Arnott
- Guidelines for writing successful extensions by Mads Kristensen
All sessions were highly technical and with lots of demos.
Amanda giving her keynote about the future of Visual Studio (photo by @kosmosebi)
After the session ended, we went to the Microsoft Company Store and Visitor Center followed by drinks and dinner at the Boardwalk restaurant in the heart of the Microsoft campus. People stayed until they closed.
Addressing pain points
During the day, the attendees helped identify their main pain points and produced a prioritized list of documentation/samples for us to provide as well as organizing our backlog of features to implement. Then they voted on the priority of each item and these are the results:
Top 5 missing pieces of documentation (in prioritized order):
- How to run and write integration tests
- How to debug and profile performance and memory issues
- DTE or IVs* – which one to use, how and when?
- How to access telemetry data collected by VS about our extensions
- How to target multiple versions of VS
Top 5 missing features (in prioritized order):
- Added integration test tooling
- Develop extensions in .NET Core
- Define VSCT from code instead of XML
- Marketplace extensions should have a private preview feature
- Ability to revert extensions to earlier versions
Remote-powered developer tools
A few weeks ago, we announce plans to enable a remote-powered developer experience for Visual Studio. It was met with great interest by the attendees who had a lot of questions as to how it relates to extension development. It’s still early and there are a lot of unknowns for us still to investigate. We’ll make sure to keep everyone in the loop as we know more. Stay tuned on this blog for that information.
We sent out the invitation a bit late, so we were afraid that people wouldn’t be able to make it with such short notice. If you were among the people who couldn’t make it, I do apologize and ensure you that next year we send the invitations out much earlier.
Feedback about the event
The attendees filled out an evaluation form online after the event and the feedback was overwhelmingly positive. Everything from the list of sessions, the backlog prioritization, to the food served for lunch all received a top rating.
I really enjoyed visiting the campus and getting a chance to meet the team and other extension authors. I found that hearing about possible future direction for VS, participating in documentation/backlog prioritization and getting a broader sense of the ecosystem all really helped me answer questions about where to head next for CodeMaid. – Steve Cadwallader, author of CodeMaid
There were room for improvements too, and the top suggestions for next time are:
- More time to mingle and socialize with fellow extenders
- More hands on and Q&A time with the Visual Studio team
- Let the attendees vote on what sessions to see at time of registration
To summarize; this was a great event and I hope we can continue to do events like this every year. Thanks to all the attendees for coming and help making the day one to remember for all of us.
Is there anywhere I can register to be notified about progress on the Top 5 missing features/documentation? I’m particularly interested in…
– How to run and write integration tests
– How to debug and profile performance and memory issues
– How to target multiple versions of VS
– Added integration test tooling
– Develop extensions in .NET Core
– Ability to revert extensions to earlier versions
There is not at this time, but I’ll create tickets for each of them that anyone can vote for and follow progress on
Apologies Mads, but where can I find these tickets please?
I’ve added links to two of the suggestions so far. They can be voted on
One thing I’d like to see added to VS extension support is the ability to use the assemblies of other VS extensions. At this point the only way I can figure out how to get this to work is to ship the required assemblies as part of my extension. As an example I have a CodeRush extension for VS. CodeRush is a dependency so my extension cannot be installed without it. However I still have to ship the core assemblies from CodeRush that I depend on because if I don’t then VS will fail to load the extension. This causes versioning issues if a newer version of CR is installed since VS may be running the newer CR extension but my code is using the older version.
It would be nice if there was some way (that was documented as actually working) to allow my extension to find and/or use the assemblies of dependent extensions without the need for shipping the assemblies.
This scenario is already supported by the extensibility model of Visual Studio. However, it is up to the extension you wish to extend to implement. They usually will provide services you can request and code against and then provide binding redirects to avoid the version mismatch problem you described.
I would reach out to CodeRush to figure out if you need to make any changes or if they do.
Are there videos of the talks available online?
No, unfortunately not. The event wasn’t recorded