Visual Studio 2019 officially launched today, with the theme of "Productive, Modern, Innovative". Among the many changes to project creation, editor experience, and debugger features, one brand new feature shines brighter than the rest: Visual Studio Live Share.
What is It?
Visual Studio Live Share is a realtime collaboration tool that allows for multiple developers to work "side-by-side" over the network. Think of it as a mix between Google Docs and an SSH session. Live Share allows a presenter to allow up to 30 people to view, edit, and debug their local project.
Not to be confused with a screen share, Live Share actually sends contextual data about the code and cursor positions that get rendered by your local IDE. This means Live Share will work great on low-bandwidth networks and across OS's, resolutions, and accessibility settings.
It can even share debug information, allowing for greater collaboration when stepping through code. Finally, shell access can be shared with users that allow them to run any command as if they were logged into that machine.
While this seems like a lot of power for users to have over your machine, you can restrict users to be readonly if you so choose.
Live Share is supported via extensions for VS2017, VS2019, and VS Code, with VS Code allowing you to share cross-platform between PC, Linux, and Mac.
When would I use it?
I foresee three main use cases for Live Share, each ranging from beginner to expert levels.
- Educational - A teacher or mentor can help a student write an algorithm or demonstrate different data structures. You can even use shell access to help teach
gitcommands to both young and old.
- Presentational - A speaker demonstrating the latest library or tool can improve the quality of their presentation by allowing readonly viewers to enjoy the code on their own machines, without the risk of "getting lost" or "out of sync" with the presentation.
- Investigational - A group of developers, testers, and/or designers and efficiently debug a complex module to determine the root cause. Once the problem code is found, the group can easily discuss options and implement them in realtime, effectively a code review before the commit is even made.
Where can I find more information?
The following video provides an excellent overview of the features, specifically cross platform collaborative debugging. You can also check out the detailed online documentation, which includes great information on getting started, how connectivity works and common uses cases.
I am extremely excited to try this feature out in daily use. The key factor to its success will be ease of use and performance (specifically around shared debugging). But between enterprise network restrictions, extension version mismatch, and the perf drops that hit with large multi-tier projects, I'm expecting the initial experience to have it's hiccups. Regardless, this is a feature I think will be fantastic for code reviews and brownbag presentations. Just make sure you trust the users you share with!