 There's lots of customization tools within VES itself, but did you know you can also start customizing everything you want just at the VES install stage? Learn more on this episode of Visual Studio Toolbox. Hey everyone, welcome to Visual Studio Toolbox. I'm your host Leslie Richardson and today, I'm joined by Sujin Choi who is a Program Manager on the Visual Studio Acquisitions team. Welcome Sujin. Hi, great to be here. Great. Today, we're talking about all the cool things that you can apparently do when you're just installing Visual Studio, right? Yeah, exactly. Sweet. I always thought you just hit install on Visual Studio on the pop-up, and then you let the magic happen, and then you can just get started and that was it, but apparently there's more to it. There's a little bit more to it than that. There's some tips and tricks that I wanted to go over with you guys today. There's also some advanced topics that I wanted to discuss with you guys, some of the tools that our enterprise users can utilize, and then some of the cloud development tools that we're developing and that's in beta. Awesome. Well, I'd love to see more. Yeah. Let's actually get started. I have a deck prepared. All right. We can start with the basics. What are workloads and which one or which ones do I install? To briefly define workloads, it's a package of SDKs and tools needed for a specific development purpose. For example, if you want to develop a web application, for example, you can install the ASP.NET and web development workload, which includes tools like IIS Express, SQL Server Database, as well as some of the commonly used project templates. Basically, you want to help our users get started on a project quickly. This is what you talked about earlier, and just click install and you'll be good to go. Now, a lot of the questions that we get is, do I have to install workloads? No, you don't necessarily have to install them, but you really won't be able to run or build your applications locally without the necessary tools. We've implemented this guardrail thing. If you try to click on install, but you haven't selected any workloads, then we show this dialogue to you, reminding you to select a workload and to do so, so that you can actually develop within Visual Studio. That is pretty neat. Yeah, I always got overwhelmed at first with all the different workloads. It's like, I'm just new. I don't really know where to start. Yeah, any way to make that process easier is great. Exactly. Yeah. This way, you don't have to go through all the components and figure out which ones you need to select and all that kind of stuff. You can actually learn a little bit more about each of these workloads in the link shown here, visualstudio.microsoft.com slash VS. Awesome. Yeah. Let's talk a little bit more about some of the things that you can do in the Visual Studio installer. There are folks who also ask us, what if I want to use preview features? You can actually see in my screenshot here that I have multiple instances of Visual Studio installed. This is actually not a special feature for internal folks. If you don't know already, you can actually install multiple instances of Visual Studio to use Visual Studio preview version for example, or just to try out different versions of Visual Studio using the Visual Studio installer as the management system. Yeah. Did you have a question? Yeah. I think it's safe to say that everybody who works on the Visual Studio teams installer looks like this. Exactly. Yeah. I have like six instances online. Oh, yeah. You can actually also do this too, even if you're not developing Visual Studio, right, for using preview channel like I've described earlier. Or if you don't want to have separate Visual Studio is installed on your machine, you can actually click preview features on the ID itself by going to Tools, Options, and ID to try out preview features. Yeah. Then you can also install older versions of Visual Studio by going to the link shown here. We actually don't have the capability to allow us our users to say like roll back an update that you just took. It is actually one of our top feedback items and we're definitely looking into how we can provide that, but it's just not available yet. But as an enterprise and professional Visual Studio user, you can actually install older versions of Visual Studio by going to this link shown, or you can actually do this on myvs.com as well. This is actually pretty difficult to find by searching online, which is by design, but it's not a secret. You can go there to install older versions if you want to. Good to know. I've seen a couple of suggestions come my way sometimes where it's like, can we just roll back to another thing? It's like, I don't know what to tell them because I actually was unaware of this link, so that is good to know. Yeah. Absolutely. Something exciting for the Visual Studio installer itself. Yes, we've heard your suggestions. The dark theme is finally coming to a Visual Studio installer near you. We're actually gradually rolling this out to our users. We've rebuilt essentially our Visual Studio installer in WPF, from the current one which is built in Electron and you'll know that you have the new version once you see 2.9 on the screen or higher. Now with the WPF installer, users will actually notice better performance, minor reliability fixes, accessibility fixes, and all that good stuff. Speaking of accessibility, the installer will now support Windows Narrator, which we're very happy about. Didn't before? No. Unfortunately, we couldn't do it. Yeah. But now we can support it because it's written in Windows Presentation Foundation. That is exciting. One other behavior that you will notice is that you don't have to be an admin to launch the Visual Studio anymore. Just when you perform operations that require elevation, like modifying or updating Visual Studio. So this way you can view installation details and export configuration files without having to elevate or update the installer. Cool stuff. Yeah. Dark theme is the best though. Dark theme is the best. It is. One more thing. The installer actually will be 1 seventh of the size of what it is today. So it will leave a much smaller footprint on your machine. So that means I can't go for a coffee break while I'm waiting for VS to install now? Oh, dang it. Unfortunately not. The worst. Yeah. All right. So I can't rolling in a little more. What I'm calling advanced topics for the day, but it really isn't. So the first is .VS config. This is something that we built because it was really highly suggested by our developer community, but it's really not use as much. We found out that it's because many of our users actually don't know that this exists. So I'm here to evangelize. We built this because we used to get, and we still do get a lot of questions around like, can I share what I installed on my machine to a new hire on my team without literally having to list out all the components that they have to install with Visual Studio. So with VS config, the answer is yes. You can actually import and export these configuration files across your teams and organizations. So you can easily do this in the installer. You can both import and export it. Then also if you actually include your .VS config file in your repo and your solutions directory, Visual Studio will actually detect which components are missing the next time a user opens that solution and then it will prompt them to install those missing components. That is nice. I can confess, I just learned about VS config like a week ago. Yeah. It's not very well known unfortunately, but I know it has a lot of use cases and so we're here to tell you guys a little bit about it. Yeah. I like having the options. Oh, yeah. For sure. Then the next one that we can offer is what we call an offline layout. Now you can actually use the command line for more options of installing Visual Studio. You don't have to use the UI if you don't want to but in cases like a Visual Studio administrator, you might actually have to use the command line even if you don't want to. So what they use is they would use something called a offline network layout to basically deploy and maintain these Visual Studio installations on client machines. So it's pretty easy. First, they would create this offline network layout using this dash-layout parameter, which they can use to specify a directory to create that offline install cache. And then if you actually omit everything starting from like dash-add right there, it'll actually create a full Visual Studio offline layout but you can create a partial offline layout to make it go faster or if you don't want people to use a certain workload, for example, for some reason, then you can actually use the dash-add parameter to specify exactly which workloads to install or to specify which languages, language locales, for example, using the dash-add lane. But you can see all those command line parameters from our docs. I'm not here to get into any greedy stuff today. And then once you've created an offline layout, you just copy that to a network share. Here I have an example using xcopy but you can use robocopy if you want to. And then at that point, the admin can actually deploy Visual Studio on client workstations, even if they're not connected to internet. That is good to hear, especially nowadays when sometimes my Wi-Fi decides it's not having it. So... Oh yeah, exactly. It happens a lot. So this is actually mostly for our enterprise customers but you could use it personally as well. I think that works just like from a remote standpoint, like since everybody in enterprise including is elsewhere aside from the normal office space, I'm guessing, so. Yep. Yeah. And updating is just as easy as well. You can, there's two ways to do it. One way is to pretty much repeat the layout or there's another way that I have here which is to use a minimal offline layout tool, which is actually a lot better and faster in my opinion. So unlike a full Visual Studio layout, a minimal layout would only contain the updated packages. So it literally takes the difference. So it always is smaller and faster to both generate and deploy. Great. Yeah. Cool. And then one more topic for our advanced topic today which is using container for remote build scenarios. Now you can actually install Visual Studio build tools into a container and to quickly introduce build tools to, for those folks who are unfamiliar with it. Build tools is a standalone installer that only lays down the tools required to build your project without installing the Visual Studio IDE. So you can imagine there's different build tools for .NET, C++, Python, TypeScript, and so on. And so it only includes things like SDKs, compilers, headers and wait for it, build tools, right? Yeah. Yeah, so if you wanted to use this by itself, you would build your Visual Studio projects from a CLI. Now what you can actually benefit from installing the build tools into a container is that it'll allow you to package a consistent build system that you can use. And when you publish that container into your, I don't know, Azure Container Registry or like other internal Docker registry, then you can use that image for your CI CD workflow by having your server pull from it. And like obviously this diagram is grossly oversimplifying this. So you can find out a little bit more about it in the link shown below. That is very exciting. I love simplified diagrams like that too. It's just like, oh, that's it. And then you go into the actual docs and it's like, oh, I have to do all this stuff, but it's totally worth it. Yeah. It's the only thing. This one is totally worth it. This one is a lot more complex than most of our other capabilities, but it's worth it. It's like, what's that mean that goes around where it's like, you have the, like grew from despicable me with the whiteboard. It's like, okay, first we write the code, assuming there's no problems and then we publish. That's it. That's it. It's the same as that. Missing a few, you know, steps in between, but that's it. Yeah, that's okay. We have the extra steps in between. Cool. And then we can talk about maybe code spaces, how this works in a development environment in the cloud. Yeah. Yeah. So I think you talked about GitHub code space already in Visual Studio Toolbox. So I don't know how much I need to explain in this episode, but to just briefly go over it, it's basically a complete development environment that's in the cloud and it, you know, hosts your project and the development tools. And so what this means is that for an individual developer, you can develop from anywhere and it can be accessed from Visual Studio, VS Code and like even from your browser through GitHub directly. But what I'm more focused on and what my team is focused on is really for development teams to help those development teams and the team members to contribute to their projects without, you know, complicating all the local setup so that we can help them to be more agile and easily scalable. And so for using GitHub code spaces on Visual Studio, it's in beta. So you have to sign up for it using the link shown on the screen. But if you're using Visual Studio as your access point to code spaces or like as a client for GitHub code spaces, we've created what we call the tailored installation journey which will actually make it super simple for you to install Visual Studio and ready to be connected to your code spaces. So like remember the workload selection screen that I shared earlier, you won't even need to go through all the installation details to like select all those workloads or components. We do that all for you. This means much quicker first time installation of Visual Studio, which will happen in like under five minutes now. That's really cool. So where's the rest of that footprint going if it's only taking like a seventh of the time to fully install VS? Yeah, so all the compute power, you know, the compiling, the debugging, testing, running, all that is now happening in the cloud. So all those tools are in the cloud and you're basically accessing it from your client machine. Neat, yeah, still slightly bitter that I can't have my caffeine break but I do appreciate the faster installation times. Oh yeah, yeah, that's what we try to do. I know the Visual Studio installations can be really, really big. So, you know, narrowing it down and refactoring as much as we can is what we're trying to do now. So, yeah. It seems like that makes sense for code spaces to just conceptually anyway, since if the idea is you can develop from whatever machine that you have, including your not-so-stellar personal laptop, then having like a small footprint for the install for VS is pretty nice. Exactly. I can use my little sister who's in middle school. Her laptop to do development doesn't have to be a heavy duty development machine. Awesome. Yeah. Exactly. Just fully fill your sister's laptop just to do it. Oh, you know. My laptop has a lot more important things to do than that. I'm kidding. So, some of the things that we're developing on our team, actually there's one thing that I really wanted to introduce here today, which is the DevNet. So, we've all been there, right? Like even after you clone your repo on your machine, the time it takes you to actually get that project to build and run takes a really, really long time. Like hours if not like a whole day because oftentimes you really need to install additional dependencies like, you know, SDKs, compilers and even like external tools like Redis and Revit MQ. So, this DevNet essentially takes the VS config a step further and we're really trying to solve this, you know, oh, it works on my machine problem that we tend to face a lot. So, you know, with every project having a lot of dependencies, you know, this means your code space environment also needs to be not only just created, but it needs to be configured. So, this is where DevNet comes in. Put it simply as a tool that helps you define and configure your development environment. And you can think of this configuration as like how you would customize or configure your VM for a specific repo. And this configuration information will now live with the source code so that the next time someone clones a repo to a code space, it'll set everything up for them. So that all they need to do is type in DevNet in it in the terminal and press F5 and it'll be like magic, it'll just work. That is so exciting. Seriously, it's always such a waste of time when you clone a repo thinking it's gonna work and then you spend hours just trying to get F5. Yeah, yeah. Yeah. And then finally get it to work and then your managers will be like, oh, it might be a good idea for me to write a good, a long wiki or documentation on it. Yeah. I'm gonna never get updated and yeah. Which I have had to do before. It's like. Yeah, you do it. Sooner or later you look at it and you're still the author. Yeah. Yeah. Good stuff. Yeah. So I can go a little bit into DevNet if you like. Would that be something that you're interested in or? I would, but I think we're actually short on time. Sure. So for people who would like to learn more about it, where can they go? Yeah, if you want to learn a little bit more about it, you can go to aka.ms slash DevNet slash stocks. And there you will see some of the examples that we have, the tools that you can use with DevNet as well. Sweet. Yeah. Plus a .NET Conf, which just ended, did a full scenario on DevNet and went into depth with it too. And it was pretty cool. Yep, yep. You can totally optimize your cloud environment and all that stuff. Yeah. So DevNet kind of just deserves its own episode in many respects. Yeah, yeah. That would be a good one too. Yeah. Sweet. So I mean, thank you so much, Susan. I had no idea there were just so many different things you can do just while VS is installing. And even that time, the time it takes to install is even shorter. So like, yeah. So it's not just like a one and done thing with that installation dashboard. You can keep coming back to it if you want. Yeah. Good stuff. So, I mean, you already mentioned that people can go to the DevNet site and stuff, but are there any other resources that people should go to in the event they want to work with? So actually DevNet is, we actually built it for cold spaces, but it is available locally on our preview channel. So if you wanted to try that out, you can try it out on our Visual Studio previews. And then if you have feedback, which we take very seriously, you can actually give us some feedback by going to aka.ms slash DevNet slash feedback. And we would greatly appreciate that. Great. Well, thanks once again. And I hope everyone goes and installs VS if they haven't already, because there's a lot more to it than you think. And with that, happy coding.