All language subtitles for 01-Welcome to Visual Studio 2022 – by Scott Hanselman and friends (720p_30fps_H264-128kbit_AAC)

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish Download
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,080 --> 00:00:04,080 hey friends it's the visual studio 2022 2 00:00:02,638 --> 00:00:05,679 launch we're still here we're working 3 00:00:04,080 --> 00:00:07,359 remotely thousands of you have 4 00:00:05,679 --> 00:00:09,279 downloaded the preview of visual studio 5 00:00:07,359 --> 00:00:10,960 2022 but today we're going to launch it 6 00:00:09,279 --> 00:00:12,320 for the millions of developers out there 7 00:00:10,960 --> 00:00:14,639 that are excited about making great 8 00:00:12,320 --> 00:00:16,800 stuff with visual studio we've got just 9 00:00:14,638 --> 00:00:18,399 demos no powerpoints we'll also talk to 10 00:00:16,800 --> 00:00:20,480 the developers that made visual studio 11 00:00:18,399 --> 00:00:22,239 2022 a reality we're going to have a 12 00:00:20,480 --> 00:00:23,760 live chat going on so be sure to ask 13 00:00:22,239 --> 00:00:25,358 your questions the entire team's going 14 00:00:23,760 --> 00:00:26,960 to be available to answer them now 15 00:00:25,359 --> 00:00:28,800 before we show you the awesomeness of 16 00:00:26,960 --> 00:00:30,480 visual studio 2022 let's talk to our 17 00:00:28,800 --> 00:00:32,079 first guest today who leads the product 18 00:00:30,480 --> 00:00:34,000 team for the developer division we're 19 00:00:32,079 --> 00:00:36,000 going to hear from her how visual studio 20 00:00:34,000 --> 00:00:38,320 2022 came to fruition and what the 21 00:00:36,000 --> 00:00:41,439 vision is for the future visual studio 22 00:00:38,320 --> 00:00:43,439 hey amanda thanks scott how's it going 23 00:00:41,439 --> 00:00:45,359 i'm glad to be here yeah so you're the 24 00:00:43,439 --> 00:00:47,519 cvp for the developer division in visual 25 00:00:45,359 --> 00:00:50,000 studio and you've seen lots of releases 26 00:00:47,520 --> 00:00:51,280 for visual studio over the course of 27 00:00:50,000 --> 00:00:52,878 your time here uh you know there's 28 00:00:51,280 --> 00:00:54,160 thousands of developers that are 29 00:00:52,878 --> 00:00:56,159 watching and learning today about what 30 00:00:54,159 --> 00:00:58,078 visual studio 2022 is all about like 31 00:00:56,159 --> 00:01:00,718 what's the vision and why should we care 32 00:00:58,079 --> 00:01:02,399 about 2022 well i mean every release of 33 00:01:00,719 --> 00:01:03,920 visual studio is a moment it's so 34 00:01:02,399 --> 00:01:06,400 exciting to actually make sure that 35 00:01:03,920 --> 00:01:08,320 every developer's day is more joyful and 36 00:01:06,400 --> 00:01:09,600 we really try to make sure that every 37 00:01:08,319 --> 00:01:11,519 version of visual studio is more 38 00:01:09,599 --> 00:01:12,478 performant it's more reliable and this 39 00:01:11,519 --> 00:01:15,519 one is 40 00:01:12,478 --> 00:01:17,359 but this one it really is a very special 41 00:01:15,519 --> 00:01:19,200 release of visual studio it's the first 42 00:01:17,359 --> 00:01:21,680 version that's been re-architected to be 43 00:01:19,200 --> 00:01:23,520 64-bit natively and so that means that 44 00:01:21,680 --> 00:01:25,118 like for a lot of developers who have 45 00:01:23,519 --> 00:01:27,519 large-scale solutions they're going to 46 00:01:25,118 --> 00:01:29,280 experience more performance fewer out of 47 00:01:27,519 --> 00:01:31,359 memory exceptions things like that 48 00:01:29,280 --> 00:01:33,118 better reliability overall the other 49 00:01:31,359 --> 00:01:35,680 thing is we always try to improve that 50 00:01:33,118 --> 00:01:36,879 edit debug cycle and so a lot of the 51 00:01:35,680 --> 00:01:38,880 improvements that we've made with 52 00:01:36,879 --> 00:01:40,640 intellicode bringing ai 53 00:01:38,879 --> 00:01:43,199 to actually help you write the right 54 00:01:40,640 --> 00:01:45,118 line of code that makes every character 55 00:01:43,200 --> 00:01:46,799 you write more productive and and more 56 00:01:45,118 --> 00:01:48,959 on point and then the last thing is 57 00:01:46,799 --> 00:01:52,000 we've really improved the cycle to do 58 00:01:48,959 --> 00:01:53,599 debugging with hot reload so that you 59 00:01:52,000 --> 00:01:55,680 don't need to stop 60 00:01:53,599 --> 00:01:56,640 to be able to see the change in the 61 00:01:55,680 --> 00:01:58,399 application that you're writing that's 62 00:01:56,640 --> 00:02:00,079 so good that developers inner loop make 63 00:01:58,399 --> 00:02:01,519 a change see the change make the change 64 00:02:00,078 --> 00:02:02,559 see the change right exactly don't you 65 00:02:01,519 --> 00:02:04,718 want to see it as soon as you thought of 66 00:02:02,560 --> 00:02:05,840 it that's so cool so we could go on 67 00:02:04,718 --> 00:02:06,879 about this and we could do talking 68 00:02:05,840 --> 00:02:07,920 points and we could do marketing but 69 00:02:06,879 --> 00:02:09,199 what we're going to do instead is we're 70 00:02:07,920 --> 00:02:10,399 going to show demos and you've brought 71 00:02:09,199 --> 00:02:11,919 some folks from the team to show me 72 00:02:10,399 --> 00:02:14,080 those cool demos yeah we have some 73 00:02:11,919 --> 00:02:15,359 amazing demos and some awesome people 74 00:02:14,080 --> 00:02:16,879 that have been on the team working on 75 00:02:15,360 --> 00:02:18,080 these features firsthand that are going 76 00:02:16,878 --> 00:02:20,159 to be talking about them all right 77 00:02:18,080 --> 00:02:20,840 fantastic so who's up first i think we 78 00:02:20,159 --> 00:02:23,199 have 79 00:02:20,840 --> 00:02:25,520 kaneka konika works on the visual studio 80 00:02:23,199 --> 00:02:26,878 team on performance 81 00:02:25,520 --> 00:02:28,400 welcome you're going to talk to us today 82 00:02:26,878 --> 00:02:30,318 about visual studio and what it brings 83 00:02:28,400 --> 00:02:32,640 for developers performance and 84 00:02:30,318 --> 00:02:34,479 scalability you bet and i got a demo we 85 00:02:32,639 --> 00:02:36,479 can roll all right let's roll the clip 86 00:02:34,479 --> 00:02:38,159 so we're looking at a large solution you 87 00:02:36,479 --> 00:02:39,598 know when you open those solutions 88 00:02:38,159 --> 00:02:41,280 you'll go get coffee so that visual 89 00:02:39,598 --> 00:02:43,439 studio can settle down well we're trying 90 00:02:41,280 --> 00:02:46,479 to make that a thing of the past so this 91 00:02:43,439 --> 00:02:48,239 is a 176 project solution orchard core 92 00:02:46,479 --> 00:02:50,159 on.net six 93 00:02:48,239 --> 00:02:52,159 and you can see how quickly the solution 94 00:02:50,159 --> 00:02:54,318 loads everything's interactive all your 95 00:02:52,159 --> 00:02:56,159 navigational elements are right there 96 00:02:54,318 --> 00:02:57,759 look at solution explorer you can 97 00:02:56,159 --> 00:02:58,799 interact with almost all elements of 98 00:02:57,759 --> 00:03:00,639 that 99 00:02:58,800 --> 00:03:02,719 the other navigational element search is 100 00:03:00,639 --> 00:03:04,238 also there you can search for your files 101 00:03:02,719 --> 00:03:06,318 look at how quickly the results are 102 00:03:04,239 --> 00:03:08,400 there click through it you can scroll 103 00:03:06,318 --> 00:03:09,759 through the file everything's ready you 104 00:03:08,400 --> 00:03:11,760 can interact with it even as 105 00:03:09,759 --> 00:03:13,359 colorization comes through yeah this is 106 00:03:11,759 --> 00:03:15,280 all real time we recorded this together 107 00:03:13,360 --> 00:03:18,480 on my computer exactly this has not been 108 00:03:15,280 --> 00:03:20,640 sped up no no this is exactly real time 109 00:03:18,479 --> 00:03:22,079 we made the change and we are going to 110 00:03:20,639 --> 00:03:24,238 not build a solution to make sure we 111 00:03:22,080 --> 00:03:26,000 don't break anything and we made a lot 112 00:03:24,239 --> 00:03:27,759 of changes to incremental build first 113 00:03:26,000 --> 00:03:29,280 off it doesn't assume just after you've 114 00:03:27,759 --> 00:03:31,518 opened solution that everything is out 115 00:03:29,280 --> 00:03:33,919 of date but only build things that it's 116 00:03:31,519 --> 00:03:36,400 supposed to secondly fast up-to-date 117 00:03:33,919 --> 00:03:38,318 tracks four times faster which means all 118 00:03:36,400 --> 00:03:40,239 your bills regardless of where they've 119 00:03:38,318 --> 00:03:42,399 been triggered for or faster so look at 120 00:03:40,239 --> 00:03:43,599 that only seven solutions that needed to 121 00:03:42,400 --> 00:03:45,840 be built 122 00:03:43,598 --> 00:03:48,238 we'll take a quick look at test explorer 123 00:03:45,840 --> 00:03:50,799 we broke some test scott 124 00:03:48,239 --> 00:03:52,878 so we're going to go ahead and make some 125 00:03:50,799 --> 00:03:54,080 changes to fix that 126 00:03:52,878 --> 00:03:55,759 so it looks like we'll revert that 127 00:03:54,080 --> 00:03:58,719 because that was probably getting ahead 128 00:03:55,759 --> 00:04:00,959 of ourselves yes it was so that and then 129 00:03:58,719 --> 00:04:02,639 we're going to go ahead run those tests 130 00:04:00,959 --> 00:04:04,319 again 131 00:04:02,639 --> 00:04:05,518 look how fast the solution explorer just 132 00:04:04,318 --> 00:04:08,238 got you right where you wanted to go 133 00:04:05,519 --> 00:04:10,480 exactly that search has been optimized 134 00:04:08,239 --> 00:04:12,480 and improved and the other thing is look 135 00:04:10,479 --> 00:04:14,000 at the unit tests being run it's hot 136 00:04:12,479 --> 00:04:15,919 reloading them so it's not building 137 00:04:14,000 --> 00:04:17,600 everything again oh wow so you didn't do 138 00:04:15,919 --> 00:04:19,759 a rebuild right there it hot reloaded 139 00:04:17,600 --> 00:04:22,160 the test and ran it and now we fixed 140 00:04:19,759 --> 00:04:25,439 them exactly and so now that our fix is 141 00:04:22,160 --> 00:04:27,840 done we can just close the solution and 142 00:04:25,439 --> 00:04:30,079 on our way we go that's cool responsive 143 00:04:27,839 --> 00:04:32,560 at every moment exactly 144 00:04:30,079 --> 00:04:35,758 faster and responsive wow visual studio 145 00:04:32,560 --> 00:04:37,199 64-bit who would have thunk it fantastic 146 00:04:35,759 --> 00:04:38,879 actually let's bring anson and he's a 147 00:04:37,199 --> 00:04:40,720 partner architect that works on visual 148 00:04:38,879 --> 00:04:43,519 studio and was instrumental in moving it 149 00:04:40,720 --> 00:04:46,000 to 64-bit hey anson hey scott thanks for 150 00:04:43,519 --> 00:04:48,560 hanging out so 64-bit 151 00:04:46,000 --> 00:04:50,720 why didn't you do it before a good 152 00:04:48,560 --> 00:04:52,399 softball question to start 153 00:04:50,720 --> 00:04:54,160 and you asked it very uh emphatically 154 00:04:52,399 --> 00:04:56,239 and i think that's the same uh that 155 00:04:54,160 --> 00:04:58,000 users are asking like why why why now 156 00:04:56,240 --> 00:04:59,280 and why not before and the reality is 157 00:04:58,000 --> 00:05:01,199 that there are several considerations 158 00:04:59,279 --> 00:05:02,879 that we've had over the course of of you 159 00:05:01,199 --> 00:05:05,360 know basically 64-bit we've thought 160 00:05:02,879 --> 00:05:07,519 about it for a long time and really 161 00:05:05,360 --> 00:05:11,199 one of them was kind of around usage 162 00:05:07,519 --> 00:05:12,240 which is how many folks had uh 64-bit 163 00:05:11,199 --> 00:05:13,840 machines they were installing visual 164 00:05:12,240 --> 00:05:15,519 studio on and in particular how many 165 00:05:13,839 --> 00:05:17,279 people were still installing those on 166 00:05:15,519 --> 00:05:19,279 32-bit os's 167 00:05:17,279 --> 00:05:21,758 and the thing that was interesting to us 168 00:05:19,279 --> 00:05:23,359 is that even though 64-bit hardware has 169 00:05:21,759 --> 00:05:24,879 been around for a really long time we 170 00:05:23,360 --> 00:05:28,319 found that a number of people were still 171 00:05:24,879 --> 00:05:30,079 installing visual studio on 32-bit vm 172 00:05:28,319 --> 00:05:31,759 uh and so that surprised us and that was 173 00:05:30,079 --> 00:05:33,680 a reason that we were like well maybe we 174 00:05:31,759 --> 00:05:35,199 shouldn't pull that trigger right away 175 00:05:33,680 --> 00:05:36,560 well i'm thinking about this as a person 176 00:05:35,199 --> 00:05:38,639 who lives in the ecosystem i've made 177 00:05:36,560 --> 00:05:40,319 extensions of my own if you release two 178 00:05:38,639 --> 00:05:41,600 then i'm going to release two but then 179 00:05:40,319 --> 00:05:43,199 if you go to 64-bit are you going to 180 00:05:41,600 --> 00:05:44,960 leave me behind that's concerning as 181 00:05:43,199 --> 00:05:46,960 well yeah that's an awesome point and 182 00:05:44,959 --> 00:05:48,719 that really leads us in quite nicely to 183 00:05:46,959 --> 00:05:51,279 sort of a second consideration which was 184 00:05:48,720 --> 00:05:53,600 that ecosystem and extensibility area 185 00:05:51,279 --> 00:05:55,599 now one of the things that was good 186 00:05:53,600 --> 00:05:57,680 um is we've made some changes in the 187 00:05:55,600 --> 00:06:00,160 past couple releases that have required 188 00:05:57,680 --> 00:06:01,680 uh extension authors to to kind of react 189 00:06:00,160 --> 00:06:03,520 and update uh 190 00:06:01,680 --> 00:06:05,759 to the changes that we made for both 191 00:06:03,519 --> 00:06:07,839 performance and reliability reasons and 192 00:06:05,759 --> 00:06:09,360 they have done it so the extension 193 00:06:07,839 --> 00:06:11,198 authors have really done just an 194 00:06:09,360 --> 00:06:12,879 absolutely amazing job doing kind of 195 00:06:11,199 --> 00:06:15,199 that adaptation so it gives a lot of 196 00:06:12,879 --> 00:06:16,639 confidence that you know moving forward 197 00:06:15,199 --> 00:06:18,879 uh they would do the same thing for 198 00:06:16,639 --> 00:06:21,120 64-bit and we have seen that with with 199 00:06:18,879 --> 00:06:22,639 2022 right we've also got things like 200 00:06:21,120 --> 00:06:24,399 net and dot-net core that have enabled 201 00:06:22,639 --> 00:06:25,918 us to do things as any cpu so some 202 00:06:24,399 --> 00:06:27,198 people could move their 32-bit things 203 00:06:25,918 --> 00:06:29,198 forward and not have to worry about 204 00:06:27,199 --> 00:06:30,879 anything it just worked that is uh yeah 205 00:06:29,199 --> 00:06:32,400 i mean both on the c plus plus i really 206 00:06:30,879 --> 00:06:34,240 can write portable code but on the you 207 00:06:32,399 --> 00:06:36,159 know on the don side we did see an 208 00:06:34,240 --> 00:06:37,840 increase in the percentage of extensions 209 00:06:36,160 --> 00:06:40,720 within the marketplace that we're doing 210 00:06:37,839 --> 00:06:43,038 exactly that right and and making it so 211 00:06:40,720 --> 00:06:44,479 that that transition was actually you 212 00:06:43,038 --> 00:06:45,839 know fairly straightforward for those 213 00:06:44,478 --> 00:06:47,519 folks so it seems like this was the 214 00:06:45,839 --> 00:06:48,799 moment it was a convergence of a number 215 00:06:47,519 --> 00:06:50,879 of things that happened and made this 216 00:06:48,800 --> 00:06:52,319 possible and then up leveling from that 217 00:06:50,879 --> 00:06:53,839 what can we do with all this new power 218 00:06:52,319 --> 00:06:56,080 and all this new memory address space 219 00:06:53,839 --> 00:06:57,839 right scott we have the architect of 220 00:06:56,079 --> 00:07:00,079 visual studio here let's geek out for a 221 00:06:57,839 --> 00:07:01,359 second okay my bad my bad 222 00:07:00,079 --> 00:07:02,959 what are some things technically that 223 00:07:01,360 --> 00:07:04,319 you had to do to make it work in 32-bit 224 00:07:02,959 --> 00:07:06,399 that now you can think about differently 225 00:07:04,319 --> 00:07:09,280 in the context of 64-bit that's a great 226 00:07:06,399 --> 00:07:11,598 question it allows us to actually do a 227 00:07:09,279 --> 00:07:14,079 two major things that i'll mention one 228 00:07:11,598 --> 00:07:16,319 which was that we used to induce gcs 229 00:07:14,079 --> 00:07:17,598 during uh times when we knew we had an 230 00:07:16,319 --> 00:07:18,800 opportunity to collect a bunch of memory 231 00:07:17,598 --> 00:07:20,319 we don't have to do that anymore and 232 00:07:18,800 --> 00:07:21,919 perfect forcing garbage collection we 233 00:07:20,319 --> 00:07:23,280 used to force garbage collection like 234 00:07:21,918 --> 00:07:25,918 during startup and now we don't have to 235 00:07:23,279 --> 00:07:27,758 do it and then secondly uh we actually 236 00:07:25,918 --> 00:07:30,879 used to do a thing called partial engine 237 00:07:27,759 --> 00:07:33,120 where we only pre-jitted a small section 238 00:07:30,879 --> 00:07:34,879 of code that we knew users would hit 239 00:07:33,120 --> 00:07:36,079 and now we can actually engine quite a 240 00:07:34,879 --> 00:07:37,839 bit more 241 00:07:36,079 --> 00:07:40,159 and increase performance okay so you're 242 00:07:37,839 --> 00:07:42,719 doing native image generation engine and 243 00:07:40,160 --> 00:07:43,759 just in time compilation more now 244 00:07:42,720 --> 00:07:46,080 because you've got more room to move 245 00:07:43,759 --> 00:07:47,520 with 64-bit that's exactly right okay so 246 00:07:46,079 --> 00:07:49,680 performance is really a focus with 247 00:07:47,519 --> 00:07:51,439 visual studio 2022 performance at the 248 00:07:49,680 --> 00:07:52,959 low level and then also at the at the 249 00:07:51,439 --> 00:07:54,879 user level like what i get to do it my 250 00:07:52,959 --> 00:07:56,799 fingers do more now yeah for sure i mean 251 00:07:54,879 --> 00:07:59,360 you definitely want to go from your idea 252 00:07:56,800 --> 00:08:02,079 to the code as quickly as possible so 253 00:07:59,360 --> 00:08:04,240 how can we make every line of code 254 00:08:02,079 --> 00:08:06,800 faster to write actually we've got an ai 255 00:08:04,240 --> 00:08:08,639 power demo that we brought a clip uh on 256 00:08:06,800 --> 00:08:09,759 intellicode that's right you want to 257 00:08:08,639 --> 00:08:11,598 take a look let's take a look at that 258 00:08:09,759 --> 00:08:13,439 alright so here we are in an asp.net 259 00:08:11,598 --> 00:08:14,959 application right but what matters is 260 00:08:13,439 --> 00:08:17,120 the code that you can write and how 261 00:08:14,959 --> 00:08:19,038 quickly you can go from that idea to 262 00:08:17,120 --> 00:08:20,959 writing the code in the editor and so 263 00:08:19,038 --> 00:08:22,560 everybody's familiar with you know you 264 00:08:20,959 --> 00:08:25,038 write a little bit of code and then you 265 00:08:22,560 --> 00:08:27,360 see intellisense come up but in this 266 00:08:25,038 --> 00:08:29,439 case what's going to happen is you're 267 00:08:27,360 --> 00:08:31,598 not only going to see all the ways that 268 00:08:29,439 --> 00:08:33,838 it can complete that's just kind of the 269 00:08:31,598 --> 00:08:35,759 alphabetical list it doesn't really give 270 00:08:33,839 --> 00:08:36,800 you guidance as to what you should be 271 00:08:35,759 --> 00:08:38,718 writing 272 00:08:36,799 --> 00:08:40,319 what you're going to see here is that as 273 00:08:38,719 --> 00:08:43,839 you write the code it's actually going 274 00:08:40,320 --> 00:08:45,760 to make a suggestion for the entire line 275 00:08:43,839 --> 00:08:48,000 that you might want to complete 276 00:08:45,759 --> 00:08:49,600 right so that's basically taking you 277 00:08:48,000 --> 00:08:52,000 know in that case it looks like what 10 278 00:08:49,600 --> 00:08:54,320 characters basically eliminating 10 279 00:08:52,000 --> 00:08:56,320 characters that you might need to write 280 00:08:54,320 --> 00:08:57,920 wow it's multiplying my power well i 281 00:08:56,320 --> 00:08:59,680 think that's what's so key about this 282 00:08:57,919 --> 00:09:01,439 and what's so awesome is you know 283 00:08:59,679 --> 00:09:04,000 writing code actually becomes this 284 00:09:01,440 --> 00:09:06,160 exercise of hitting tab because all i 285 00:09:04,000 --> 00:09:08,480 need to do to accept that whole line of 286 00:09:06,159 --> 00:09:09,360 code is to hit tab tab to get the entire 287 00:09:08,480 --> 00:09:11,600 line 288 00:09:09,360 --> 00:09:13,440 and and so it'll just complete for you 289 00:09:11,600 --> 00:09:15,120 but how does it know 290 00:09:13,440 --> 00:09:16,800 well it's actually based on machine 291 00:09:15,120 --> 00:09:18,799 learning models so what we've done is 292 00:09:16,799 --> 00:09:20,559 we've taken a look at a lot of you know 293 00:09:18,799 --> 00:09:22,958 public code 294 00:09:20,559 --> 00:09:25,359 and inferred based on that a machine 295 00:09:22,958 --> 00:09:27,599 learning model that we can use to have 296 00:09:25,360 --> 00:09:29,200 predictive guidance for you as you're 297 00:09:27,600 --> 00:09:30,399 writing the line of code what is the 298 00:09:29,200 --> 00:09:32,160 most likely 299 00:09:30,399 --> 00:09:33,759 next line of code you're going to write 300 00:09:32,159 --> 00:09:36,240 and so it's basically looking at a 301 00:09:33,759 --> 00:09:39,039 combination of all of the code that 302 00:09:36,240 --> 00:09:41,120 we've trained this model on top of 303 00:09:39,039 --> 00:09:42,719 combined with the code that you've 304 00:09:41,120 --> 00:09:44,720 already written in the application thus 305 00:09:42,720 --> 00:09:46,240 far wow so it's not your machine 306 00:09:44,720 --> 00:09:48,560 learning model it's yours plus mine 307 00:09:46,240 --> 00:09:50,159 that's specific to my code well so what 308 00:09:48,559 --> 00:09:52,239 it really is doing is it's basically 309 00:09:50,159 --> 00:09:54,799 created a machine learning model that is 310 00:09:52,240 --> 00:09:57,600 generic that is based on 311 00:09:54,799 --> 00:10:01,039 what everybody has written code about in 312 00:09:57,600 --> 00:10:03,200 asp.net as an example right and but then 313 00:10:01,039 --> 00:10:05,039 it's taking the that and combining it 314 00:10:03,200 --> 00:10:07,519 with the code that i've written thus far 315 00:10:05,039 --> 00:10:08,879 in this in this program oh wow so one of 316 00:10:07,519 --> 00:10:10,959 the things that's so important about 317 00:10:08,879 --> 00:10:13,039 this is it's not just 318 00:10:10,958 --> 00:10:14,799 how fast can you write the line of code 319 00:10:13,039 --> 00:10:16,879 you know that you can hit tabs and you 320 00:10:14,799 --> 00:10:18,958 don't need to do all the typey typing it 321 00:10:16,879 --> 00:10:21,039 can actually give you an indication of 322 00:10:18,958 --> 00:10:23,359 what is the right line of code to write 323 00:10:21,039 --> 00:10:25,278 so for example we have this add password 324 00:10:23,360 --> 00:10:28,320 results and you know in this case it's 325 00:10:25,278 --> 00:10:29,360 an async call you say await but also it 326 00:10:28,320 --> 00:10:31,680 can tell you what are the right 327 00:10:29,360 --> 00:10:33,440 parameters to pass into the method 328 00:10:31,679 --> 00:10:35,199 that's amazing so this is really going 329 00:10:33,440 --> 00:10:36,720 to make my life editing code a lot 330 00:10:35,200 --> 00:10:38,640 easier hopefully i'll be able to see the 331 00:10:36,720 --> 00:10:40,800 results very quickly too yeah i think 332 00:10:38,639 --> 00:10:42,399 you're going to become a 10x developer 333 00:10:40,799 --> 00:10:44,078 i don't know about that i would be i'd 334 00:10:42,399 --> 00:10:45,919 be happy to be a 1x developer at this 335 00:10:44,078 --> 00:10:48,399 point so now what you can see here is 336 00:10:45,919 --> 00:10:50,000 that it actually can say var add 337 00:10:48,399 --> 00:10:52,000 password results and it can give you the 338 00:10:50,000 --> 00:10:54,958 completion of the entire 339 00:10:52,000 --> 00:10:56,720 method including the the you know 340 00:10:54,958 --> 00:10:58,479 arguments that you might want to pass in 341 00:10:56,720 --> 00:11:00,480 to that line of code and it's super 342 00:10:58,480 --> 00:11:02,000 useful for learning new apis 343 00:11:00,480 --> 00:11:03,519 because it also means that it can 344 00:11:02,000 --> 00:11:05,839 actually give you guidance as to what's 345 00:11:03,519 --> 00:11:07,440 the invocation order for the apis that 346 00:11:05,839 --> 00:11:08,950 you may need to call it seems to be 347 00:11:07,440 --> 00:11:10,560 getting smarter and smarter 348 00:11:08,950 --> 00:11:12,240 [Laughter] 349 00:11:10,559 --> 00:11:13,919 well i mean i certainly think that 350 00:11:12,240 --> 00:11:15,919 that's what everybody will experience 351 00:11:13,919 --> 00:11:18,399 that's a really amazing innovation so 352 00:11:15,919 --> 00:11:20,319 this this aisle runs locally yeah in 353 00:11:18,399 --> 00:11:22,639 fact even if you're coding on an 354 00:11:20,320 --> 00:11:24,160 airplane with spotty wi-fi you'll still 355 00:11:22,639 --> 00:11:27,679 get all of this guidance as your writing 356 00:11:24,159 --> 00:11:29,919 code in telecode and airplane mode 357 00:11:27,679 --> 00:11:31,199 very cool but actually we've got another 358 00:11:29,919 --> 00:11:33,039 guest to come in and show us what 359 00:11:31,200 --> 00:11:34,959 happens after you've edited your code 360 00:11:33,039 --> 00:11:36,719 let's bring in erica 361 00:11:34,958 --> 00:11:38,399 erica is a program manager on the c plus 362 00:11:36,720 --> 00:11:40,480 plus team 363 00:11:38,399 --> 00:11:42,399 hey scott thanks for hanging out thanks 364 00:11:40,480 --> 00:11:44,720 for having me so we have explored 365 00:11:42,399 --> 00:11:46,320 editing and we've seen intellicode uh 366 00:11:44,720 --> 00:11:48,720 you know but the next big area in visual 367 00:11:46,320 --> 00:11:50,560 studio 2022 is hot reload and we're 368 00:11:48,720 --> 00:11:52,399 going to hot reload all the things all 369 00:11:50,559 --> 00:11:54,000 the things now i'm a net person i'm 370 00:11:52,399 --> 00:11:55,440 familiar with.net so i get how that 371 00:11:54,000 --> 00:11:57,200 works but honestly 372 00:11:55,440 --> 00:11:58,639 i haven't done c plus plus in many years 373 00:11:57,200 --> 00:12:00,800 and i know that you are a huge c plus 374 00:11:58,639 --> 00:12:02,079 plus fan yes but your team is doing some 375 00:12:00,799 --> 00:12:05,199 amazing stuff that i didn't think was 376 00:12:02,078 --> 00:12:06,719 possible yeah so hot reload applies to c 377 00:12:05,200 --> 00:12:07,920 plus i actually have a demo with me that 378 00:12:06,720 --> 00:12:10,480 we can walk through all right let's 379 00:12:07,919 --> 00:12:12,719 check it out all right 380 00:12:10,480 --> 00:12:15,120 so this is a bit fighter which is an 381 00:12:12,720 --> 00:12:17,920 open source cross-platform cmake project 382 00:12:15,120 --> 00:12:20,799 that's running locally on windows and in 383 00:12:17,919 --> 00:12:23,278 this game that blue little triangle is a 384 00:12:20,799 --> 00:12:26,479 ship and a ship has a shield which right 385 00:12:23,278 --> 00:12:28,720 now is expressed with that red circle 386 00:12:26,480 --> 00:12:30,800 if i wanted to make a design change to 387 00:12:28,720 --> 00:12:33,278 that shield i could change its 388 00:12:30,799 --> 00:12:35,919 appearance without setting a break point 389 00:12:33,278 --> 00:12:38,159 or restarting the game with hot reload 390 00:12:35,919 --> 00:12:39,919 so here i'm over in visual studio game 391 00:12:38,159 --> 00:12:42,078 is still running and i'm changing that 392 00:12:39,919 --> 00:12:44,719 shield from a circle to a star i'm 393 00:12:42,078 --> 00:12:46,479 changing the color from red to blue and 394 00:12:44,720 --> 00:12:49,040 whenever i'm done making my edits i just 395 00:12:46,480 --> 00:12:51,200 need to press that hot reload button to 396 00:12:49,039 --> 00:12:53,919 dynamically inject those changes into 397 00:12:51,200 --> 00:12:55,200 the game and see them realized in real 398 00:12:53,919 --> 00:12:57,439 time so it's exactly like you were 399 00:12:55,200 --> 00:12:58,800 saying earlier edit to the change edit 400 00:12:57,440 --> 00:13:01,760 see the change 401 00:12:58,799 --> 00:13:03,679 i made this change on the fly i didn't 402 00:13:01,759 --> 00:13:06,159 need to pause execution which can save 403 00:13:03,679 --> 00:13:07,919 you a ton of time between edits 404 00:13:06,159 --> 00:13:10,480 especially if you need your app in a 405 00:13:07,919 --> 00:13:11,439 very specific state in order to verify a 406 00:13:10,480 --> 00:13:12,720 change 407 00:13:11,440 --> 00:13:15,200 uh erica i'm trying to get my head 408 00:13:12,720 --> 00:13:17,120 around how that works it's pretty cool 409 00:13:15,200 --> 00:13:18,560 you guys this is amazing this is 410 00:13:17,120 --> 00:13:20,480 something that previously was really 411 00:13:18,559 --> 00:13:22,879 only available to web developers right 412 00:13:20,480 --> 00:13:24,639 web client developers creating web apps 413 00:13:22,879 --> 00:13:26,958 and now this is available for native 414 00:13:24,639 --> 00:13:28,560 developers writing c plus yeah and not 415 00:13:26,958 --> 00:13:30,719 just game developers all native 416 00:13:28,559 --> 00:13:32,799 applications can leverage this that is 417 00:13:30,720 --> 00:13:34,720 amazing hot reload all the things all 418 00:13:32,799 --> 00:13:37,039 the things so i'm gonna have to learn c 419 00:13:34,720 --> 00:13:39,278 plus plus again but i do really like my 420 00:13:37,039 --> 00:13:41,838 c sharp do i get hot reload also you're 421 00:13:39,278 --> 00:13:43,919 in luck you also get hot reload olia has 422 00:13:41,839 --> 00:13:45,600 an awesome demo for hot reload for net 423 00:13:43,919 --> 00:13:47,838 developers that we can roll now all 424 00:13:45,600 --> 00:13:50,639 right let's hear from alia 425 00:13:47,839 --> 00:13:52,959 scott i'm olia i work on dotnet desktop 426 00:13:50,639 --> 00:13:55,039 and let's dive into the demo let me open 427 00:13:52,958 --> 00:13:57,599 visual studio and show you new features 428 00:13:55,039 --> 00:13:59,919 in wpf and winforms i'm gonna build an 429 00:13:57,600 --> 00:14:02,480 application to track air quality in 430 00:13:59,919 --> 00:14:04,479 different cities and as usually i will 431 00:14:02,480 --> 00:14:06,959 have some shared code some business 432 00:14:04,480 --> 00:14:10,320 logic and i'll have different clients in 433 00:14:06,958 --> 00:14:12,479 my case i equally love winforms and wpf 434 00:14:10,320 --> 00:14:15,199 so i'm gonna build a client for each 435 00:14:12,480 --> 00:14:18,480 let's start with wpf i have some basic 436 00:14:15,198 --> 00:14:20,799 ui in place and i'm gonna generate the 437 00:14:18,480 --> 00:14:23,519 cities and corresponding air quality 438 00:14:20,799 --> 00:14:25,838 with the following data template okay 439 00:14:23,519 --> 00:14:28,560 here i'm gonna use data binding and the 440 00:14:25,839 --> 00:14:30,560 problem is i cannot see how my data will 441 00:14:28,559 --> 00:14:33,119 look like in the app here in the 442 00:14:30,559 --> 00:14:35,838 designer for that we have a new feature 443 00:14:33,120 --> 00:14:38,399 called design time data design time data 444 00:14:35,839 --> 00:14:39,920 allows you to mock any property and set 445 00:14:38,399 --> 00:14:42,879 the values that would be shown 446 00:14:39,919 --> 00:14:46,078 specifically in the designer so by 447 00:14:42,879 --> 00:14:49,278 adding d column to any xaml property 448 00:14:46,078 --> 00:14:52,719 you can get values in your designer like 449 00:14:49,278 --> 00:14:54,958 i just did perfect i have my data i see 450 00:14:52,720 --> 00:14:56,879 how it will look like i want to make 451 00:14:54,958 --> 00:14:58,399 minor tweaks for example i want to 452 00:14:56,879 --> 00:15:00,240 change the font of that 453 00:14:58,399 --> 00:15:02,958 here's another new feature we have 454 00:15:00,240 --> 00:15:06,000 called quick actions by extending light 455 00:15:02,958 --> 00:15:08,399 bulb i can change fonts 456 00:15:06,000 --> 00:15:10,958 colors anything i want with just one 457 00:15:08,399 --> 00:15:13,120 click perfect i'm happy with how my 458 00:15:10,958 --> 00:15:15,679 application looks like and i'm gonna run 459 00:15:13,120 --> 00:15:18,799 it let's assume i developed winforms 460 00:15:15,679 --> 00:15:22,239 application behind the scene and i have 461 00:15:18,799 --> 00:15:25,120 my both winforms and wpf applications 462 00:15:22,240 --> 00:15:27,919 but something is wrong with my wpf let 463 00:15:25,120 --> 00:15:30,639 me debug my app while it's running using 464 00:15:27,919 --> 00:15:32,479 the feature called hot reload and for 465 00:15:30,639 --> 00:15:35,360 that i'm going to use another new 466 00:15:32,480 --> 00:15:38,639 feature called xaml live preview xaml 467 00:15:35,360 --> 00:15:41,600 live preview allows me to see my running 468 00:15:38,639 --> 00:15:43,440 application inside visual studio so i 469 00:15:41,600 --> 00:15:46,399 don't need to switch back and forth 470 00:15:43,440 --> 00:15:48,880 between visual studio and my running app 471 00:15:46,399 --> 00:15:52,000 not only that but it also has great 472 00:15:48,879 --> 00:15:54,559 tooling for pixel perfect ui i can add 473 00:15:52,000 --> 00:15:57,519 rulers i can measure distances i can 474 00:15:54,559 --> 00:16:01,359 select controls and all that fun stuff 475 00:15:57,519 --> 00:16:04,000 okay let me look at my item control okay 476 00:16:01,360 --> 00:16:06,879 and here i see that i forgot to specify 477 00:16:04,000 --> 00:16:09,039 item source so i'm gonna quickly fix it 478 00:16:06,879 --> 00:16:10,480 and there you go i see that my 479 00:16:09,039 --> 00:16:14,159 application 480 00:16:10,480 --> 00:16:16,399 is fixed while it was running right away 481 00:16:14,159 --> 00:16:19,120 great i think i'm happy with how 482 00:16:16,399 --> 00:16:22,240 everything looks like except one part i 483 00:16:19,120 --> 00:16:23,278 noticed that cities here are all los 484 00:16:22,240 --> 00:16:26,079 angeles 485 00:16:23,278 --> 00:16:28,958 that means i have an issue in my data 486 00:16:26,078 --> 00:16:31,919 logic let me go ahead and fix that and 487 00:16:28,958 --> 00:16:34,799 my winforms and wpf applications are 488 00:16:31,919 --> 00:16:37,519 still running yep i forgot some test 489 00:16:34,799 --> 00:16:40,479 code right here so i'm gonna do that i'm 490 00:16:37,519 --> 00:16:43,600 gonna save it and let me show you one 491 00:16:40,480 --> 00:16:46,879 new feature we have in hot reload menu 492 00:16:43,600 --> 00:16:49,839 we have hot reload on save so now i just 493 00:16:46,879 --> 00:16:53,039 saved my changes i'm gonna go back to my 494 00:16:49,839 --> 00:16:54,560 applications hit refresh and i have real 495 00:16:53,039 --> 00:16:57,198 cities here 496 00:16:54,559 --> 00:16:59,838 by the way.net hot reload works even 497 00:16:57,198 --> 00:17:01,679 without the debugger my winforms app was 498 00:16:59,839 --> 00:17:04,558 running without the debugger and hot 499 00:17:01,679 --> 00:17:06,480 reload still worked that's it for me 500 00:17:04,558 --> 00:17:08,160 thank you so much wow i was actually 501 00:17:06,480 --> 00:17:10,318 joking when i said hot reload all the 502 00:17:08,160 --> 00:17:12,400 things but the visual studio 2022 team 503 00:17:10,318 --> 00:17:14,399 is not joking it is the hottest release 504 00:17:12,400 --> 00:17:16,480 of visual studio ever everything is hot 505 00:17:14,400 --> 00:17:18,079 reload cplusplus.net and we're going to 506 00:17:16,480 --> 00:17:19,519 hear from partner architect david fowler 507 00:17:18,078 --> 00:17:22,318 who's going to show us hot reload in 508 00:17:19,519 --> 00:17:22,318 asp.net 509 00:17:22,720 --> 00:17:28,640 david hey scott you got demos yep 510 00:17:26,160 --> 00:17:30,720 a hot reload for blizzard watson blazer 511 00:17:28,640 --> 00:17:32,640 was a web assembly let's see we're in 512 00:17:30,720 --> 00:17:34,480 the browser we're harvesting everything 513 00:17:32,640 --> 00:17:36,640 so the app is running it's blinking 514 00:17:34,480 --> 00:17:38,240 pieces think of it as a pizza shop 515 00:17:36,640 --> 00:17:40,240 and we're going to show off a hot wheels 516 00:17:38,240 --> 00:17:41,440 demo which will make the inner loop much 517 00:17:40,240 --> 00:17:42,400 faster 518 00:17:41,440 --> 00:17:44,160 with 519 00:17:42,400 --> 00:17:45,600 a single file save so you don't have to 520 00:17:44,160 --> 00:17:46,640 reboot the entire application to see 521 00:17:45,599 --> 00:17:47,918 those changes 522 00:17:46,640 --> 00:17:48,799 here's the application it has a bug 523 00:17:47,919 --> 00:17:50,559 somewhere 524 00:17:48,798 --> 00:17:52,480 there there's no image with the pizza 525 00:17:50,558 --> 00:17:54,000 there's supposed to be a preview there 526 00:17:52,480 --> 00:17:55,839 um so we're going to fix the bug 527 00:17:54,000 --> 00:17:57,679 probably somewhere in the code 528 00:17:55,839 --> 00:17:59,119 um and there it is there's a b 529 00:17:57,679 --> 00:18:01,519 background image it should be background 530 00:17:59,119 --> 00:18:03,759 image so we're going to do a very simple 531 00:18:01,519 --> 00:18:05,679 fix to fix that typo 532 00:18:03,759 --> 00:18:08,720 and keep your eye 533 00:18:05,679 --> 00:18:10,798 on the save icon right here 534 00:18:08,720 --> 00:18:12,480 we won't have to rebuild right single 535 00:18:10,798 --> 00:18:14,879 control s 536 00:18:12,480 --> 00:18:18,079 will push the changes from your ide into 537 00:18:14,880 --> 00:18:19,360 the application in real time so that 538 00:18:18,079 --> 00:18:20,079 insane right 539 00:18:19,359 --> 00:18:21,439 um 540 00:18:20,079 --> 00:18:23,119 in the olden days you have to build the 541 00:18:21,440 --> 00:18:24,880 whole thing wait for it to recompile 542 00:18:23,119 --> 00:18:26,798 make it work now we can actually do it 543 00:18:24,880 --> 00:18:28,559 with in real time in the id and have it 544 00:18:26,798 --> 00:18:30,240 put the application in the first place 545 00:18:28,558 --> 00:18:32,160 second bug here i can only make a kid's 546 00:18:30,240 --> 00:18:34,079 pizza it's just cheese let me when i 547 00:18:32,160 --> 00:18:35,759 actually make the pizza support more 548 00:18:34,079 --> 00:18:38,558 than one topping there's the issue it 549 00:18:35,759 --> 00:18:39,679 has no the max is one topping let's make 550 00:18:38,558 --> 00:18:41,599 it six 551 00:18:39,679 --> 00:18:45,840 so from one to six 552 00:18:41,599 --> 00:18:45,839 control s again just saving 553 00:18:46,240 --> 00:18:49,519 boom 554 00:18:47,200 --> 00:18:50,798 it went from a text to drop down so i 555 00:18:49,519 --> 00:18:51,759 can add more toppings to the actual 556 00:18:50,798 --> 00:18:53,839 pizza 557 00:18:51,759 --> 00:18:56,640 fresh tomatoes gross i didn't want to 558 00:18:53,839 --> 00:18:58,159 ask you about pineapple oh 559 00:18:56,640 --> 00:18:59,600 only in hawaii 560 00:18:58,160 --> 00:19:02,880 all right six toppings and then we have 561 00:18:59,599 --> 00:19:04,798 to add the totals column to our site 562 00:19:02,880 --> 00:19:06,559 and the entire time i like i haven't 563 00:19:04,798 --> 00:19:09,440 built anything like ever right just to 564 00:19:06,558 --> 00:19:10,399 hit ctrl s after adding pieces of code 565 00:19:09,440 --> 00:19:12,720 it's huge 566 00:19:10,400 --> 00:19:14,240 so i added that it's not not shows up in 567 00:19:12,720 --> 00:19:16,240 the actual ui 568 00:19:14,240 --> 00:19:19,120 total price of the pizza now we're going 569 00:19:16,240 --> 00:19:21,679 to show you hot cs reload so we had a 570 00:19:19,119 --> 00:19:22,798 hot reload for razer and now for css 571 00:19:21,679 --> 00:19:25,280 what's pretty cool here is that you 572 00:19:22,798 --> 00:19:27,759 actually don't have to hit control s to 573 00:19:25,279 --> 00:19:30,160 make this show up as you type once the 574 00:19:27,759 --> 00:19:32,079 actual um 575 00:19:30,160 --> 00:19:34,320 synthesis correct it'll work just fine 576 00:19:32,079 --> 00:19:35,678 so i can type in real time hit semicolon 577 00:19:34,319 --> 00:19:37,678 and have the changes reflected in the 578 00:19:35,679 --> 00:19:38,960 application in real time 579 00:19:37,679 --> 00:19:40,880 right so you see 580 00:19:38,960 --> 00:19:42,640 i haven't saved this yet and the changes 581 00:19:40,880 --> 00:19:44,480 will be actually reflected in the actual 582 00:19:42,640 --> 00:19:46,400 application so hang on you didn't just 583 00:19:44,480 --> 00:19:49,200 hot reload html 584 00:19:46,400 --> 00:19:52,080 you made us super hot css you didn't 585 00:19:49,200 --> 00:19:54,798 even push control s spicy very spicy you 586 00:19:52,079 --> 00:19:56,399 also did c-sharp c-sharp 587 00:19:54,798 --> 00:19:58,480 new and c-sharp anywhere any kind of 588 00:19:56,400 --> 00:20:01,519 seashell anything not just razor wet not 589 00:19:58,480 --> 00:20:02,400 just razor it could be web client mobile 590 00:20:01,519 --> 00:20:04,400 anything 591 00:20:02,400 --> 00:20:07,120 wow yep okay it's happening that's a big 592 00:20:04,400 --> 00:20:08,400 change yep it's huge it is huge it's not 593 00:20:07,119 --> 00:20:10,319 we have been chasing this for about 10 594 00:20:08,400 --> 00:20:12,400 years now really got it finally this is 595 00:20:10,319 --> 00:20:14,399 a huge release huge oh my goodness 596 00:20:12,400 --> 00:20:16,240 amazing so we've seen how to edit our 597 00:20:14,400 --> 00:20:18,320 applications we've seen how they get hot 598 00:20:16,240 --> 00:20:20,000 reloaded all the time all the things we 599 00:20:18,319 --> 00:20:20,960 can then put them into production and 600 00:20:20,000 --> 00:20:22,319 then we need to find out what's 601 00:20:20,960 --> 00:20:23,600 happening we need to profile them we 602 00:20:22,319 --> 00:20:25,359 need to see all that great tooling 603 00:20:23,599 --> 00:20:28,079 inside of azure we've got mark to show 604 00:20:25,359 --> 00:20:29,359 us that right now awesome 605 00:20:28,079 --> 00:20:31,439 thanks scott 606 00:20:29,359 --> 00:20:33,759 visual studio is way more than just a 607 00:20:31,440 --> 00:20:35,759 code editor it's a full suite of tools 608 00:20:33,759 --> 00:20:38,000 that allow you to diagnose and analyze 609 00:20:35,759 --> 00:20:39,519 how your code is performing after 610 00:20:38,000 --> 00:20:42,000 creating and deploying your carefully 611 00:20:39,519 --> 00:20:44,158 crafted code at some point it gets put 612 00:20:42,000 --> 00:20:46,319 through the fire of customer expectation 613 00:20:44,159 --> 00:20:48,000 and when it does visual studio can help 614 00:20:46,319 --> 00:20:50,558 you refine your app to scale with the 615 00:20:48,000 --> 00:20:53,919 most complex of situations 616 00:20:50,558 --> 00:20:56,399 take for example this piece of code 617 00:20:53,919 --> 00:20:58,240 so this is an asp.net application 618 00:20:56,400 --> 00:21:00,720 designed to process thousands of data 619 00:20:58,240 --> 00:21:02,640 records into files the process is split 620 00:21:00,720 --> 00:21:06,240 into distinct units of work which are 621 00:21:02,640 --> 00:21:09,440 represented by these three.net tasks 622 00:21:06,240 --> 00:21:11,038 the final step here is to return success 623 00:21:09,440 --> 00:21:13,200 when i'm done 624 00:21:11,038 --> 00:21:15,919 now my devops team tells me this 625 00:21:13,200 --> 00:21:17,519 operation is consuming way too much cpu 626 00:21:15,919 --> 00:21:19,200 but we know that this is strange because 627 00:21:17,519 --> 00:21:21,519 the bulk of the code is concerned with 628 00:21:19,200 --> 00:21:23,679 file operations so the devops team used 629 00:21:21,519 --> 00:21:26,000 azure monitor to capture a trace during 630 00:21:23,679 --> 00:21:28,320 the cpu spike and shared it with me now 631 00:21:26,000 --> 00:21:30,720 rather than using my intuition i can 632 00:21:28,319 --> 00:21:34,639 open the tracing visual studio and go 633 00:21:30,720 --> 00:21:37,360 directly from problem to code 634 00:21:34,640 --> 00:21:38,640 in the trace i immediately see top 635 00:21:37,359 --> 00:21:41,759 functions 636 00:21:38,640 --> 00:21:44,159 and hotpath the hotpath indicated by the 637 00:21:41,759 --> 00:21:46,879 flame icon tells me exactly which 638 00:21:44,159 --> 00:21:48,799 codepaths are consuming the most cpu so 639 00:21:46,880 --> 00:21:52,000 this is a great place to focus on for 640 00:21:48,798 --> 00:21:54,720 any cpu bound problems alternatively i 641 00:21:52,000 --> 00:21:57,359 can use our new flame graph view as this 642 00:21:54,720 --> 00:22:00,319 demonstrates graphically which areas i 643 00:21:57,359 --> 00:22:00,319 need to focus on 644 00:22:00,960 --> 00:22:05,038 regardless of which view you prefer the 645 00:22:03,038 --> 00:22:07,119 true magic that visual studio unlocks is 646 00:22:05,038 --> 00:22:09,839 that it helps you go from problem to 647 00:22:07,119 --> 00:22:12,399 code i'm going to double click on my 648 00:22:09,839 --> 00:22:14,879 frame in the hot path and it highlights 649 00:22:12,400 --> 00:22:17,200 for me the code of greatest concern 650 00:22:14,880 --> 00:22:19,120 this is in fact a badly designed regular 651 00:22:17,200 --> 00:22:21,440 expression it had nothing to do with 652 00:22:19,119 --> 00:22:24,079 processing thousands of data records and 653 00:22:21,440 --> 00:22:26,000 the profiling tools in visual studio 654 00:22:24,079 --> 00:22:27,038 helped me to prove it back to you in the 655 00:22:26,000 --> 00:22:28,720 studio 656 00:22:27,038 --> 00:22:30,558 if ever there was a demo that really 657 00:22:28,720 --> 00:22:32,079 reinforced that visual studio isn't just 658 00:22:30,558 --> 00:22:33,519 an editor right it's an integrated 659 00:22:32,079 --> 00:22:35,519 development environment you're at this 660 00:22:33,519 --> 00:22:37,599 this powerful cockpit of all the things 661 00:22:35,519 --> 00:22:39,679 from production editing hot reload all 662 00:22:37,599 --> 00:22:41,199 that stuff is everything that we've seen 663 00:22:39,679 --> 00:22:43,440 available for everyone or just in the 664 00:22:41,200 --> 00:22:45,200 big money paid versions of visual studio 665 00:22:43,440 --> 00:22:47,679 no i mean what we want to make sure is 666 00:22:45,200 --> 00:22:50,480 that every developer that's coding in c 667 00:22:47,679 --> 00:22:52,798 sharp or c plus can actually develop any 668 00:22:50,480 --> 00:22:54,640 application super productively for any 669 00:22:52,798 --> 00:22:56,798 platform any platform not just any 670 00:22:54,640 --> 00:22:58,799 platform yes not just windows linux i 671 00:22:56,798 --> 00:23:00,319 mean i think this is one of the big big 672 00:22:58,798 --> 00:23:02,000 things is that visual studio has 673 00:23:00,319 --> 00:23:03,519 actually become an incredible 674 00:23:02,000 --> 00:23:04,480 environment for developing apps for 675 00:23:03,519 --> 00:23:05,440 linux 676 00:23:04,480 --> 00:23:07,120 that's fantastic actually i've been 677 00:23:05,440 --> 00:23:08,640 spending a lot of time with wsl the 678 00:23:07,119 --> 00:23:12,000 windows subsystem for linux which is a 679 00:23:08,640 --> 00:23:14,240 huge part of windows 11. are you saying 680 00:23:12,000 --> 00:23:16,319 that visual studio knows about 681 00:23:14,240 --> 00:23:18,000 wsl and linux yeah for sure and erica 682 00:23:16,319 --> 00:23:19,678 actually has an awesome demo that she 683 00:23:18,000 --> 00:23:22,079 can show you definitely all right let's 684 00:23:19,679 --> 00:23:24,480 check it roll it 685 00:23:22,079 --> 00:23:27,279 so we're starting with a cmake project 686 00:23:24,480 --> 00:23:29,599 open in visual studio cmake is an open 687 00:23:27,279 --> 00:23:31,599 source cross-platform build system 688 00:23:29,599 --> 00:23:34,240 generator that's supported natively by 689 00:23:31,599 --> 00:23:36,158 visual studio and is our recommendation 690 00:23:34,240 --> 00:23:37,279 for c-plus plus cross-platform 691 00:23:36,159 --> 00:23:39,760 development 692 00:23:37,279 --> 00:23:41,678 now because cmake is cross-platform i 693 00:23:39,759 --> 00:23:45,599 can build and debug this project on my 694 00:23:41,679 --> 00:23:48,240 local machine on ssh connections on wsl 695 00:23:45,599 --> 00:23:51,599 distros all from the same instance of 696 00:23:48,240 --> 00:23:54,558 visual studio i'm also using visual 697 00:23:51,599 --> 00:23:58,399 studio's new cmake presets integration 698 00:23:54,558 --> 00:24:00,798 so this file cmic presets.json 699 00:23:58,400 --> 00:24:02,640 is supported directly by cmake and can 700 00:24:00,798 --> 00:24:05,119 be used to drive cmake generation and 701 00:24:02,640 --> 00:24:06,559 build both with and without our tools 702 00:24:05,119 --> 00:24:09,599 that means your team can use it from 703 00:24:06,558 --> 00:24:12,720 visual studio from vs code from the cma 704 00:24:09,599 --> 00:24:15,199 gui in a ci pipeline or from the command 705 00:24:12,720 --> 00:24:16,880 line on windows linux and mac which 706 00:24:15,200 --> 00:24:19,840 makes it a great option for teams who 707 00:24:16,880 --> 00:24:21,120 like to support a diverse set of tools 708 00:24:19,839 --> 00:24:24,079 all right i've already configured this 709 00:24:21,119 --> 00:24:27,119 project so i can start debugging on wsl 710 00:24:24,079 --> 00:24:30,158 by pressing f5 using visual studio's 711 00:24:27,119 --> 00:24:34,158 native support for wsl 2 which is brand 712 00:24:30,159 --> 00:24:34,159 new in visual studio 2022 713 00:24:34,240 --> 00:24:38,880 all right so what we're looking at is 714 00:24:36,000 --> 00:24:42,319 pretty cool this is a linux app running 715 00:24:38,880 --> 00:24:45,039 natively on windows with wslg the g 716 00:24:42,319 --> 00:24:47,519 stands for graphics and windows 11 and 717 00:24:45,038 --> 00:24:49,440 you can notice the linux style controls 718 00:24:47,519 --> 00:24:51,359 as well as the linux tiling up in the 719 00:24:49,440 --> 00:24:53,919 corner which shows we are in fact 720 00:24:51,359 --> 00:24:56,319 launching this from a linux instance 721 00:24:53,919 --> 00:24:58,480 in visual studio i have the full suite 722 00:24:56,319 --> 00:25:01,519 of debugging features available backed 723 00:24:58,480 --> 00:25:03,360 by gdb which means i have a rich visual 724 00:25:01,519 --> 00:25:05,918 experience for things like inspecting 725 00:25:03,359 --> 00:25:08,000 variables or using the parallel stacks 726 00:25:05,919 --> 00:25:09,360 window which is open to the right and 727 00:25:08,000 --> 00:25:11,679 that's an example of the kind of 728 00:25:09,359 --> 00:25:13,199 graphical expression that you just can't 729 00:25:11,679 --> 00:25:15,519 really get when you're debugging with 730 00:25:13,200 --> 00:25:18,640 gdp from the command line and it's all 731 00:25:15,519 --> 00:25:21,038 running locally on wsl 732 00:25:18,640 --> 00:25:23,520 picking i'm watching david like try to 733 00:25:21,038 --> 00:25:24,240 like personally deal with that pick it 734 00:25:23,519 --> 00:25:27,440 up 735 00:25:24,240 --> 00:25:27,440 are you okay david 736 00:25:28,079 --> 00:25:31,839 [Laughter] 737 00:25:34,960 --> 00:25:39,440 it's happening you can build and debug 738 00:25:37,599 --> 00:25:41,519 linux applications with visual studio 739 00:25:39,440 --> 00:25:43,840 2022 you need to sit back and just lie 740 00:25:41,519 --> 00:25:45,759 down 741 00:25:43,839 --> 00:25:47,359 because it's happening amanda the year 742 00:25:45,759 --> 00:25:49,278 of the linux desktop is happening on 743 00:25:47,359 --> 00:25:51,278 windows well and i think this is you 744 00:25:49,278 --> 00:25:54,319 know really about not just visual studio 745 00:25:51,278 --> 00:25:56,480 but also windows becoming a really uh 746 00:25:54,319 --> 00:25:59,119 awesome developer box for developing 747 00:25:56,480 --> 00:26:00,640 apps for linux it's amazing and not only 748 00:25:59,119 --> 00:26:02,239 developing them but also testing them 749 00:26:00,640 --> 00:26:04,640 doing some amazing tests i think we have 750 00:26:02,240 --> 00:26:06,640 a demo from kendra about cross operating 751 00:26:04,640 --> 00:26:08,799 system testing on windows with visual 752 00:26:06,640 --> 00:26:10,799 studio 753 00:26:08,798 --> 00:26:14,240 hey everyone let's check out what's new 754 00:26:10,798 --> 00:26:16,319 in visual studio 2022 to test your app 755 00:26:14,240 --> 00:26:18,880 this feature is bring your own compute 756 00:26:16,319 --> 00:26:20,879 so i'll go ahead and build a docker 757 00:26:18,880 --> 00:26:23,440 container right now 758 00:26:20,880 --> 00:26:24,799 with the visual studio powershell and 759 00:26:23,440 --> 00:26:27,200 while that's building let's take a look 760 00:26:24,798 --> 00:26:29,359 at my tests so i have two tests they're 761 00:26:27,200 --> 00:26:31,679 super simple i have 762 00:26:29,359 --> 00:26:33,678 a linux test and a windows test and i'm 763 00:26:31,679 --> 00:26:36,880 using the skippable fact active 764 00:26:33,679 --> 00:26:39,038 attribute in x unit so i will skip my 765 00:26:36,880 --> 00:26:41,760 linux test if my operating system is 766 00:26:39,038 --> 00:26:44,158 windows and vice versa i'll 767 00:26:41,759 --> 00:26:47,759 only run my windows test on windows and 768 00:26:44,159 --> 00:26:50,000 skip it if i'm on linux so 769 00:26:47,759 --> 00:26:52,079 now that the container is kind of built 770 00:26:50,000 --> 00:26:54,240 in the background let's take a look at 771 00:26:52,079 --> 00:26:56,798 our test explorer so right now you can 772 00:26:54,240 --> 00:26:58,880 see this is the remote test environment 773 00:26:56,798 --> 00:27:01,200 drop down and right now it's set to my 774 00:26:58,880 --> 00:27:03,200 local windows environment and my linux 775 00:27:01,200 --> 00:27:05,840 test is skipped and my windows test is 776 00:27:03,200 --> 00:27:08,000 passing i'll go ahead and select the 777 00:27:05,839 --> 00:27:09,918 container that i just built and it will 778 00:27:08,000 --> 00:27:11,119 actually rediscover my tests in the 779 00:27:09,919 --> 00:27:14,278 background 780 00:27:11,119 --> 00:27:16,639 so this drop-down is defined by a test 781 00:27:14,278 --> 00:27:18,079 environment.json file where you can tell 782 00:27:16,640 --> 00:27:20,080 them things like 783 00:27:18,079 --> 00:27:23,278 what docker image you want to connect to 784 00:27:20,079 --> 00:27:25,199 or which wsl distribution you need and 785 00:27:23,278 --> 00:27:27,759 anything you need for your ssh 786 00:27:25,200 --> 00:27:30,480 connections as well 787 00:27:27,759 --> 00:27:32,960 uh so back in my test explorer i've 788 00:27:30,480 --> 00:27:35,759 rediscovered those tests and now when i 789 00:27:32,960 --> 00:27:38,079 run them it'll be on that linux 790 00:27:35,759 --> 00:27:40,480 container and now my linux test is 791 00:27:38,079 --> 00:27:42,879 passing and my windows test is skipped 792 00:27:40,480 --> 00:27:44,640 so you can easily debug these there's 793 00:27:42,880 --> 00:27:46,880 lots more you can do this is just a 794 00:27:44,640 --> 00:27:48,799 little sample of how visual studio can 795 00:27:46,880 --> 00:27:50,720 bring cross-platform development into 796 00:27:48,798 --> 00:27:52,879 your inner loop and that's all i have 797 00:27:50,720 --> 00:27:54,240 for today back to you all amazing stuff 798 00:27:52,880 --> 00:27:56,799 from kendra the ability to be able to 799 00:27:54,240 --> 00:27:59,200 test my.net applications cross-platform 800 00:27:56,798 --> 00:28:01,519 without ever leaving the comfort of my 801 00:27:59,200 --> 00:28:03,519 ide visual studio 2022. yeah so 802 00:28:01,519 --> 00:28:05,839 important you can write code you can 803 00:28:03,519 --> 00:28:08,398 debug your code and you can also write 804 00:28:05,839 --> 00:28:10,079 tests in the ide yeah but can i check it 805 00:28:08,398 --> 00:28:14,000 in and put it in the cloud that's the 806 00:28:10,079 --> 00:28:14,000 real question i don't know scott can you 807 00:28:14,480 --> 00:28:17,919 maybe i can do a demo 808 00:28:16,798 --> 00:28:20,798 all right let me show you this i've 809 00:28:17,919 --> 00:28:20,799 actually got something for you 810 00:28:20,880 --> 00:28:24,320 all right check this out so here we are 811 00:28:22,398 --> 00:28:25,759 in visual studio again and i'm actually 812 00:28:24,319 --> 00:28:26,879 going to right click and say publish 813 00:28:25,759 --> 00:28:28,879 it's going to pop up some different 814 00:28:26,880 --> 00:28:30,720 options that i've got and one of them is 815 00:28:28,880 --> 00:28:33,278 azure app service in linux and i'm going 816 00:28:30,720 --> 00:28:34,960 to pull down my resource group and we'll 817 00:28:33,278 --> 00:28:36,558 see the different app service instances 818 00:28:34,960 --> 00:28:38,480 that i have available to me i could make 819 00:28:36,558 --> 00:28:40,558 a new one or i could pick one that's 820 00:28:38,480 --> 00:28:42,558 already been created here and then i can 821 00:28:40,558 --> 00:28:45,200 publish it with the pub xml file or 822 00:28:42,558 --> 00:28:46,480 check this out cicd using github actions 823 00:28:45,200 --> 00:28:48,080 it actually knows that i'm logged into 824 00:28:46,480 --> 00:28:49,440 github and it knows what kind of 825 00:28:48,079 --> 00:28:51,119 application this is so it's going to 826 00:28:49,440 --> 00:28:54,399 pick the right template and it will 827 00:28:51,119 --> 00:28:57,199 build my ci cd pipeline for me check 828 00:28:54,398 --> 00:28:59,359 this out so look at that it says 829 00:28:57,200 --> 00:29:02,480 github actions workflow it brought my 830 00:28:59,359 --> 00:29:03,918 publish profile secret out so it knows 831 00:29:02,480 --> 00:29:05,839 the context it knows the context of the 832 00:29:03,919 --> 00:29:08,559 cloud and it's going to trigger on the 833 00:29:05,839 --> 00:29:10,480 push it's pulled my secret out put that 834 00:29:08,558 --> 00:29:12,319 into github actions and then all i have 835 00:29:10,480 --> 00:29:14,960 to do at this point for the workflow to 836 00:29:12,319 --> 00:29:17,918 run is to go and commit and push this to 837 00:29:14,960 --> 00:29:20,079 the remote repository 838 00:29:17,919 --> 00:29:21,840 so i'm going to say open git changes 839 00:29:20,079 --> 00:29:23,199 window and i'll make my commit and when 840 00:29:21,839 --> 00:29:25,199 i push it it's going to fire that 841 00:29:23,200 --> 00:29:28,000 trigger that push trigger on github 842 00:29:25,200 --> 00:29:29,600 actions so we'll put in a message for my 843 00:29:28,000 --> 00:29:31,200 initial commit and i'll go ahead and say 844 00:29:29,599 --> 00:29:32,879 commit all and then we'll see one 845 00:29:31,200 --> 00:29:33,759 outgoing and i'll go and initiate that 846 00:29:32,880 --> 00:29:36,159 push 847 00:29:33,759 --> 00:29:37,759 that happened in the get changes toolbox 848 00:29:36,159 --> 00:29:39,679 there now look the workflow is running 849 00:29:37,759 --> 00:29:42,558 so at this point we've pushed to the 850 00:29:39,679 --> 00:29:44,880 master and then that run is happening in 851 00:29:42,558 --> 00:29:47,200 github we can then switch over to github 852 00:29:44,880 --> 00:29:49,278 and we'll see that ci cd pipeline that 853 00:29:47,200 --> 00:29:50,480 was created for me happening 854 00:29:49,278 --> 00:29:52,720 automatically there you go build and 855 00:29:50,480 --> 00:29:54,480 deploy we're 16 seconds in 856 00:29:52,720 --> 00:29:56,558 setup.net core we're going to run the 857 00:29:54,480 --> 00:29:58,640 tests then we're going to do the publish 858 00:29:56,558 --> 00:30:00,319 and then we will deploy to the azure web 859 00:29:58,640 --> 00:30:02,880 app all of this was created for me i 860 00:30:00,319 --> 00:30:04,960 didn't have to edit this pipeline at all 861 00:30:02,880 --> 00:30:07,278 once that post run is done my 862 00:30:04,960 --> 00:30:09,120 application will start to spin up inside 863 00:30:07,278 --> 00:30:11,599 of azure takes just a second for it to 864 00:30:09,119 --> 00:30:13,519 do that because we're doing a cold start 865 00:30:11,599 --> 00:30:16,480 and there you go my app is live right 866 00:30:13,519 --> 00:30:19,200 there in app service on linux 867 00:30:16,480 --> 00:30:20,558 awesome pretty cool kind of full circle 868 00:30:19,200 --> 00:30:22,159 right there we've seen all the hot 869 00:30:20,558 --> 00:30:24,240 reloading all the great editing all the 870 00:30:22,159 --> 00:30:26,000 intellicode we've committed our code 871 00:30:24,240 --> 00:30:29,038 that's been fully tested 872 00:30:26,000 --> 00:30:30,880 put it into a ci cd pipeline in github 873 00:30:29,038 --> 00:30:33,278 actions and then published it to the 874 00:30:30,880 --> 00:30:34,640 cloud how fun is that that's pretty cool 875 00:30:33,278 --> 00:30:36,398 is your brain okay from the hot reload 876 00:30:34,640 --> 00:30:38,559 demo earlier yeah okay 877 00:30:36,398 --> 00:30:40,558 i know you're having to deal with that 878 00:30:38,558 --> 00:30:42,158 right click publish github all right so 879 00:30:40,558 --> 00:30:43,918 we've seen some really amazing stuff 880 00:30:42,159 --> 00:30:45,200 from all of our friends and we're we 881 00:30:43,919 --> 00:30:46,480 have to really appreciate the work that 882 00:30:45,200 --> 00:30:48,319 was done by all of our friends who 883 00:30:46,480 --> 00:30:50,480 aren't here today the organization is 884 00:30:48,319 --> 00:30:52,639 huge many many many engineers worked on 885 00:30:50,480 --> 00:30:54,558 this project for sure we're just really 886 00:30:52,640 --> 00:30:57,278 really proud to be able to work on this 887 00:30:54,558 --> 00:30:58,639 on for developers and to be able to do 888 00:30:57,278 --> 00:30:59,919 it in the middle of the pandemic is 889 00:30:58,640 --> 00:31:01,919 pretty amazing a lot of this work was 890 00:30:59,919 --> 00:31:04,240 done remotely yeah it's been incredible 891 00:31:01,919 --> 00:31:06,399 to collaborate across the team to work 892 00:31:04,240 --> 00:31:09,038 on this release and it's awesome to see 893 00:31:06,398 --> 00:31:12,000 you all here and it's kind of you know 894 00:31:09,038 --> 00:31:13,278 funny to notice dancing socks 895 00:31:12,000 --> 00:31:14,720 uh 896 00:31:13,278 --> 00:31:17,119 what's going on with your socks anson 897 00:31:14,720 --> 00:31:18,960 what's the story there yeah no these are 898 00:31:17,119 --> 00:31:21,839 official studio socks obviously they're 899 00:31:18,960 --> 00:31:23,919 from a slightly older version uh 900 00:31:21,839 --> 00:31:27,199 i'm not saying that there may be 901 00:31:23,919 --> 00:31:29,600 somebody that could you know fight a new 902 00:31:27,200 --> 00:31:31,679 set of swag 903 00:31:29,599 --> 00:31:33,359 but if there were such a person that 904 00:31:31,679 --> 00:31:36,000 would be great i don't know who has that 905 00:31:33,359 --> 00:31:38,079 power oh look into it i think there is a 906 00:31:36,000 --> 00:31:40,159 new logo so we definitely might need to 907 00:31:38,079 --> 00:31:42,398 update anson's socks all right you heard 908 00:31:40,159 --> 00:31:46,480 it here first visual studio 2022 sock 909 00:31:42,398 --> 00:31:48,000 swag coming at you in 64 bits 910 00:31:46,480 --> 00:31:49,519 all right what a great celebration and 911 00:31:48,000 --> 00:31:51,359 what a wonderful time to spend and 912 00:31:49,519 --> 00:31:53,120 actually we do have a secret code that 913 00:31:51,359 --> 00:31:55,599 we have to enable to go and turn on the 914 00:31:53,119 --> 00:31:57,839 next step and finally release 915 00:31:55,599 --> 00:31:59,839 uh visual studio 2022. i'm going to put 916 00:31:57,839 --> 00:32:01,519 this down and we're going to go to our 917 00:31:59,839 --> 00:32:02,558 special control panel that i'm going to 918 00:32:01,519 --> 00:32:03,839 pass to 919 00:32:02,558 --> 00:32:06,480 you 920 00:32:03,839 --> 00:32:09,038 to launch visual studio thank you you're 921 00:32:06,480 --> 00:32:10,720 going to enter the secret code all right 922 00:32:09,038 --> 00:32:13,599 i'm not sure if i remember this up up 923 00:32:10,720 --> 00:32:15,839 down down right left right left right 924 00:32:13,599 --> 00:32:15,839 ready 925 00:32:17,970 --> 00:32:21,009 [Music] 926 00:32:24,990 --> 00:32:28,749 [Music] 927 00:32:37,299 --> 00:32:51,210 [Music] 928 00:32:53,119 --> 00:32:55,199 you 69171

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.