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.