Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,389 --> 00:00:07,199
[Music]
2
00:00:05,120 --> 00:00:09,759
hey everyone i'm leslie richardson from
3
00:00:07,200 --> 00:00:12,400
the visual studio extensibility team and
4
00:00:09,759 --> 00:00:14,559
welcome to this talk on what's new for
5
00:00:12,400 --> 00:00:17,278
both existing and aspiring extension
6
00:00:14,558 --> 00:00:20,559
developers and visual studio 2022
7
00:00:17,278 --> 00:00:22,719
so vs 2022 is super exciting there are a
8
00:00:20,559 --> 00:00:24,640
lot of major updates to it including
9
00:00:22,719 --> 00:00:26,479
64-bit which can help improve
10
00:00:24,640 --> 00:00:29,118
performance across the board and there
11
00:00:26,480 --> 00:00:30,960
have never been more ways to customize
12
00:00:29,118 --> 00:00:33,679
your ideal development environment with
13
00:00:30,960 --> 00:00:35,679
additions such as color tabs or themes
14
00:00:33,679 --> 00:00:38,238
or just all the new github integrations
15
00:00:35,679 --> 00:00:40,878
than there have been in this version but
16
00:00:38,238 --> 00:00:42,799
for a lot of people creating that ideal
17
00:00:40,878 --> 00:00:44,399
development environment is not complete
18
00:00:42,799 --> 00:00:45,919
without the extensions that they've come
19
00:00:44,399 --> 00:00:48,558
to know and love and that's where you
20
00:00:45,920 --> 00:00:50,879
all fit in as extension authors so the
21
00:00:48,558 --> 00:00:52,558
goal for this talk is to share with you
22
00:00:50,878 --> 00:00:54,718
some steps for how to successfully
23
00:00:52,558 --> 00:00:56,959
migrate your extension to visual studio
24
00:00:54,719 --> 00:00:58,558
2022 so that everyone can continue
25
00:00:56,960 --> 00:01:00,558
taking advantage of all the awesome
26
00:00:58,558 --> 00:01:03,039
productivity and customization add-ons
27
00:01:00,558 --> 00:01:05,039
that your extension offers while also
28
00:01:03,039 --> 00:01:07,118
introducing a new toolkit that can help
29
00:01:05,040 --> 00:01:10,840
you write your extensions even faster
30
00:01:07,118 --> 00:01:14,640
and easier than before so let's check it
31
00:01:10,840 --> 00:01:16,400
out so migration is the first and
32
00:01:14,640 --> 00:01:18,719
probably most important topic that we'll
33
00:01:16,400 --> 00:01:21,359
be discussing today in order for your
34
00:01:18,719 --> 00:01:23,200
extensions to continue being used in
35
00:01:21,359 --> 00:01:25,280
visual studio 2022 you're gonna have to
36
00:01:23,200 --> 00:01:27,920
follow a couple migration steps that
37
00:01:25,280 --> 00:01:30,159
we're gonna demonstrate today
38
00:01:27,920 --> 00:01:33,599
all right so i am currently in visual
39
00:01:30,159 --> 00:01:34,880
studio 2022 and i've got this 2019
40
00:01:33,599 --> 00:01:38,319
extension that i've written that i'd
41
00:01:34,879 --> 00:01:40,959
like to migrate to vs 2022
42
00:01:38,319 --> 00:01:42,719
and after doing all my modernization
43
00:01:40,959 --> 00:01:44,319
updates so making sure that my.net
44
00:01:42,719 --> 00:01:47,438
framework is still compatible with
45
00:01:44,319 --> 00:01:49,758
visual studio 2022 as well as any other
46
00:01:47,438 --> 00:01:51,919
package references we can get into the
47
00:01:49,759 --> 00:01:53,599
core migration which comes down to
48
00:01:51,920 --> 00:01:56,079
creating two
49
00:01:53,599 --> 00:01:58,239
two separate v6s you want to create two
50
00:01:56,078 --> 00:02:00,718
projects one that targets visual studio
51
00:01:58,239 --> 00:02:03,359
2019 and lower and the other one that is
52
00:02:00,718 --> 00:02:04,959
targeting visual studio 2022 and both of
53
00:02:03,359 --> 00:02:06,560
these v6 projects are going to be tied
54
00:02:04,959 --> 00:02:09,359
together by what's called a shared
55
00:02:06,560 --> 00:02:10,800
project which allows us to share code
56
00:02:09,360 --> 00:02:13,599
that's going to be similar between the
57
00:02:10,800 --> 00:02:15,360
two versions and the reason why we are
58
00:02:13,598 --> 00:02:18,238
setting up the extension in this way
59
00:02:15,360 --> 00:02:20,800
when migrating is because we need to
60
00:02:18,239 --> 00:02:22,719
address all of the breaking api changes
61
00:02:20,800 --> 00:02:25,599
and interop assembly changes that have
62
00:02:22,719 --> 00:02:27,680
happened in the transition to 2022 of
63
00:02:25,598 --> 00:02:29,679
which there are a lot of especially with
64
00:02:27,680 --> 00:02:31,200
the addition of 64-bit so in order to
65
00:02:29,680 --> 00:02:33,360
make sure that
66
00:02:31,199 --> 00:02:34,958
certain uh assembly references work in
67
00:02:33,360 --> 00:02:38,160
one version but not on the other then we
68
00:02:34,959 --> 00:02:39,759
can use the shared project setup to
69
00:02:38,159 --> 00:02:41,039
differentiate between the two fairly
70
00:02:39,759 --> 00:02:41,919
easily
71
00:02:41,039 --> 00:02:44,159
so
72
00:02:41,919 --> 00:02:45,598
i've got my 2019 targeting project and
73
00:02:44,159 --> 00:02:47,919
the first thing that i'm going to do is
74
00:02:45,598 --> 00:02:49,679
just add my shared project to the
75
00:02:47,919 --> 00:02:52,159
solution
76
00:02:49,680 --> 00:02:53,599
so create a new project
77
00:02:52,159 --> 00:02:56,239
go into shared
78
00:02:53,598 --> 00:02:59,280
i'm going to call mine add author
79
00:02:56,239 --> 00:02:59,280
underscore shared
80
00:03:00,479 --> 00:03:04,560
okay so there's my shared project of
81
00:03:02,878 --> 00:03:07,199
course we need to include a reference to
82
00:03:04,560 --> 00:03:10,000
that project in the 2019
83
00:03:07,199 --> 00:03:12,158
project so let's go to reference
84
00:03:10,000 --> 00:03:14,479
add that
85
00:03:12,158 --> 00:03:16,560
so now the question becomes what goes in
86
00:03:14,479 --> 00:03:19,919
this shared project so usually most of
87
00:03:16,560 --> 00:03:21,280
your cs and res x files are fair game
88
00:03:19,919 --> 00:03:23,679
anything you intend to share between
89
00:03:21,280 --> 00:03:26,640
both versions of your extension so
90
00:03:23,680 --> 00:03:28,560
specifically your commands your
91
00:03:26,639 --> 00:03:32,759
tool windows that sort of thing and
92
00:03:28,560 --> 00:03:32,759
that's what i'm going to add in mine
93
00:03:36,878 --> 00:03:42,000
so as for what not to add to this shared
94
00:03:39,680 --> 00:03:43,519
folder you don't want to add your vsct
95
00:03:42,000 --> 00:03:45,199
file but you do want to make sure that
96
00:03:43,519 --> 00:03:47,519
your build action under properties is
97
00:03:45,199 --> 00:03:49,759
set to vsct compile
98
00:03:47,519 --> 00:03:51,680
and
99
00:03:49,759 --> 00:03:55,039
there you go and you want to make sure
100
00:03:51,680 --> 00:03:56,640
that your include and b6 property is set
101
00:03:55,039 --> 00:03:58,239
to false
102
00:03:56,639 --> 00:03:59,759
and similarly you also don't want to
103
00:03:58,239 --> 00:04:02,158
move your b6 manifest which we're going
104
00:03:59,759 --> 00:04:04,878
to play around with in a second
105
00:04:02,158 --> 00:04:06,318
so we've got the vs 2019 project set up
106
00:04:04,878 --> 00:04:07,919
and we have the shared folder or the
107
00:04:06,318 --> 00:04:10,719
shared project and now we're going to
108
00:04:07,919 --> 00:04:12,878
add the vs 2022 project which i've
109
00:04:10,719 --> 00:04:16,560
already set up so i'm going to add an
110
00:04:12,878 --> 00:04:16,560
existing project and go find that
111
00:04:27,040 --> 00:04:30,879
great so there is our vs 2022 project
112
00:04:29,680 --> 00:04:32,879
and there's a couple things that we need
113
00:04:30,879 --> 00:04:34,719
to address here in order to
114
00:04:32,879 --> 00:04:38,000
actually get this extension to run
115
00:04:34,720 --> 00:04:39,919
properly in bs2022 so the first being
116
00:04:38,000 --> 00:04:41,600
let's add a reference to that shared
117
00:04:39,918 --> 00:04:44,799
project like we did with
118
00:04:41,600 --> 00:04:44,800
the 2019 one
119
00:04:45,040 --> 00:04:47,439
so there it is
120
00:04:46,240 --> 00:04:49,918
and then
121
00:04:47,439 --> 00:04:52,079
we need to make sure that we have our
122
00:04:49,918 --> 00:04:54,399
nuget packages updated specifically the
123
00:04:52,079 --> 00:04:57,680
sdk and the build tools ones and you
124
00:04:54,399 --> 00:05:00,239
want them to target a 17.0 version
125
00:04:57,680 --> 00:05:02,478
of uh visual studio and this is what
126
00:05:00,240 --> 00:05:04,478
will allow us to continue using the
127
00:05:02,478 --> 00:05:07,120
extension libraries and apis and visual
128
00:05:04,478 --> 00:05:09,199
studio 2022.
129
00:05:07,120 --> 00:05:12,160
all right so from there we're going to
130
00:05:09,199 --> 00:05:13,439
modify our v6 manifest i'm going to open
131
00:05:12,160 --> 00:05:14,560
up the code version because we're going
132
00:05:13,439 --> 00:05:18,079
to add
133
00:05:14,560 --> 00:05:20,000
a different tag manually
134
00:05:18,079 --> 00:05:22,839
so first and foremost make sure that
135
00:05:20,000 --> 00:05:26,879
your installation target is set to
136
00:05:22,839 --> 00:05:26,879
17.0 to 18.0
137
00:05:27,120 --> 00:05:29,519
and then
138
00:05:28,079 --> 00:05:31,279
inside your installation target we're
139
00:05:29,519 --> 00:05:33,279
going to add a new tag called product
140
00:05:31,279 --> 00:05:34,559
architecture so this is like the money
141
00:05:33,279 --> 00:05:37,038
shot right here this is something that
142
00:05:34,560 --> 00:05:39,120
you have to make sure that you have
143
00:05:37,038 --> 00:05:41,839
otherwise your users won't be able to
144
00:05:39,120 --> 00:05:43,519
install visual suit and won't be able to
145
00:05:41,839 --> 00:05:45,599
install your extension in visual studio
146
00:05:43,519 --> 00:05:48,478
2022 and we don't want that
147
00:05:45,600 --> 00:05:49,840
so we're going to add 64 and this is
148
00:05:48,478 --> 00:05:51,359
accounting for the fact that visual
149
00:05:49,839 --> 00:05:53,359
studio is 64-bit therefore your
150
00:05:51,360 --> 00:05:55,520
extension needs to be compatible with
151
00:05:53,360 --> 00:05:57,038
64-bit bs
152
00:05:55,519 --> 00:05:58,799
and also make sure you update your
153
00:05:57,038 --> 00:06:02,719
prerequisites to
154
00:05:58,800 --> 00:06:04,478
go to 17.0 to 18.0 as well
155
00:06:02,720 --> 00:06:06,000
all right so from there we've updated
156
00:06:04,478 --> 00:06:09,360
our manifest we've updated our nuget
157
00:06:06,000 --> 00:06:11,680
packages and before you hit run stop do
158
00:06:09,360 --> 00:06:13,360
not pass go do not collect 200 because
159
00:06:11,680 --> 00:06:14,879
we need to address those breaking api
160
00:06:13,360 --> 00:06:17,360
changes that have happened in that
161
00:06:14,879 --> 00:06:19,519
transition and luckily even though
162
00:06:17,360 --> 00:06:21,600
there's a lot of them we have provided a
163
00:06:19,519 --> 00:06:23,680
lot of resources with the list of all
164
00:06:21,600 --> 00:06:25,680
the different apis that have changed
165
00:06:23,680 --> 00:06:28,079
have been broken or have been moved as
166
00:06:25,680 --> 00:06:30,879
well as solutions for how to fix them
167
00:06:28,079 --> 00:06:32,879
so in my case my issue is going to deal
168
00:06:30,879 --> 00:06:35,199
with this dte and underscore dte
169
00:06:32,879 --> 00:06:37,120
typecast failure so i bet it would be
170
00:06:35,199 --> 00:06:39,600
addressed if i just change my namespace
171
00:06:37,120 --> 00:06:42,240
to the latest envdte80
172
00:06:39,600 --> 00:06:46,000
namespace instead
173
00:06:42,240 --> 00:06:48,400
so going into my code specifically this
174
00:06:46,000 --> 00:06:49,918
issue is going to take place
175
00:06:48,399 --> 00:06:50,799
in
176
00:06:49,918 --> 00:06:53,839
my
177
00:06:50,800 --> 00:06:53,840
one of my shared files
178
00:06:59,038 --> 00:07:04,560
you'll notice that i get an error but if
179
00:07:01,918 --> 00:07:07,439
i'm looking at the visual studio 2019
180
00:07:04,560 --> 00:07:09,199
version of this shared file it's not
181
00:07:07,439 --> 00:07:11,680
giving me an error when i use this
182
00:07:09,199 --> 00:07:14,240
definition but if i were to swap over to
183
00:07:11,680 --> 00:07:17,519
vs 2022 then it is going to give me the
184
00:07:14,240 --> 00:07:22,000
error so we can just fix this by
185
00:07:17,519 --> 00:07:22,000
changing to enb dt 80.
186
00:07:23,598 --> 00:07:27,759
and from there
187
00:07:25,038 --> 00:07:29,680
we should be good to go and give this a
188
00:07:27,759 --> 00:07:31,120
try and see if the extension has
189
00:07:29,680 --> 00:07:32,240
successfully been migrated so i'm going
190
00:07:31,120 --> 00:07:34,240
to set
191
00:07:32,240 --> 00:07:35,918
that project as my startup
192
00:07:34,240 --> 00:07:38,000
and hit run
193
00:07:35,918 --> 00:07:40,079
so depending on the complexity or the
194
00:07:38,000 --> 00:07:42,160
size of your extension you may have to
195
00:07:40,079 --> 00:07:43,598
address a lot of breaking changes or you
196
00:07:42,160 --> 00:07:44,400
might get lucky and not have to address
197
00:07:43,598 --> 00:07:46,639
any
198
00:07:44,399 --> 00:07:48,159
so keep in mind please double check them
199
00:07:46,639 --> 00:07:51,680
either way just to make sure that it's
200
00:07:48,160 --> 00:07:51,680
going to work right for all the users
201
00:07:51,918 --> 00:07:56,000
okay so i've got this random project
202
00:07:53,839 --> 00:07:58,079
open and this is a very basic extension
203
00:07:56,000 --> 00:07:59,519
that is supposed to write my name as a
204
00:07:58,079 --> 00:08:01,839
comment in
205
00:07:59,519 --> 00:08:04,159
the doc of my choice so
206
00:08:01,839 --> 00:08:05,839
i'm gonna go to edit that's a good sign
207
00:08:04,160 --> 00:08:06,960
there's my command right there i'm gonna
208
00:08:05,839 --> 00:08:08,719
add
209
00:08:06,959 --> 00:08:10,560
my author name to the file
210
00:08:08,720 --> 00:08:12,720
there we go so we successfully migrated
211
00:08:10,560 --> 00:08:14,319
this extension
212
00:08:12,720 --> 00:08:16,560
awesome so
213
00:08:14,319 --> 00:08:18,800
uh basically the core in summary of
214
00:08:16,560 --> 00:08:20,720
migrating consists of two separate v6
215
00:08:18,800 --> 00:08:22,240
projects tied together by a shared
216
00:08:20,720 --> 00:08:23,759
project make sure you update your
217
00:08:22,240 --> 00:08:25,199
manifests especially that product
218
00:08:23,759 --> 00:08:27,840
architecture tag that you'll need to
219
00:08:25,199 --> 00:08:29,759
include for 64-bit and last but
220
00:08:27,839 --> 00:08:32,079
certainly not least make sure that you
221
00:08:29,759 --> 00:08:33,599
are addressing any breaking api changes
222
00:08:32,080 --> 00:08:36,000
that might have occurred
223
00:08:33,599 --> 00:08:37,839
all right so we just finished migrating
224
00:08:36,000 --> 00:08:39,759
but i'm not as happy as i could be
225
00:08:37,839 --> 00:08:41,919
because honestly the time it took me to
226
00:08:39,759 --> 00:08:44,158
write that extension was a bit longer
227
00:08:41,918 --> 00:08:46,639
than i expected because something as
228
00:08:44,158 --> 00:08:49,360
seemingly simple as writing text to a
229
00:08:46,639 --> 00:08:51,199
text buffer to a document turned out
230
00:08:49,360 --> 00:08:52,800
it was actually really hard to find in a
231
00:08:51,200 --> 00:08:54,640
document or online and then once i
232
00:08:52,799 --> 00:08:55,759
finally did find that information
233
00:08:54,639 --> 00:08:58,319
i
234
00:08:55,759 --> 00:09:01,360
needed to learn up on several different
235
00:08:58,320 --> 00:09:04,160
apis which took a long time
236
00:09:01,360 --> 00:09:05,759
so if you've ever been in that situation
237
00:09:04,159 --> 00:09:08,000
where it's taken you a long time just to
238
00:09:05,759 --> 00:09:10,958
get started applying all of your great
239
00:09:08,000 --> 00:09:12,958
extension ideas and implementing them
240
00:09:10,958 --> 00:09:15,119
then we are addressing that by
241
00:09:12,958 --> 00:09:17,838
introducing a new toolkit called the
242
00:09:15,120 --> 00:09:20,159
visual studio community toolkit emphasis
243
00:09:17,839 --> 00:09:22,800
on community here so this is a
244
00:09:20,159 --> 00:09:25,360
completely open source community driven
245
00:09:22,799 --> 00:09:27,679
project that has the goal of making
246
00:09:25,360 --> 00:09:29,519
writing your extensions easier by
247
00:09:27,679 --> 00:09:32,079
providing helpful templates helper
248
00:09:29,519 --> 00:09:34,480
methods and api wrappers and my personal
249
00:09:32,080 --> 00:09:37,839
favorite visual and textual intellisense
250
00:09:34,480 --> 00:09:40,000
additions to a lot of the common apis
251
00:09:37,839 --> 00:09:41,920
and we're also providing more
252
00:09:40,000 --> 00:09:44,080
descriptive and accurate documentation
253
00:09:41,919 --> 00:09:46,799
with more examples than ever
254
00:09:44,080 --> 00:09:49,360
and also the end game of this toolkit is
255
00:09:46,799 --> 00:09:51,599
to provide a smoother transition into
256
00:09:49,360 --> 00:09:53,278
the out of process extensibility model
257
00:09:51,600 --> 00:09:54,800
which is still a work in progress but is
258
00:09:53,278 --> 00:09:57,360
coming very soon
259
00:09:54,799 --> 00:09:59,519
and that model has the goal of also
260
00:09:57,360 --> 00:10:01,600
making writing your extensions easier
261
00:09:59,519 --> 00:10:03,278
while also making them more secure and
262
00:10:01,600 --> 00:10:06,399
more reliable
263
00:10:03,278 --> 00:10:09,200
so as an experiment let's try to write
264
00:10:06,399 --> 00:10:12,720
that same extension using the community
265
00:10:09,200 --> 00:10:15,040
toolkit in order to see the differences
266
00:10:12,720 --> 00:10:16,560
all right so i'm back in vs 2022 and
267
00:10:15,039 --> 00:10:19,679
i've already got my
268
00:10:16,559 --> 00:10:22,159
project open that i want to use with the
269
00:10:19,679 --> 00:10:23,439
community toolkit and i actually used
270
00:10:22,159 --> 00:10:25,039
one of the
271
00:10:23,440 --> 00:10:26,880
templates that this toolkit gave me
272
00:10:25,039 --> 00:10:30,319
which provided me by default with a
273
00:10:26,879 --> 00:10:32,799
commands folder and a my commands file
274
00:10:30,320 --> 00:10:34,079
as well as a vsct file which is great so
275
00:10:32,799 --> 00:10:37,359
if you want to get started using this
276
00:10:34,078 --> 00:10:38,199
toolkit make sure that you have
277
00:10:37,360 --> 00:10:41,039
this
278
00:10:38,200 --> 00:10:44,000
extensions oh here we go extensibility
279
00:10:41,039 --> 00:10:45,519
essentials 2022 pack installed so this
280
00:10:44,000 --> 00:10:47,839
is a pack that consists of multiple
281
00:10:45,519 --> 00:10:49,759
extensions such as insert guide and
282
00:10:47,839 --> 00:10:52,160
image optimizer and just a lot of tools
283
00:10:49,759 --> 00:10:54,078
that help expedite some of those
284
00:10:52,159 --> 00:10:56,958
everyday extensibility writing tasks
285
00:10:54,078 --> 00:10:56,958
that you might experience
286
00:10:57,039 --> 00:11:00,480
so from there the first thing i'm going
287
00:10:58,639 --> 00:11:02,720
to do is define where i'd like my
288
00:11:00,480 --> 00:11:04,480
command to be placed by default it's set
289
00:11:02,720 --> 00:11:07,040
in tools and you'll notice when i hover
290
00:11:04,480 --> 00:11:09,360
over tools this is awesome you get a
291
00:11:07,039 --> 00:11:11,278
visual representation and intellisense
292
00:11:09,360 --> 00:11:13,759
of what that window looks like so it's
293
00:11:11,278 --> 00:11:15,278
like a cheat sheet of here are all the
294
00:11:13,759 --> 00:11:17,519
different possible locations where you
295
00:11:15,278 --> 00:11:19,600
could place your extension in the tools
296
00:11:17,519 --> 00:11:21,600
window so really great if you're not as
297
00:11:19,600 --> 00:11:23,278
familiar with bs or you're not as
298
00:11:21,600 --> 00:11:25,200
familiar with all the different ide
299
00:11:23,278 --> 00:11:26,799
choices so i'm going to change mine to
300
00:11:25,200 --> 00:11:29,120
edit because i'd like mine to go in the
301
00:11:26,799 --> 00:11:31,919
edit window there it is
302
00:11:29,120 --> 00:11:36,560
and again if we compare and contrast
303
00:11:31,919 --> 00:11:36,559
we can go to that same location
304
00:11:38,240 --> 00:11:42,399
and you'll see that this is a lot
305
00:11:40,399 --> 00:11:44,159
less intuitive to understand and there's
306
00:11:42,399 --> 00:11:46,159
a lot of ideas that look like this that
307
00:11:44,159 --> 00:11:48,000
you may not really know what corresponds
308
00:11:46,159 --> 00:11:49,519
to what off the top of your head and
309
00:11:48,000 --> 00:11:51,200
require you to have a doc open at the
310
00:11:49,519 --> 00:11:52,320
same time so
311
00:11:51,200 --> 00:11:54,079
less ways
312
00:11:52,320 --> 00:11:56,240
it gives you less of an opportunity to
313
00:11:54,078 --> 00:11:58,319
experiment and just test the waters of
314
00:11:56,240 --> 00:11:58,320
it
315
00:11:58,559 --> 00:12:02,239
so we've got that in place and then i
316
00:12:00,799 --> 00:12:03,919
think the most noticeable difference
317
00:12:02,240 --> 00:12:07,039
with the toolkit comes when you open up
318
00:12:03,919 --> 00:12:10,159
your command file by default this
319
00:12:07,039 --> 00:12:11,838
is awesome it's only 11 lines versus if
320
00:12:10,159 --> 00:12:13,519
you go into
321
00:12:11,839 --> 00:12:15,519
your version of the extension that
322
00:12:13,519 --> 00:12:17,600
doesn't use the toolkit
323
00:12:15,519 --> 00:12:19,679
there is a lot more going on that you
324
00:12:17,600 --> 00:12:21,920
need to consider addressing such as the
325
00:12:19,679 --> 00:12:23,759
initialize async function or service
326
00:12:21,919 --> 00:12:24,639
provider what is service provider i
327
00:12:23,759 --> 00:12:26,720
don't know but you're gonna have to
328
00:12:24,639 --> 00:12:27,759
learn up on it when you get started
329
00:12:26,720 --> 00:12:30,560
writing your
330
00:12:27,759 --> 00:12:33,838
extensions so if you want just a quick
331
00:12:30,559 --> 00:12:35,679
way to put down all of your ideas in one
332
00:12:33,839 --> 00:12:38,079
spot and just see your extension running
333
00:12:35,679 --> 00:12:41,039
that much faster than having the toolkit
334
00:12:38,078 --> 00:12:42,399
in place to define the stuff that's most
335
00:12:41,039 --> 00:12:44,159
important to you
336
00:12:42,399 --> 00:12:46,078
is great in this case the thing that's
337
00:12:44,159 --> 00:12:48,000
most important to me is defining what my
338
00:12:46,078 --> 00:12:50,239
command is supposed to do once it gets
339
00:12:48,000 --> 00:12:51,519
triggered which is why execute async is
340
00:12:50,240 --> 00:12:54,159
here by default
341
00:12:51,519 --> 00:12:57,679
so i'd like to write that same comment
342
00:12:54,159 --> 00:13:00,639
in this case my name to text buffer and
343
00:12:57,679 --> 00:13:03,120
as i mentioned before we have a lot of
344
00:13:00,639 --> 00:13:05,278
great documentation for this ongoing
345
00:13:03,120 --> 00:13:07,600
toolkit project my personal favorite is
346
00:13:05,278 --> 00:13:10,399
the tips and tricks section which has a
347
00:13:07,600 --> 00:13:12,000
lot of very common scenarios that occur
348
00:13:10,399 --> 00:13:14,240
when you're writing an extension that
349
00:13:12,000 --> 00:13:15,759
you probably want to know about and i'm
350
00:13:14,240 --> 00:13:17,120
going to copy paste
351
00:13:15,759 --> 00:13:19,120
this top one
352
00:13:17,120 --> 00:13:23,200
which will allow me to write
353
00:13:19,120 --> 00:13:23,200
text to the active text view
354
00:13:25,759 --> 00:13:28,720
so i'm going to add that in
355
00:13:29,360 --> 00:13:34,919
and i'm going to change this to my name
356
00:13:36,320 --> 00:13:40,360
and let's go ahead and hit run
357
00:13:53,600 --> 00:13:57,839
okay so we're back with that same random
358
00:13:56,078 --> 00:14:00,958
console application that i have and i'm
359
00:13:57,839 --> 00:14:02,800
just gonna add my name to the top of it
360
00:14:00,958 --> 00:14:06,000
so as you can see i now have the toolkit
361
00:14:02,799 --> 00:14:07,838
version of that extension command
362
00:14:06,000 --> 00:14:09,278
and there it is
363
00:14:07,839 --> 00:14:12,959
see how much simpler that was that was
364
00:14:09,278 --> 00:14:14,559
really quick just to put that basic idea
365
00:14:12,958 --> 00:14:16,879
on paper and have it
366
00:14:14,559 --> 00:14:18,399
out in the world in action like that so
367
00:14:16,879 --> 00:14:19,838
if you want to take advantage of that
368
00:14:18,399 --> 00:14:22,000
toolkit be sure to check out the
369
00:14:19,839 --> 00:14:24,639
extensibility essentials extension
370
00:14:22,000 --> 00:14:26,240
download it and experiment and also
371
00:14:24,639 --> 00:14:29,039
because this is open source and
372
00:14:26,240 --> 00:14:32,079
community driven share your feedback and
373
00:14:29,039 --> 00:14:34,480
also get involved so if you've got ideas
374
00:14:32,078 --> 00:14:36,719
that only your mind could come up with
375
00:14:34,480 --> 00:14:39,759
the possibilities are endless and you
376
00:14:36,720 --> 00:14:42,079
have the power to change it
377
00:14:39,759 --> 00:14:43,919
and that concludes the talk on what's
378
00:14:42,078 --> 00:14:46,638
new for extension developers and visual
379
00:14:43,919 --> 00:14:48,078
studio 2022 we talked about migration so
380
00:14:46,639 --> 00:14:49,839
if you haven't migrated your extension
381
00:14:48,078 --> 00:14:52,239
already and want to learn more be sure
382
00:14:49,839 --> 00:14:54,880
to check out the extension support link
383
00:14:52,240 --> 00:14:57,360
we also talked about the toolkit to help
384
00:14:54,879 --> 00:14:58,480
make writing your extensions easier
385
00:14:57,360 --> 00:14:59,839
and if you want to learn more about how
386
00:14:58,480 --> 00:15:01,759
to get started with that go to
387
00:14:59,839 --> 00:15:03,760
v6cookbook.com
388
00:15:01,759 --> 00:15:05,198
and last but not least as i mentioned
389
00:15:03,759 --> 00:15:07,519
before that toolkit is going to be a
390
00:15:05,198 --> 00:15:09,838
transition into the upcoming out of
391
00:15:07,519 --> 00:15:11,600
process extensibility model designed to
392
00:15:09,839 --> 00:15:13,199
let you write your extensions easier
393
00:15:11,600 --> 00:15:14,879
help your extensions to be more reliable
394
00:15:13,198 --> 00:15:16,559
and more secure so if you'd like to
395
00:15:14,879 --> 00:15:18,559
learn more about that experiment with
396
00:15:16,559 --> 00:15:20,399
the initial bits see samples and
397
00:15:18,559 --> 00:15:22,078
honestly just see any more upcoming
398
00:15:20,399 --> 00:15:24,159
announcements in the world of visual
399
00:15:22,078 --> 00:15:26,879
studio extensibility be sure to check
400
00:15:24,159 --> 00:15:28,559
out the vs extensibility repo and with
401
00:15:26,879 --> 00:15:30,320
that thank you so much for watching and
402
00:15:28,559 --> 00:15:33,039
thank you so much for providing all of
403
00:15:30,320 --> 00:15:35,040
your awesome extensibility ideas to help
404
00:15:33,039 --> 00:15:39,838
users be more productive across visual
405
00:15:35,039 --> 00:15:39,838
studio and until next time happy coding
29457
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.