Roaming Extension Manager: Control and Consistency down to the last Extension

[UPDATED 7/31] On 7/31 we released an update to the extension. This update includes notifications for extensions, and a change in the UI where the status icons (installed / roaming) are on the left.

[Original Post]

On July 28th, we released Roaming Extension Manager, an extension that will help you better manage your Visual Studio extensions across multiple machines. Hold the applause! For those of you who are unfamiliar, the Roaming Extension Manager “roams” your list of extensions, so now when you are setting up a new development environment or simply trying to push a few extensions from one machine to another, you don’t have to remember the names of the extensions or take screen shots. Instead, we provide you with a list displaying all of your extensions installed across all of your environments and allow you to download directly from that list.

How does this actually work? We create a cloud based Roaming List that tracks the extensions you have installed across all of your Visual Studio development environments looking just like this:

Roaming Extension Manager showing list of your installed extensions

Extensions in your Roaming List can be in 3 different statuses. At the top of the list shown in the above screenshot you see, Roamed Extensions Icon indicating that the extension is roamed but not installed on this machine. These are extensions that are set to be roamed, but have not yet been downloaded onto this machine. In other words, these extensions are being roamed from another machine, and are available for download on this machine. In the middle, Icon indicating that the extension is installed on this machine and is roamed to other machines, are extensions that have been installed on this machine and are roaming to other machines. If another machine is missing this extension it will appear in that machine’s list as a Roamed extension Icon indicating that the extension is roamed but not installed on this machine. The last icon you see in the list above, Icon indicating that the extension is installed on this machine but not roamed to other machines, indicates extensions that are installed on this machine, but are not set as roamed. These will not appear on any other machine as they are not being roamed.

Autonomy without loss of control

While developing this tool we focused on creating an extension that provides you with not only autonomy, but also the ability to fully self-manage your extensions as needed.

From our earlier conversations with you, we learned that it’s best to automatically set all downloaded extensions to roam by default. That is, any extension that you download while signed in will automatically be added to your Roaming List as Roamed-Installed (Icon indicating that the extension is installed on this machine and is roamed to other machines). If you download an extension when not signed into the IDE, on your next sign in we will add these extensions to your Roaming List.

At this point you can just sit back and let us handle the rest. When you want to add an already installed extension onto another machine, just go to the Roaming Extension Manager to download your extension.

Now, every so often you might have an extension you don’t want to be roamed to other machines. Controlling what is and isn’t being roamed is easy to do, via Stop Roaming/Start Roaming buttons. An extension changes from Icon indicating that the extension is installed on this machine and is roamed to other machines to Icon indicating that the extension is installed on this machine but not roamed to other machines when Stop Roaming is applied; conversely an extension will change from Icon indicating that the extension is installed on this machine but not roamed to other machines to Icon indicating that the extension is installed on this machine and is roamed to other machines when Start Roaming is applied. Don’t worry if you accidentally stop roaming an extension by mistake, all installed extensions will be viewable in your Roaming List for you to easily start roaming at any time.

Not on the Gallery, Not a Problem

We have you covered in the case when you have created your own extension or are using an extension not currently available on the gallery. Any such extensions will also be roamed for you, with the caveat that the Roaming Extension Manager cannot download them for you. What you will see instead is a name and description of the extension, so you can easily search for it and install it.

Installed extension not on the gallery also show in Roaming Extension Manager

[Update] Notifications

On July 31st, we released a new update for the Roaming Extensions Manager featuring: Notifications. When you start Visual Studio, if we notice that you have installed an extension on another machine, but do not yet have it installed on this machine we will let you know via the Notification Hub. Additionally, we will notify you when there are any updates for the extensions you have installed. This way you can easily keep your extensions consistent and current across all your machines!

Moving Forward

If you have any bugs, possible improvements, or additional functionality you would like to see in the extension let us know by adding suggestions on UserVoice, visit us on Stack Overflow with tag “visual-studio-extensions”, or leave a comment below.

Peaky Yuter, Program Manager Intern, Visual Studio IDE Extensibility Team

Peaky is a Program Manager Intern on the Visual Studio IDE Extensibility Team. He is currently a rising senior at Cornell University majoring in Computer Science.