Use Visual Studio in Presentation Mode
Have you ever seen a presentation using Visual Studio, but had a hard time seeing the too-small fonts in the editor, Solution Explorer and menu system? How about all the custom extensions and themes the presenter used, making it harder to figure out what exactly was going on? Perhaps you were the presenter? Here’s how Visual Studio Presentation Mode can help.
When doing any type of presentation or demo, it’s is crucial the audience fully understand what you’re presenting. If there are barriers to make that harder, then your presentation is not going to be as effective as it otherwise could have been. Customizations that differs from the default Visual Studio behaviors that your audience are already familiar with often cause confusion too.
Here are some typical barriers:
- Code is too small
- Text in tool windows and menus is too small
- Custom toolbar button layouts
- Extensions that change the behavior of Visual Studio
- Custom color themes
So, to remove as many barriers as possible, we need a fresh install of Visual Studio without any customizations. Yikes!
Or we can use Presentation Mode to open an instance of Visual Studio that looks exactly like a fresh install. Here’s what you get with a Presentation Mode instance:
- Default settings, window layout, theme, and keyboard shortcuts
- No extensions (other than machine-wide ones)
- No settings synchronization with the normal Visual Studio instance
You can then customize any settings to configure Visual Studio for your demo or workspace. For example, change the font sizes to 18 for the Text Editor and 12 for the Environment or whatever value makes you happy. When you close Visual Studio these settings will be preserved for the next time you use Presentation Mode.
There are two ways of entering Presentation Mode:
The easy way
Install the Tweaks extension and open any solution, project, or file in Visual Studio. That ensures that the extension fully initializes. Now you can right-click the Visual Studio icon in the Windows task bar to open in Presentation Mode.
This makes it super easy to start a new Presentation Mode instance of Visual Studio.
The also somewhat pretty easy way
This is how the Tweaks extension mentioned above does it under the hood. You can do the same thing yourself if you don’t want to install the extension.
Open the Developer Command Prompt or Developer PowerShell and execute the following line:
devenv /RootSuffix Demo
You can swap the word Demo with whatever other word you want to create yet another isolated instance type. That might be useful for situations where you want different customizations depending on what type of project you’re working on.
For instance, you may want certain extensions and window layouts only when doing web development. This gives you that flexibility.
Having the ability to isolate Visual Studio for various development scenarios and demo purposes is quite powerful. They are also easy to create and well supported – even in older version of Visual Studio. I’m curious to hear how this works for you, so let me know in the comments below.
Outside of people on the Visual Studio team demoing to the public- when would a normal dev want something like this?
Presumably the extensions/shortcuts/layout someone has installed make them more productive and make the IDE easier to use- a benefit when demoing something. I can’t ever see when I would want to demo with out my customizations.
A lot of people present at local user groups, coding conferences, internal learning sessions, large code review sessions with their team etc. Presenting with Visual Studio is a lot more common than you might initially think.
As a teacher this is a great benefit, especially when teaching remotely, because I have my normal dev environment and the environment that matches the students (and is customized via a shared settings file) so we can communicate at the same level about the IDE. However I use separate instances altogether. This is the only way to get true separation of VS stuff. But there are still things that are shared and it is inconsistent as to what.
For example under Extensions some, but not all, of my custom extensions are installed in both even though I didn’t install any under the demo environment. I would say that it is those that require an actual installation (like CodeRush) but that isn’t entirely true. For example ‘Extensibility Essentials 2019’ is installed in both but ‘CSS Tools 2019’ is not installed in the experimental instance. It is random, to me.
Another area is with VS settings themselves. Even with multiple instances VS shares some settings and there is nothing you can do about it. I wrote up a bug about this a while back and MS came back and said it was by design. So I periodically play the game of seeing my teaching settings getting overwritten by my normal settings and I have to import them again. I doubt the experimental instance version is going to fair much better.
I do think MS has come a long way on separating instances out but until all settings are different between instances (and experimental instances) then trying to run multiple VS instances/roots on the same machine is hit or miss. However for just demoing something I could see a use for this if you don’t already have another instance running. I’m personally running 3 different instances of the same edition on my machine. It is awful at update times but at least I get a semblance of separation.
I probably wouldn’t go through all of this. Just reduce your screen resolution to 720p (or a high DPI variant of it) and you’re good. Everything will scale accordingly, including the apps you might want to run (not only show their code inside VS), mouse cursor, etc.