 to Seth. Oh my gosh. We had great announcements this morning. Lots of great stuff around Visual Studio both 2019 and for the Mac. I've got Amanda Anuni here. I want you to introduce yourself so the friends out there in live stream land know who we are. I'm Amanda Silver. I'm the Director of Program Management for Visual Studio. Visual Studio Code, TypeScript, Windows Tooling, a whole bunch of different kinds of things. Hi, and I'm Winito Indranathan. I'm a Group Program Manager on the Visual Studio for Mac team. Awesome. So we've got great new releases. Folks can download for both versions right now and updates for VS Code. But what's new in VS for Mac? Right. So before we start about talking about VS for Mac, is we want to call out all the previews. I mean the announcements today are all live. Are we highly encouraged everyone to go try them out? You know here's our preview page. One of the things about Visual Studio and Visual Studio for Mac is we've made it such that it can install the preview releases alongside your production environment and not mess up anything at all. Yeah, that's huge, right? Because I want to be testing. I want to know what the cool new things are that are coming without breaking those things I need to build on a day-to-day basis. Yep, and we tend to think of this as the foundation on top of which we'll start you know publishing new features and updates regularly. We're really looking for some feedback on how things are going and you know really really adjusting to that feedback. It's our viewers opportunity really to get their voice heard if there's something that works great for them. We'll enable that, we'll enhance it. If it doesn't work great maybe we don't put as much into it. Yep, so one main goal of this release, Visual Studio 2019, was to make it easy for developers to get started on their code. The code could be anywhere, it could be on your machine, but more likely you're working with someone else in a source-controlled environment. That could be a repo on GitHub, it could be a team foundation version server you know running Azure DevOps or anything like something like that. So we want to make it such that you can easily get started on your code. Okay, and for that we have introduced a new experience to get started. Let me show you that first. In grocery for Mac we have a new start window that lists all of the projects that you want to get started. So here I have some projects on my machine but I can always go to a repository clone and check out some code and get started there as well. In the interest of time I'm just going to go open something on my machine. Okay, so here I have an ASP.NET core solution from a repo that I found somewhere on the internet. It has essentially, this I think is the demo. It's perfectly safe, isn't it? This I think is the demo that we used in our last connective and if I'm not mistaken, I just didn't have access to our latest demos. So here is the smart hotel website, it's an ASP.NET core front-end application. I remember that demo. Yeah, and that is backed by an Azure function that runs some serverless code to do some processing. One major investment that we're making in grocery for Mac in the next version is to make our coding experiences that much more reliable, fast and fluid. We are actually rewriting the code editor from scratch, all using native Cocoa APIs that allows us to give really fluent experiences on the grocery for Mac side. Combined with the work that we have done on Word of Studio, our language services that we're building for .NET, we believe we can provide a fantastic .NET coding experience on the Mac in this update. So you'll start seeing some of the improvements in the code editor appear over the next few previews. I feel like that's a similar experience we've had with Visual Studio 2019, 2017, and we've leveled up the performance of those code editors over time and we're bringing that same knowledge of VS for Mac and leveling it up based on some of those things we've learned in full Visual Studio. Yeah, I mean, historically, there was a lot of duplication of efforts and so on and so forth. I believe that the work we're doing here allows us to bring value to customers, both sets of customers almost instantly across the two products. So here's an example of a C-Shop file that I've opened and I'm going to show you just a couple of minor things. Most of these innovations and improvements will start showing up in the next preview for Visual Studio 2019. So here we have the light bulb experience that suggests a bunch of fix ups. You could choose to sort of make an individual fix up or you could say I want to fix a whole bunch of code issues together. If you choose the fix all option we provide you with a dialogue that shows you all possible suggestions that you could act on, you could choose to select an individual suggestion will show your preview of the issue in your code and fix up and then you can go make that change per say. So we want to make it possible for you to detect issues and fix issues very quickly in your code. Visual Studio for Mac has always had support for, you know, source control, but one major investment we're doing in the next version is to sort of rewrite our source control support as well. We will have support not just for, you know, Team Foundation version control, but definitely GitHub every get scenario as well. So source control is another major investment that we're making in Visual Studio for Mac. And finally, we have always had capabilities that allow developers to publish to Azure and various the web end points. We're making investments into that space as well. So for example, we just recently added, you know, the ability to not just publish to Azure but to a folder so you can then copy and deploy the code to your favorite server. We have support, we just added support for Azure Functions 2.0. So you can create a new Azure Function and set up your trigger. So here's an example where I'm adding a new function. We have a rich wizard experience that lets you configure the function, lets you want to create a trigger. Yeah. And so as an IDE user, I love having that hand holding experience that gets me from I'm not quite sure what I'm doing right through the wizard and published tremendous. Great to see that in Visual Studio. Definitely want to take away the complexity from you and make it really simple to make it make it possible for you to publish to Azure. So that's something they're doing here as well. Let the experts take care of that complexity for me. Yep. So I can focus on my knowledge. Absolutely. Man, do you want to show some of the things you have in the show? Sure. Yeah. I mean, so I just want to kind of reiterate some of the things that that uni was talking about, but in the context of the Visual Studio for Windows version. So this what you see on the screen right now is actually the Visual Studio installer screen. And know it well. And I think for anybody who works at Microsoft, you know, we're constantly installing both the latest release and kind of the internal night previews dog food. Exactly. So what you see here on my installer is that I actually have two internal builds. I have one for the latest Visual Studio 2017 update, as well as the 2019 preview. But this is basically the same exact experience that an external user would get. It's just they wouldn't see the little int there. But I needed to get this to get all the demos ready. I had to use the previews. It wasn't wasn't going to, you know, risk it by installing everything this morning. So so I can I can start installing that and do that on do Visual Studio 2019 on my stream later this week, next week, and we can start live coding on Twitch today. Yeah, today. Yeah, yeah, yeah. I mean, what's really great about this is, you know, when I when I talked to, in fact, I was just talking with the development team, and they were talking about their process for adopting new tools. And typically what they do is they, you know, pick pick a couple of developers on their team to kind of go scout it. Right. And so those devs do maybe a little project to kind of go see what the tool looks like and come back into a report for the rest of the team. But this makes it really easy because, you know, it used to be that you had to have kind of like a burner machine, because you were too worried about it corrupting your developer environment. But now that we have the channels and we've done all of the work to kind of make sure that they can be updated independently, you're really not at risk to to corrupt your your dev box. Good. Oh, my gosh, good. So that's kind of that's thing one that's super cool. So now let's jump into 2019 itself. So as uni was talking about a minute ago, we have the start window. So you can see just like he showed in the Visual Studio for Mac experience, we also have a start window experience. And and really there are two reasons that we did this. Number one is for for users who are absolutely brand new to Visual Studio, and possibly users who are new to your development team, for example, we've gotten feedback that they are just drowning complexity when they see the entire ID. They kind of don't know where to start. There's that intimidation of the blank screen. Yeah, open it up and it's just that gray background. It's just there's just a lot. It's not just the blank screen. I mean, we have the start page, but but even the start page, there's just a lot of information density that's in there. And to be able to absorb all of that is is kind of intimidating your first time out. And the other thing that we heard from a lot of more more senior and experienced developers is basically that that the Visual Studio when it was originally designed, you probably remember this, you had to get, you know, go to Best Buy and get, you know, 12 discs and stuff. Oh my gosh. Yes. But the but the result of that was that that not only was the product entirely contained in there, but all of the documentation and all of the templates were contained in there. So it was really this like self-contained, you know, package to start your development. We used to get sandwich boxes to store those discs in so that we could carry them around because we were in college. They're all collector's items now, don't tell me. But they were also the books that came with it. I mean, you had like the whole the whole get up was not just your machine. It was the entire, you know, physical aspect to it. You had a kit that you brought with you. This is my Visual Studio. But nowadays what we find for modern development teams is that their startup experience, like when you're getting started on a new project or when you're a new developer joining a team, for the most part they don't necessarily use our templates that are in box. They actually start with an online hosted repo. Right? And so what we're trying to do with the new start window is to make it so that it's a lot easier to kind of get started with an online hosted repo and that that's kind of the most predominant experience that we encourage you to use. Sure, because my team members, new team members, I want to point them, here's where we keep our code. Go start over there. Right, exactly. And I think, I think, you know, once you start to curate what what kind of feeds you look at and other things like that, this is going to become really, really useful. But let's go ahead and actually try that. So let's go on or check out a repo. So I'm just going to copy this one. Oops, copy that and come back here and just let's clone it. And I forgot to delete this. So we will just call this desktop taters three and clone it. Not like you've practiced this once or twice, right? Not at all. No, apparently not enough. So what you can see here is that this is actually using the team explorer to actually connect to that github context and to actually clone that locally in this in this particular box, right? So now you can see that it opens in the solution in a folder view, but I just need to click this solutions and folders to actually pick which solution I want to take a look at. So now that I'm in this context, you could see that I'm actually loading the solution with the WPF project itself loaded right here. So that's pretty cool. The other thing that you might see here is this little thing on the left right here which says projects are loaded and ready to use. Background tasks are still running. What's it doing in the background? Yeah, so what we're really trying to do with Visual Studio 2019, I mean, I think a lot of people have seen in 2017 that there have been pretty dramatic performance improvements, right? We've seen those numbers, those demos where, oh, time to load the Rosalind source code, right? Yeah, yeah, and live unit testing is dramatically improved. So what we've been trying to do is to move more things to be asynchronous and out of process in the in Visual Studio itself. And so what you're seeing here is that there are some things that are still running in the background, but that the project you can actually go forward with. You don't have to wait for anything before you actually kind of go ahead and get things going. So is it doing things like looking at my NuGet packages or any of those Rosalind tasks? Sure, I mean it's doing any kinds of things that it needs to do to initiate the project, but basically as soon as the project is loaded, the source code is loaded, and basically, you know, we think it's safe for you to type. In other words, you will get the intelligence experience you need in the background compilation experience you need, then we'll notify you to say, hey, go for it. But in the background, we'll still do some other things to kind of get everything primed. So I can go open a razor template or open a windform designer and start tinkering around in there while those other things are happening. Right, and anything that you really push forward, because you want to do it immediately, it'll obviously push that to the top of the queue and make sure that that's the priority. Yeah, it's kind of amazing how much Visual Studio really is an OS inside but it's a pretty complex app. Oh my gosh, yeah. So I want to make sure that our friends out there that are watching the live stream, that you know we're answering your questions on Twitch. If you have questions about the new Visual Studio, whether it's 2019 Visual Studio Code or Visual Studio for Mac, send us your questions out there in the Twitch chatroom and we'll answer them here for you while we're going through the demos here with Amida Anuni. So the other thing that you'll notice here is that the top level menu bar has actually been collapsed and part of the reason that we've been doing that is so that you have basically more room for your code. So if we go ahead and we load like the main view model and you can see it, you know, this is a pretty small resolution. It's not something that I would ever actually work in. This is the only reason we're doing this is for the live audience. I love working on my laptop. Come on, Amanda. But, I mean, in this context it really highlights how helpful it is to have, you know, yet another menu bar that that, you know, that's a whole line of code right there, right? So having another line of code in my view is actually super, super useful. So that's one thing. The other thing that you'll notice is up here in the corner I have kind of my information about my profile and then I also have live share, which I'll use in a second. But the idea here is that we want to take all of the static information about your presence and the context of who you collaborate with and kind of put that up there in the right-hand corner. The other thing that you'll notice down here is that we actually have the coupon reader WPF on the lower right-hand corner. So we can actually see that along with the repo that we're in and kind of which branch we're in in GitHub, how many changes I've made, things like that. And then you can also see down here in the lower right-hand corner we have kind of like a checksum that basically says, hey, everything's compiling. But as soon as I were to make an edit and things wouldn't compile, that would go to red or yellow depending on if it's warnings. Okay. But that kind of tells me whether like the state of month, the health of my code that's in my code editor. Yeah, I used to use an extension that our friend Mads Christensen wrote that would put a little watermark in the background to indicate if there was errors or something. Yeah, so Mads is on the team, so a lot of his great ideas actually come directly in the Visual Studio eventually, right? Awesome. Okay. The other thing that we've also been trying to do kind of along the lines of the fact that some of our new developers are telling us that they're overwhelmed by the capabilities that Visual Studio has to really try to improve discoverability, right? Oh, yeah. And so one of the things that we've been working on a lot is improving the search experience inside of Visual Studio. Okay. So for example, I could do something like search for a refactor and you could see all these different refactorings come up and it's not just, you know, various different refactorings that are available and it would change context based on what was highlighted, but also the hot keys, right? Yeah. So what's super cool, and this is coming in the next preview, is you're going to be able to actually launch a command directly from the search itself. So I can just with normal no mousy mousy, I can do typy typy. And you don't know the shortcut keys, but I want to do. You don't know. Right. Go find this. But it's not just a text command. It's also like I could, for example, search for Android, right? And I could see, oh, there's first of all, these Android settings. There might be some new new project templates. Like I could say, what is it? TVOS or something like that. What is it? IOS, like I could search for that. You can see, you know, various capabilities that I might have. I don't have Xamarin installed on this particular one. Yeah. But I could do go to definition and you'll see that it's not, it's not like perfect, right? Because I don't have a space in there. It's all fuzzy matching. And over time, this will get better and better and better and better because it's a hosted service. Oh, very cool. Yeah. So that's, that's pretty cool. So let me, let me show you one more thing, which is, which is live share in this context. So again, I'm showing you a WPF application here. Right. And so what I'm going to do next is I'm actually going to invite uni who's over here on the Mac to, to basically do a live share for this, for this project. Okay. So wait, wait, wait. You're going to take a WPF app, right? Now is this .NET Core 3? It's .NET Core 3 WPF app. Okay. Yeah. And I mean, a Mac doesn't run WPF, right? Because it's Windows Presentation Foundation, right? He's going to be able to work with the code. He's going to be able to work with the code. So let's try it. All right. So let's try it. So we're going to set up a split screen here. Should everything go well? Yeah. So I'm going to go to the right. And then we're going to dock uni to the left. Yep. And I just need to copy that. I haven't sent it to you yet, uni. So don't freak out. And I'm just going to paste that there. And so he should be able to join. Great. So in my Teams window, I'm seeing the link just with a single click. I can open up VS Code with live share running in it. Yeah. Oops. Let me just try one more time. Man, I can just, oh, let me just click your link. And let's get, let's make sure you're docked to the left side there. These are preview bits. So please excuse us if... Is it working? Let's try it again. Can you send me a new link, please? Share it again. Share it again? Let's try that one more time. You can close your browser and try it one more time. All right. The other thing you can do is copy it into your your VS Code instance. One last. Yeah. Oh, there we go. That looked good, right? There seems to be an issue with the extension. Okay. But let's just walk through the scenario. Okay. Okay. So basically what would happen is if he wants to join in, then basically he can just go ahead and jump into the WPF session and actually be able to to debug this session. So you're debugging on on the Windows machine and he's able to connect in and see all the debugging information, the locals, run watches, and inspect as you would be on the Windows machine, but from VS Code, whether it's on Mac or Windows. Right. Exactly. I just sent you a different link. So let's try that one more time. Looks like it was a dating and extension or something. Let's try it. Let's see if this works. Okay. So if you go to the live share view lit there, you can click on joint collaboration session and then just enter the URL there. All right. Let's try that. That's how this works. Okay. So it looks like it's joining. It'll take just a second to actually join the session. It'll give me a notification as soon as he's in. So this actually says, okay, when he's in. There we go. Yeah. So what's really cool about this, and let me see if I can kind of scroll back out to try to zoom in and now I'm trying to zoom back out. But anyways, there. Now we can see some real code. Is that two fingers zooming on the touchpad? So you can actually see some of my highlights in here. Ooni can see it in the context of his Visual Studio Code instance. But what's really cool is I've actually, I can actually allow Ooni to do some debugging on his machine. So what he can do is we should clarify it. I don't have the code on the machine, right? Sure. It's all coming from a machine. He doesn't have the word as he can. And let's make sure yours is snapped on the left side there for everybody. Let me just move. Is that better? Yeah. All right. So it makes the debug window really small, but let's try. So what I'm going to do is I'm going to switch over to the WPF application and I'm going to start debugging. So again, the app is not running on my machine. It's going to run on her machine and we can work on this together. So you're requesting that the requesting the debug, it's going to come over to this machine. That's right. On mandas. And all right. Traffic that back and forth. Okay. So I'm going to launch and if you look at that on an Amanda screen. Yeah. You can see that both of our machines are actually launching into a debug state. That's odd. We're getting a compiler. But I'm not sure what's going on there. Let's try one more time. It's hard to see it. Can you do clean? You try that. And you can see on my screen I'm seeing the same build outputs including, unfortunately in this case, errors. Just in case this was to work correctly, I would be able to just run this app from my machine, put a breakpoint all without Amanda doing anything, get the complete intelligence experience and debug through that. And this is part of this is part of live streaming and live TV is sometimes things error out. And that's okay. Yeah. This actually opens up to a pretty good question while we're trying to figure this out from our friend steam jockey in the chat room how does visual studio live share communicate? If you're on a tight firewall framework, firewall network, what kind of communications should they expect? Is it using something like an I am instant messaging back and forth? So actually what's happening is that it uses an Azure Relay service. So this is a service that's available in Azure to basically create a connection. And then once that's done then it's basically peer to peer. So and if I want to tight firewall network right where tight restrictions on our private network, can I just do direct connections without connecting out to Azure? So yes. So what that's one thing that we're working on over time. So so basically you have to have the Azure Relay service itself to do the initial handshake. But beyond that then you can actually work in a firewall context. Yeah, that's only the amazing Amanda. So look and do it. She was talking to you and debugging and fixing the problem at the same time. You know, we're professionals. We can make things happen. So look. So here the app is running. God lucky. Thank you. And I'm going to put a break point and I'm going to actually, you know, you can see the app is running. Sure. I'm going to put a break point and let's go ahead and like click the refresh button. Yeah, you're ready to refresh. Yeah. So this is a WPF application again and look, we're actually hitting the break point in my context. Right. Right. As well as his context. And I can see everything as well. Right. So here is my break point. Let me go ahead and make a small code change. In this case, I'm just going to add a WPF. You can see I'm getting the full intelligence experience inside grocery code for the app that's running on a machine. I'm going to call it system.windows.messagebox.show. I'm going to just call it Hello World for now. And I'm going to run it. Right. Yeah. Good. And when the app runs. Yeah. So you can see the Hello World just popped up. So he just did an edit continue on his VS for Mac. From Mac. Machine. Yeah. Right in the context of our live debugging session. Okay. That's that's pretty impressive. Pretty cool. Oh my gosh. Yes. Yeah. I mean editing continue alone right is is pretty cool by myself but to be doing that handoff back and forth there are so many things that I could see folks wanting to be able to do that with whether it's Windows Forms WPF or whatever other framework we support. Right. There's other programming languages out there. In a team setting where people are constantly switching contexts it'd be so much more work for me to go ask her about the repo get the code in my machine. In this case I couldn't even do that but let's assume I'm working on a different kind of application and then debug through it. Right. This is her problem. She set it all up. I'm just helping her and that was really really powerful. So why don't we take some questions? Oh yes. Absolutely. So there's a really good question here about multiple screens. If I'm using Visual Studio Cross multiple screens if they have different DPI settings. Oh you're in for a treat. Yeah. I have this problem at home. Yeah yeah yeah. So this is actually something that we've been taking on for Visual Studio 2019. And the first previews should show some progress but the second preview will show pretty dramatic progress. Fantastic. Yeah so everything should start to get pretty crisp in that course of Visual Studio 2019. I've got that 4k display on my laptop and when I drag over to the side screen that's 1080 everything gets old. Yeah yeah yeah. So we've been working on it. So it's coming. Oh that's great. Yeah. Now what kinds of performance improvements have we put into live unit testing? Oh well I mean there's first of all test discovery itself is pretty dramatic. It used to be order in kind of algorithm and now it's basically a linear algorithm. Okay. So it's that's a pretty dramatic improvement. We have other demos that we've done in the past that show that you can load 50,000 live unit tests in the course of a few seconds. Oh yeah. Oh man I'm going to know immediately when I break my build. Yeah so that's one thing. We improved doing a stash and kind of a switch branch pretty dramatically and that was actually in 2017 but a recent update of 2017. Okay. Okay. So that's those are a couple things. Solution load time has also been dramatically improved. Sure because we've got that async. Yeah. Loading process. Yeah. Very cool. Yeah. Walter in the chat room is asking does the team debugging with LiveShare work with distributed developers in different cities or countries with relatively slow internet connection? Absolutely. So that actually was one thing that that we've really been trying to work on. I mean in some ways the important thing about it is that the entire context of the debug session is not going into the network. Right. The only thing that actually goes into the traffic is commands. Right. So it's really it's not like the debugging because it's being hosted on your machine. Sure. It has the compute power of your machine. Okay. We don't need the compute power of the network. Right. Okay. You're just trafficking. All it is is remoting of your commands. That's the only thing that actually goes over the network. Right. Okay. And then if there's new information that you might find in like let's say a debug inspection you know an expression evaluation or something like that. Then it's just that information. It's just that information. So it's actually really really small which is pretty awesome. Yeah. Oh that's great. I can run it now over my 3G phone. Yeah. Are we doing anything to improve test explorer integration for Xamarin apps? Dot Morton is asking. Yeah. You want to take that? I think there's a bit of a studio question. Yeah. Yeah. I mean so we've definitely been improving the test discovery and the live unit testing experience. I don't know that there's anything specifically that we're doing for for test explorer integration for Xamarin applications that I can think of off the top of my head. But but it's a good question. Okay. And we've got a question here. This might I think lead into your next demo. AGR TGA. That's a great handle there. Are we going to get the option to either debug multiple projects or at least choose the project with the diagnostics tool window? Yes. So that's actually something that I'll demo tomorrow at Dev Intersections. So if you're here locally in Vegas joining us. Yeah but I don't have the demo ready to go today but I have something that's super cool. So about debugging projects. Yeah. Right. So yeah. Exactly. Debugging experience has been getting better. It has been getting better. And one of the things I really wanted to show because there wasn't a lot of love that was shown in the keynote for C++ is we've actually dramatically improved the C++ debugging experience. Okay. Yeah. Oh talk to me about that. So I'm playing a little bit of a video here because this actually is a an app that is a little bit too big for this machine. I actually it takes like It's an app? Yeah. It's called Gears of War. That's not an app. Oh my gosh. Amanda. So we've been working with the Gears of War team to make sure that their debugging experience is much better. Yeah. And so one of the things that really prevented Visual Studio from successfully being able to kind of make their debug process really smooth is that everything was in process. And so because everything was in process it actually consumed a lot of memory. Right. And so what we'll show you here is actually the experience in the previous version of Visual Studio. This is basically without the out-of-proc debugging experience. But what you can see is this is attaching to the process. And as we start to step through and inspect some things you'll see that the memory really starts to creep up. It's a little bit fuzzy here but it's such a cool feature that I just couldn't help but show it. Oh my gosh. I mean just the idea of all right let's let's debug a AAA game. Game. Yeah. Okay. Let's do it. Yeah. And not everybody gets access to the Gears of War source code. So what you can see here is this is actually you know we have it we're stopped at a break point but further when we start to do inspection of various variables dev and the in memory just starts to kind of creep up and up and up and we're at about one point two at this point we haven't done any inspection we haven't done any steps. And now we're doing a couple steps and as you can see it just continues to grow and grow and grow and eventually you end up with an out of memory situation which is really really problematic because by that point you're probably deep into the gameplay to debug and repro the issue and so getting back into that state is kind of challenging. And it throws you completely off of your groove you were so focused in getting something done and now yeah out of memory. Yeah exactly. So I'm going to just forward this a little bit and you'll see that that we kind of end up with you know 1.97 or something like that but now you can see we're going to try it again and there's an option that you have to go to that will let you run the debug symbols in an external process. Okay. And today that works for C++ only but that's something that'll come down the road for other languages as well. Got to start somewhere. Yeah exactly but now you can see this is Visual Studio 2019 you can see the nice indigo kind of blue theme here. Again this is Gears of War and we're just basically going to execute the same exact kind of debugging process but what you'll see here is that the the memory doesn't creep up this time. Yeah it looks like it's staying there about what 470 472 come along. Yeah exactly so now we're just debugging the exact same thing and it just it's not growing right so and that's because it's basically out it's attaching to the debugger out of process. Oh fantastic. Yeah. That is amazing. And we just made C++ LiveShare support available as well. That's right. Yeah so that's that's really cool. So so with C++ LiveShare like you can basically if somebody has a hey it's reproving on my machine but I can't get it on your machine you can invite them to a LiveShare session the debugger is working out a crock it's it's kind of as Scott Guthrie likes to say it's a great day to be a developer. Oh my gosh you've taken the works on my machine and say here just connect in and try it. Right Exactly. Boomi LOL in the chat room kudos for you Amanda super cool thank you Boomi we appreciate that and we agree. Yes we absolutely agree this is amazing. So now I'm going to get untangled because there's one last thing I want to show you that I think somebody was actually asking about. I think I did see that question a little bit earlier. Yeah so somebody was asking about the experience for reviewing PRs directly. I hate that context shift that I have to do where I'm going to my web browser and then back to Visual Studio. Yeah I mean especially for senior developers who are bombarded by pull request reviews all the all the all day basically. Or live streamers who are trying to run a show. And then they get then they end up with pretty doing shallow reviews because they can't use the tools that they're familiar with. Yes. So what we've been doing is working with the GitHub team to create an integrated experience inside of Visual Studio and Visual Studio Code. Yeah. So that you can actually review your pull requests right in the context of the tools that you're used to. But this is such a cool demo like this is something that got cut from the keynote that I'm so excited about that I had to show it today. Okay. So so folks on Twitch make sure you get your get your clips ready so we can get some clips of this we can share out to Twitter and like that. All right. So this is this is the the normal GitHub extension that you can get on the extension gallery today. Okay. Plus a little magic that we're of some a preview of something that we're working on. Okay. I'll tell you when the magic shows up but if I go to all you can see all of the pull requests that are awaiting my review. All right. So that's that's pretty cool. Time to get back to the office. I can yeah I know right they need me but I can go ahead and inspect one of these pull requests and you can see that it brings the context of all of that locally into my machine and so you can see in my solution explorer I actually have nothing loaded. This is all actually being hosted in a cloud context. So I can go ahead and look at one of these files here and you can see that I get all of the code colorization that I'm expecting but not only do I get that I also get like hover tips for example over the over the data types and I get the the documentation. I also get the analyzer. So I have ES lint running here that's a static analyzer that's telling me that this is assigned to a value but variable but has never been used right. So that's that's kind of that's kind of cool. So the other thing that I can do is look at let's go look at this other one. Oh I forgot to show you something here which is that if I do a find all references on this you can see that it's going to find all references of that grid legend thing not just for those those mentions that are in this file but also for mentions of grid legends that are in files that aren't in this PR. Okay so I mean you're you're blowing my mind here because these are things that I struggle with when I look at those GitHub PRs and I'm looking at just the text in the web browser now I've got the full context of everything and I can really explore and you can use your hot keys and you see the diff view and yeah exactly so that's super super cool. So let's let's take a look at the other one. So this this particular pull request it looks like is introducing a new dependency on an npm package that I'm unfamiliar with right okay and so so anytime that anybody introduces a new dependency I really want to understand more about what that dependency is doing right and so so what I'm going to do is do a go to definition on one of the types that's defined in this new npm package right okay okay but this npm package is just picked up as an npm package it's not the source isn't included in my in my pull request yeah I don't I don't see a package just on there that will point me to it and it's not even in my project it's just an npm depend right okay so what do you think's going to happen if I do a go to definition okay it's not going to choke and say oh I don't know where this is or a file might found type right I mean that would be like the obvious thing another thing that it could do is have a minified typescript minified JavaScript file which would be like what would happen in deployment stop it yeah but but what's actually going to happen if I do go to definition here is it's going to observable.ts this is the actual source code of the npm package on github it found it yeah it found it okay so basically what this is doing is it's understanding the dependency that you have yeah and mapping it back back to the actual source repo where that sources is defined oh my gosh so this is indexing all of the code on on github yeah so that you can you can start to diverse these things wow now does that work with just javascript and typescript or will it work with my .NET code also it's going to work for everything so yeah so one of the things that's super cool here is not only can I do a one hop into observable.ts but I could also go to another one do another go to definition on another file and this is now opening yet another file that's defined in in github wow yeah now martz is asking in the chat room does this work for azure devops prs as well not just the dependency look up at the yeah so we actually have a great extension that's very similar for azure devops prs that also allow you to do the review terrific oh my gosh and then can I do this from the team explorer window well so this so the github one shows up in the github window gotcha itself but the but the azure devops one I think shows up in the team explore yeah great thanks for the question martz and then I've got one more question that I want to come to hear from zamcat we saw live live share does that also work with xamarin projects yeah it sure does really yeah it does the one part that we didn't show with client applications one of the challenges is that imagine that Amanda sitting in I don't know redmond and I'm sitting in Vegas sure how do we debug this can we see the screen right because that's really important yeah the one part that we didn't show today that's right is that live share will also allow you to like sort of cast your screen or the application okay so I've seen that with ASP net core where I can share my server but you could do it with a WPF application now so what we weren't able to set up uni's bits today but Hanselman showed it in his keynote if I have a WPF for windforms application on my windows machine and I'm I'm doing a I've shared session with somebody on a Mac machine or a new Ubuntu machine they can also see the app oh man so that'll eventually come for mobile apps as well absolutely it just traffics the UI over to to the Mac right I mean it's just the h-wind right in this case it could be the emulator that we send across oh my gosh I am so looking forward to Visual Studio 2019 and these updates I gotta get it installed now we have a download link for that moderators can you do me a favor we know the download link can you paste that link into the chat room so that all our friends out there are watching they can go and download the latest updates for VS for Mac in Visual Studio 2019 preview one awesome and Amanda I've learned a ton here now I'm gonna start using Visual Studio 2019 on my next stream I gotta get that installed and up and running but I'm gonna start walking over here I'm gonna head over to the other set because Ed Thompson's over here and he's gonna help me with something else on my stream all right awesome thank you thank you so much all right so