All language subtitles for 11-Visual Studio 2022 for extension authors (720p_30fps_H264-128kbit_AAC)

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranรฎ)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu

Original subtitles

[Music]

hey everyone i'm leslie richardson from

the visual studio extensibility team and

welcome to this talk on what's new for

both existing and aspiring extension

developers and visual studio 2022

so vs 2022 is super exciting there are a

lot of major updates to it including

64-bit which can help improve

performance across the board and there

have never been more ways to customize

your ideal development environment with

additions such as color tabs or themes

or just all the new github integrations

than there have been in this version but

for a lot of people creating that ideal

development environment is not complete

without the extensions that they've come

to know and love and that's where you

all fit in as extension authors so the

goal for this talk is to share with you

some steps for how to successfully

migrate your extension to visual studio

2022 so that everyone can continue

taking advantage of all the awesome

productivity and customization add-ons

that your extension offers while also

introducing a new toolkit that can help

you write your extensions even faster

and easier than before so let's check it

out so migration is the first and

probably most important topic that we'll

be discussing today in order for your

extensions to continue being used in

visual studio 2022 you're gonna have to

follow a couple migration steps that

we're gonna demonstrate today

all right so i am currently in visual

studio 2022 and i've got this 2019

extension that i've written that i'd

like to migrate to vs 2022

and after doing all my modernization

updates so making sure that my.net

framework is still compatible with

visual studio 2022 as well as any other

package references we can get into the

core migration which comes down to

creating two

two separate v6s you want to create two

projects one that targets visual studio

2019 and lower and the other one that is

targeting visual studio 2022 and both of

these v6 projects are going to be tied

together by what's called a shared

project which allows us to share code

that's going to be similar between the

two versions and the reason why we are

setting up the extension in this way

when migrating is because we need to

address all of the breaking api changes

and interop assembly changes that have

happened in the transition to 2022 of

which there are a lot of especially with

the addition of 64-bit so in order to

make sure that

certain uh assembly references work in

one version but not on the other then we

can use the shared project setup to

differentiate between the two fairly

easily

so

i've got my 2019 targeting project and

the first thing that i'm going to do is

just add my shared project to the

solution

so create a new project

go into shared

i'm going to call mine add author

underscore shared

okay so there's my shared project of

course we need to include a reference to

that project in the 2019

project so let's go to reference

add that

so now the question becomes what goes in

this shared project so usually most of

your cs and res x files are fair game

anything you intend to share between

both versions of your extension so

specifically your commands your

tool windows that sort of thing and

that's what i'm going to add in mine

so as for what not to add to this shared

folder you don't want to add your vsct

file but you do want to make sure that

your build action under properties is

set to vsct compile

and

there you go and you want to make sure

that your include and b6 property is set

to false

and similarly you also don't want to

move your b6 manifest which we're going

to play around with in a second

so we've got the vs 2019 project set up

and we have the shared folder or the

shared project and now we're going to

add the vs 2022 project which i've

already set up so i'm going to add an

existing project and go find that

great so there is our vs 2022 project

and there's a couple things that we need

to address here in order to

actually get this extension to run

properly in bs2022 so the first being

let's add a reference to that shared

project like we did with

the 2019 one

so there it is

and then

we need to make sure that we have our

nuget packages updated specifically the

sdk and the build tools ones and you

want them to target a 17.0 version

of uh visual studio and this is what

will allow us to continue using the

extension libraries and apis and visual

studio 2022.

all right so from there we're going to

modify our v6 manifest i'm going to open

up the code version because we're going

to add

a different tag manually

so first and foremost make sure that

your installation target is set to

17.0 to 18.0

and then

inside your installation target we're

going to add a new tag called product

architecture so this is like the money

shot right here this is something that

you have to make sure that you have

otherwise your users won't be able to

install visual suit and won't be able to

install your extension in visual studio

2022 and we don't want that

so we're going to add 64 and this is

accounting for the fact that visual

studio is 64-bit therefore your

extension needs to be compatible with

64-bit bs

and also make sure you update your

prerequisites to

go to 17.0 to 18.0 as well

all right so from there we've updated

our manifest we've updated our nuget

packages and before you hit run stop do

not pass go do not collect 200 because

we need to address those breaking api

changes that have happened in that

transition and luckily even though

there's a lot of them we have provided a

lot of resources with the list of all

the different apis that have changed

have been broken or have been moved as

well as solutions for how to fix them

so in my case my issue is going to deal

with this dte and underscore dte

typecast failure so i bet it would be

addressed if i just change my namespace

to the latest envdte80

namespace instead

so going into my code specifically this

issue is going to take place

in

my

one of my shared files

you'll notice that i get an error but if

i'm looking at the visual studio 2019

version of this shared file it's not

giving me an error when i use this

definition but if i were to swap over to

vs 2022 then it is going to give me the

error so we can just fix this by

changing to enb dt 80.

and from there

we should be good to go and give this a

try and see if the extension has

successfully been migrated so i'm going

to set

that project as my startup

and hit run

so depending on the complexity or the

size of your extension you may have to

address a lot of breaking changes or you

might get lucky and not have to address

any

so keep in mind please double check them

either way just to make sure that it's

going to work right for all the users

okay so i've got this random project

open and this is a very basic extension

that is supposed to write my name as a

comment in

the doc of my choice so

i'm gonna go to edit that's a good sign

there's my command right there i'm gonna

add

my author name to the file

there we go so we successfully migrated

this extension

awesome so

uh basically the core in summary of

migrating consists of two separate v6

projects tied together by a shared

project make sure you update your

manifests especially that product

architecture tag that you'll need to

include for 64-bit and last but

certainly not least make sure that you

are addressing any breaking api changes

that might have occurred

all right so we just finished migrating

but i'm not as happy as i could be

because honestly the time it took me to

write that extension was a bit longer

than i expected because something as

seemingly simple as writing text to a

text buffer to a document turned out

it was actually really hard to find in a

document or online and then once i

finally did find that information

i

needed to learn up on several different

apis which took a long time

so if you've ever been in that situation

where it's taken you a long time just to

get started applying all of your great

extension ideas and implementing them

then we are addressing that by

introducing a new toolkit called the

visual studio community toolkit emphasis

on community here so this is a

completely open source community driven

project that has the goal of making

writing your extensions easier by

providing helpful templates helper

methods and api wrappers and my personal

favorite visual and textual intellisense

additions to a lot of the common apis

and we're also providing more

descriptive and accurate documentation

with more examples than ever

and also the end game of this toolkit is

to provide a smoother transition into

the out of process extensibility model

which is still a work in progress but is

coming very soon

and that model has the goal of also

making writing your extensions easier

while also making them more secure and

more reliable

so as an experiment let's try to write

that same extension using the community

toolkit in order to see the differences

all right so i'm back in vs 2022 and

i've already got my

project open that i want to use with the

community toolkit and i actually used

one of the

templates that this toolkit gave me

which provided me by default with a

commands folder and a my commands file

as well as a vsct file which is great so

if you want to get started using this

toolkit make sure that you have

this

extensions oh here we go extensibility

essentials 2022 pack installed so this

is a pack that consists of multiple

extensions such as insert guide and

image optimizer and just a lot of tools

that help expedite some of those

everyday extensibility writing tasks

that you might experience

so from there the first thing i'm going

to do is define where i'd like my

command to be placed by default it's set

in tools and you'll notice when i hover

over tools this is awesome you get a

visual representation and intellisense

of what that window looks like so it's

like a cheat sheet of here are all the

different possible locations where you

could place your extension in the tools

window so really great if you're not as

familiar with bs or you're not as

familiar with all the different ide

choices so i'm going to change mine to

edit because i'd like mine to go in the

edit window there it is

and again if we compare and contrast

we can go to that same location

and you'll see that this is a lot

less intuitive to understand and there's

a lot of ideas that look like this that

you may not really know what corresponds

to what off the top of your head and

require you to have a doc open at the

same time so

less ways

it gives you less of an opportunity to

experiment and just test the waters of

it

so we've got that in place and then i

think the most noticeable difference

with the toolkit comes when you open up

your command file by default this

is awesome it's only 11 lines versus if

you go into

your version of the extension that

doesn't use the toolkit

there is a lot more going on that you

need to consider addressing such as the

initialize async function or service

provider what is service provider i

don't know but you're gonna have to

learn up on it when you get started

writing your

extensions so if you want just a quick

way to put down all of your ideas in one

spot and just see your extension running

that much faster than having the toolkit

in place to define the stuff that's most

important to you

is great in this case the thing that's

most important to me is defining what my

command is supposed to do once it gets

triggered which is why execute async is

here by default

so i'd like to write that same comment

in this case my name to text buffer and

as i mentioned before we have a lot of

great documentation for this ongoing

toolkit project my personal favorite is

the tips and tricks section which has a

lot of very common scenarios that occur

when you're writing an extension that

you probably want to know about and i'm

going to copy paste

this top one

which will allow me to write

text to the active text view

so i'm going to add that in

and i'm going to change this to my name

and let's go ahead and hit run

okay so we're back with that same random

console application that i have and i'm

just gonna add my name to the top of it

so as you can see i now have the toolkit

version of that extension command

and there it is

see how much simpler that was that was

really quick just to put that basic idea

on paper and have it

out in the world in action like that so

if you want to take advantage of that

toolkit be sure to check out the

extensibility essentials extension

download it and experiment and also

because this is open source and

community driven share your feedback and

also get involved so if you've got ideas

that only your mind could come up with

the possibilities are endless and you

have the power to change it

and that concludes the talk on what's

new for extension developers and visual

studio 2022 we talked about migration so

if you haven't migrated your extension

already and want to learn more be sure

to check out the extension support link

we also talked about the toolkit to help

make writing your extensions easier

and if you want to learn more about how

to get started with that go to

v6cookbook.com

and last but not least as i mentioned

before that toolkit is going to be a

transition into the upcoming out of

process extensibility model designed to

let you write your extensions easier

help your extensions to be more reliable

and more secure so if you'd like to

learn more about that experiment with

the initial bits see samples and

honestly just see any more upcoming

announcements in the world of visual

studio extensibility be sure to check

out the vs extensibility repo and with

that thank you so much for watching and

thank you so much for providing all of

your awesome extensibility ideas to help

users be more productive across visual

studio and until next time happy coding

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