Visual Studio 2022 - with Kendra Havens

Durée: 69m35s

Date de sortie: 24/10/2021

Not long to go until the release of both .NET 6 and Visual Studio 2022! But if you can’t wait that long - the preview releases of both can be downloaded right now! In this episode, I was joined by Kendra Havens to chat about what’s new and coming! Kendra is a Program Manager on the .NET and Visual Studio team, and we also chatted a bit in this episode about what software development is like internally at Microsoft, and learn that Microsoft face the same struggles as most other companies! We’r...

Hey, everyone, welcome to the Unhandled Exception podcast.
I'm Dan Clark and this is episode number 27.
And today I am super excited to be joined by Kendra Havens to geek out on Visual Studio.
Welcome to the show Kendra and thank you so much for joining me.
Hey Dan, it's so good to be here.
So I should give you a proper formal introduction and so Kendra is I'm hoping I'm getting this right.
A program manager on the .NET and Visual Studio team focusing on .NET Touring and the testing experience in Visual Studio.
And I've done a ton of amazing videos on visualstudio.net, call, C sharp and the testing tools as well.
I hope I've got that right.
Yeah, that's me. That's all definitely I should use that for a bio.
That works perfectly.
Yeah, I've been a program manager at Microsoft for five years, two time intern before that.
Really enjoyed a lot of it.
I've gotten to move around a little bit and learn a lot of parts of the .NET team.
And yeah, most recently I've landed on the test experience in Visual Studio.
So the test explorer rewrite that we did in 16.2, that was me and my team message me if you hate it.
Yeah, it's been exciting.
And yeah, all the test platforms and mess test, the features and in Visual Studio,
like live unit testing or code coverage or all of that.
So that's us.
I guess we should say message you if you love it as well, not just hate it.
Yeah, we even better.
Yeah,
Maybe in a bit we can dive into what the everyday role of being a PM on the visual studio team looks like
because it's such a huge piece of software and I love to be flying the wall on one of the daily stand-ups.
They're not interesting.
They're not.
It's just everybody talking too long and yeah, it's
I think that's every company's stand-up on the planet.
I'd love to corral them, you know, and just like if everybody could get it down to like a minute,
it would be so much better.
But instead, like people start asking questions and it's like a mini team meeting and I'm like,
well, I don't need to know what branches you all are using.
So I'm going to go.
So is this one Visual Studio stand-up or there's lots of different teams that make up Visual Studio?
There's lots of different teams.
Yeah, so my stand-up that I could be better is the unit dusting stand-up for the test experience team.
Yeah, I would go to the other dev team stand-up that I work with, but they are in Prague,
so it's not like 3am or something, but maybe there's a little bit more succinct.
I've completely forgot what time it is over there.
It's 9am here in Seattle.
9am, so we're 10 past 5 at the moment.
So before we delve into Visual Studio, this episode list to mention,
and this one goes to Tom, who is at Sealing Fish on Twitter.
So I'm sure there's a story behind that Twitter handle somewhere,
and he tweeted, many thanks, Chris Sainty.
I've been meaning to try out Blazer for ages and your talk on the Unhandled Exception podcast was the nudge I needed.
Tom's referring to Episode 19, where Chris Sainty joined me to chat all about Blazer.
And you're not on your own, Tim. Chris definitely sold it to me, too.
And I'm actually looking forward to Blazer Desktop, which, actually, I haven't tried it yet,
but now I've installed Visual Studio 2022.
Is this something I can play with now?
I believe so.
Yeah, I believe Blazer Desktop.
I should probably look up what exactly we've put into preview.
But yeah, I'm sure if you install the web workload, you'll have something to play with there.
Oh, nice.
I installed the preview version last weekend, and I've been using that all this week.
And I never thought to actually just try new project Blazer Desktop.
In fact, I'm going to try it now, actually, right now, live, or maybe not live,
but you know what I mean?
Click new project.
Yeah, I wanted to Google and verify really quickly that.
Yes, it's shipping with .NET 6.
And since 6 is what's supported in Visual Studio 2022,
I believe that's how you want to get started.
I can't see it in the templates.
I'll have a look later.
I should have tried before we started the podcast, but never mind.
But yeah, I'm really looking forward to that.
And there's so many things in .NET 6, like the hot reload.
Oh, my gosh.
Hot reload is absolutely amazing.
Every time I'm using it, I'm like, oh, my gosh, this is what I thought development would be like,
I guess, not the f5 being just kind of being an instant part of your,
it's really, really cool.
It's like edit and continue all the time.
Is it as fast as people say it is?
So it's like pretty much media.
It is.
It is absolutely, I think, as fast as people say it is.
Like, obviously, we're all working on different machines and everything,
and we need to make sure they're reproducible every time before we make any,
you know, exaggerated claims or anything like that.
But every time I use it, I'm like, oh, my gosh, I wish I was recording so we could do a perf blog post or something like that.
We just, yeah, it's going to be really exciting.
Actually, recently in the release notes, we also have hot reload in the test explorer
is in sort of an experimental preview.
And this is exactly the idea of hot reload, essentially.
We won't rebuild a test necessarily if we don't need to between test runs.
So if, you know, you don't have any of the root edits that disqualify it from hot reload,
that does require and trigger like a full rebuild.
So it can be super fast.
So we actually realized in the test explorer, we have a problem because now people can't tell if the test run completed and it was just really fast.
Or if that's like an old test result and or if it's like, so we needed to,
well, we still need to rethink how we communicate what is a new test result and what isn't,
which has been a really interesting, wonderful problem to have that it's too fast to differentiate.
So it's too fast.
So task dot delay await task dot delay.
Yeah, just start adding that to your test.
Oh, brilliant, brilliant.
So before we carry on, I just want to quickly address kind of like the elephant in the room in the fact that,
and this is to avoid me getting lots of messages from listeners to know the time currently a ready user,
because this has come up in quite a few past episodes.
But what listeners probably don't know is that I've actually been using Visual Studio for a very, very long time.
And pretty much since my first programming job in 1998, which was all C++ and long before I started.net.
I'm looking back on Wikipedia.
It looks like Visual Studio is like one year old at that point.
It's certainly come a long, long way.
And as I said before, last weekend I installed 2022, which was very exciting, the preview version.
And especially when I start creating new projects and seeing the words dotnet six in my project files.
And it's not long ago.
Why is it before dotnet six gets released go live?
I think it's a month away.
Not at all.
Yeah, November 8th, I believe.
Sorry.
So the Visual Studio launch is just before dotnetconf.
So all of those dates are when I need to be ready by.
But yes, it's early November.
So what's it like in the Microsoft Teams at the moment with all this?
It's not hectic at all.
We plan perfectly.
Don't worry about it.
You're saying those words very carefully, though.
No, it's definitely a crunch time.
Just trying to figure out, you know, people really high expectations for GA versions and quality and stuff.
So lots and lots of bug fixes are going in that people have been awesome enough to report during the previews.
And yeah, I'm excited about how much adoption we've seen on dotnet six already.
I think it's much more hardened, I guess.
I think we have a lot of people very interested in features like hot reload and a blazer desktop and those things.
And people are really excited to kind of try out early versions of whatever is getting out there.
So that just makes the product better, you know, when more people use the preview.
So very excited about that.
Was it Maui that's been delayed slightly?
I think it's Maui, isn't it?
I believe so.
I should look up what our official wording is.
I don't work as closely on any of that.
But yes, I believe that's been in some talks.
I've read the blog post and I can link to that in the show notes.
But I think that's really good because there's so many companies I've worked from the past where things aren't quite ready.
But then marketing and management have just said, well, tough.
This is the deadline.
This is the goal live date.
And it must have been such a hard decision, but it definitely sounds like the right decision because it's a new thing.
Well, it's not this.
The new infosamarin, but then you've got other stuff like the cross platform desktop stuff.
So there's so much more in Maui.
Et pour le faire, c'est bien de faire le bon début.
Je pense que c'est une bonne décision.
Donc pour les listeners qui ne savent pas ce qu'on a fait dans la 6 et le studio visual,
c'est-à-dire ce qu'on a fait dans le studio visual 2022.
Oh, je suis tellement excité.
C'est le plus grand chose, le 64-bit.
C'est évidemment le studio 64-bit qui a été release en studio visual,
et nous n'avons plus été liés à le processus 32-bit.
Nous sommes fantastically excitées.
Oh, je me dis juste comment la rile au hot-reload est, mais ce n'est pas super faible,
parce qu'il y a aussi plus de choses à faire.
Donc je pense qu'il y a beaucoup de improvements en performance
dans beaucoup de différents secteurs.
Nous avons été en train de bouger beaucoup de choses à la proche
pour aller en train de faire ce travail.
Et nous avons aussi pu faire des improvements en performance
et juste utiliser plus de mémoire en général.
Donc quelque chose que je ne parle pas assez de,
c'est que les tests explorent,
mais la discovery utilise un minimum de 60% de mémoire que l'on utilise.
Et ce sont des...
Vous savez, sans 64-bit, sans aucun hot-reload...
Donc les improvements en performance que vous allez voir
vont être de beaucoup de différents places
qui sont un peu élevés à l'avenir,
parce qu'on a eu une chance de penser
à notre architecture dans une manière différente.
Donc des improvements en performance
peuvent être prévus.
Je suis très heureux de voir
les exceptions de mémoire qui sont en train de faire le travail.
On peut en faire un en train de faire la telemetrie,
même si pour ceux qui n'ont pas le temps,
on peut voir beaucoup plus de telemetrie
pour les gens internes, Microsoft,
qui peuvent être plusieurs milliers de personnes,
ce qui est un bon plan de données
pour savoir comment quelque chose est en train de performer.
Donc on essaie d'avoir des gens internes
sur les prévus les plus vus,
donc on peut essayer de tester vraiment bien
dans beaucoup de scenarios.
Et je suis vraiment heureux de voir les résultats.
J'espère qu'on a plus de performances,
je sais que Canika est un peu
de performance, et je sais qu'elle travaille plus.
C'est cool de voir.
Fantastique.
Donc tous les graphes et comparations
seront blogues par Willi?
Oui, je pense qu'on a un peu de comparations
de côté par côté et un peu de tables
pour comparer les temps pour certaines opérations.
Je pense que les choses grandes
que nous nous concentrons sont différentes
sur les recherches, donc on peut trouver des files,
on peut trouver des références, et des solutions de la solution.
C'est toujours un grand point.
La discovery de tests est aussi un grand point.
Nous avons fait plus de travail, comme je l'ai dit,
dans le cycle de vie de Visual Studio 2019.
Vous avez vu un peu de ceci plus tard.
Donc performance, 64 bits.
La reloadation de la hot est très intéressante.
Les viewers,
avez-vous entendu de la reloadation de la hot?
Quels sont les idées?
Je ne sais pas, en fait.
Je pense qu'on a eu assez d'écouteurs,
donc...
Je ne voulais pas parler de ça,
et de ce que c'était cool, sans expliquer.
C'est probablement une des les choses plus importante
en commençant à imaginer que les listeners ne l'ont pas entendu.
J'aime.
Oui.
Donc la reloadation de la hot,
pour ceux qui n'ont pas entendu,
est l'idée de ne pas avoir besoin de faire un complet build
entre, je pense,
compilé et de montrer les résultats
dans votre editeur de Visual Studio.
C'est très édite et continue,
quand vous êtes débuggé.
Ça peut compiler un petit part de code
et le mettre en bas
à ce que vous êtes en train de regarder
les binaéries que vous êtes débuggées.
Cette idée peut être appliquée
au-delà de la mode de debug,
ce qui est très excitant.
Donc, comme je vous ai dit,
quand vous êtes en train de faire un test,
vous ne devez pas nécessairement
faire un complet build.
Il y a certaines édites que nous pouvons
comprendre ce qu'ils sont
et les mettre en place sans faire un complet build.
Vous pouvez commencer à avoir des résultats
et réduire les temps de build.
Donc, le build almost looks
suspiciously quick.
Nous sommes
encore en train de travailler
pour confirmer que, oui,
un build de reflux est arrivé
et vous êtes, bien,
en quotation, je dirais,
vous êtes reflux, je pense.
Vous pouvez continuer et entrer
dans le code que vous avez
et vous pouvez continuer à développer
sans avoir de temps.
Et ça inclut
de refluxer les browsers, aussi.
Donc, vous êtes
assez en train de contrôler
ou vous devez même avoir de la sauver
et que vous ne devez pas avoir de la sauver.
Vous devez même avoir de la sauver.
Vous devez changer,
comme C-S-S, JavaScript,
ou peut-être pas JavaScript, mais
comme vous le typez,
il est reflux.
Je ne suis pas sûr que tout le langage
est en support, mais je suis vraiment impressionné
avec les différents types de projets
de projet de projet de projet,
donc les projets de projet de unités
et les projets de MAUI
et de la WebAssembly,
et je me suis dit,
comment on already supportait
comme Xamarin,
et on était très proche
avec ce que nous avons fait,
mais c'était très bien
pour le technologie continue
qui nous a supporté
tous les formes de vintes,
tous les types de projets que nous utilisons.
C'est un bon spread.
Oui, je pense que c'est
underestimé, mais je ne pense pas
que c'est maintenant, mais
c'est facile de se distraire, même si
vous faites un changement et que vous avez un compile
et un 5 ou tout,
peut-être un cycle de 15 secondes
entre changer le code et les résultats.
C'est assez
pour vous faire sortir de la zone, et
d'avoir un média comme votre code,
peut-être sur un second moniteur, pour voir que ça change
comme votre code.
On a des études
et tout,
et si quelqu'un s'interrompt,
c'est-à-dire 15 minutes
pour se réjouir
comme ils étaient, ou quelque chose de sérieux,
pour la main pour se concentrer et se réjouir
dans la zone.
Donc, tout ce que nous pouvons faire
pour réduire les interruptions
et pour changer le cycle de développeurs,
ça nous semble incroyable.
Absolument, nous sommes très excitées.
Il y a beaucoup de choses à parler,
je suis en train de construire
mes 60 minutes de parler et tout,
qui seront donné en novembre
après le grand élevé, mais
c'est beaucoup de choses à couvrir,
toutes les improvements en productivité
dans Rosland, que je suis très excitées
pour que nous puissions faire du Monde,
et que la team de Rosland
soit vraiment cool.
Donc, quelques fixations pour
aller dans les projets de file scope,
et de voir
tout le sable,
juste location au poste,
ceomos,
et de réinventer cette table sur le bเร
c'est pas intéressant, mais
vous rappelez gradement
dans le nombre de vampire,
les bases sont vraiment belles,
en allant tout votre code à gauche
et en en étant réel
de certains de les bases curielles.
Nous faisons notre best.
Je pense que c'est ça avec la prochaine version de C-Shart
avec... Vous m'avez mentionné les bases de namescoupes.
C'est vraiment l'indentation.
Mais c'est probablement l'une des
des features que je suis en train de regarder
parce que je suis un grand fan
d'un code succès, donc je n'ai pas de plus de choses
qui ne sont pas nécessaires.
Et pour pouvoir juste s'en faire
de cette indentation et vraiment
faire le plus petit possible.
Je suis plutôt en train de regarder le tout
minimal de l'API.
Je n'ai pas vraiment joué avec ça mais je vais continuer de voir
les choses sur Twitter avec les codes snippets
en en étant plus petits et plus petits.
Absolument.
Le code qui s'arrête, sorry,
nous avons parlé des codes snippets
l'autre jour et ce que nous pouvons
approfiler. Je suis vraiment
excité de beaucoup de choses,
les trucs cool qui ne sont pas en place.
Je pense que c'est un période de contrôle,
n'est-ce pas? Le code de shortcut pour faire ça.
Je vais juste
essayer de faire des références de ride
parce que je n'ai pas normalement pas tendance à ça.
En fait, alt enter,
je pense que nous avons maîtrisé ceci aussi.
Donc, nous allons tous travailler et faire le même chose.
Je dois double checker.
Mais oh, oui, j'ai l'opin de Visual Studio.
Oui, donc nous avons aussi un
resharpé keyboard shortcuts pour
quelqu'un qui a besoin
et qui a besoin d'installer le Studio Visual.
Je vais vous voir, alt enter.
Oui, ça marche
avec le default.
Oui, je vais entrer
ou contrôler, tout ce que vous voulez.
Oh, oui, vous êtes un grand shortcut keyboard.
Oui, je l'ai absolument aimé.
Je vais essayer de
me faire arrêter de me mettre la main
et de me faire atteindre le moul.
Avec moi, en utilisant le Studio Visual
preview tout ce week,
je pense que le seul point de payage
est juste de relearner différents shortcuts de keyboards.
Je dois avoir un mémoire très mauvais
en général. Mais pour les shortcuts de keyboards,
je me semble avoir
une mémoire très élevé
de voir un shortcut de keyboards, je le remercie.
Et tout autre, je n'ai pas un mémoire awful
de les noms et tout, mais
avec les shortcuts de keyboards, ça me semble juste de l'avant.
Donc, ce n'était pas que le point de payage.
Je me suis regardé ce que l'on a dit
et ça m'a fait bien.
Donc, je me suis dit que je vais
explorer le test et tout. Je pense que c'est
de contrôler la R1, la R1
et la RL1, la R1
et juste de l'apprécier à ces deux.
Mais c'était le seul point de payage
que je ne sais pas. C'était tout le monde
d'autre. Je pouvais juste utiliser la version preview
de Studio Visual 20-22 et je l'ai utilisé
toute la semaine.
Vous utilisez ça ? Je ne sais pas
si le maire de keyboard
de la R1 est très très
le mémoire de shortcuts, mais
nous avons un maire de keyboard de R1
si vous utilisez le Studio Visual.
Donc, quand je suis utilisé
le maire de keyboard,
je utilise le Studio Visual.
Oh, ok. Je ne sais pas
quoi.
Je vais le faire
mais je pense que... Ok,
donc, il y a des différences ?
Ok, cool.
Alors, avec le Studio Visual
avec le RéSharp,
vous avez le T-Control
qui tient tout le monde.
Et le maire de R1, c'est juste de
de l'apprécier à la R1
et c'est un maire de Studio without RéSharp
qui est ce que j'ai utilisé cette semaine.
Il semble être à la top, dans le bar de la title,
il y a un search tout le monde
et je pense que c'est le Q-Control
qui, plutôt que d'être un pop-up comme RéSharp,
c'est juste un search
à la très top. Et en fin, je peux faire
le Q-Control et puis mettre en place
ce que j'ai voulu le chercher
et j'ai trouvé ça très rapidement.
Oui, j'ai été super heureux.
Nous avons un search global, c'est super sympa.
J'ai été chouché sur le Q-Control
parce que je pense que nous avons
figuré à moins de
que 10% de gens
qui l'utilisent régulièrement et nous étions
comme, mais c'est le point principal
de l'entrée. Donc, nous avons
ajouté un code search pour ça aussi.
Donc, tout ce que vous avez en contrôle
T, comme sur les files de search,
et tout ça, vous pouvez aussi
en contrôler le Q-Control,
c'est assez cool. Vous pouvez toujours
mettre en place ce que c'est comme un M pour
les membres de search, ce genre de chose.
Je pense que, en général,
comme vous le dites, pas beaucoup de gens
ont l'air de l'utiliser avec des shortcuts
avec des développeurs.
Je vois souvent que les mâles
utilisent trop de choses et juste des actions
manuelles, où en fait, un
combo de keyboard qui est
un second, et ils sont
en train de prendre des âges et des âges.
Donc, je pense que, comme vous le disait,
c'est le Q-Control pour tout ce que vous voulez
faire si vous voulez trouver quelque chose.
Je veux juste que les settings
apparaissent aussi.
Oui, et les Q-Control, ils le font.
Ça indexe tous les
settings que...
Les settings doivent être taggées avec les mots
corrects que vous avez en fait,
donc, nous n'avons pas de la force
d'utiliser tous les mots dans les settings.
Nous avons demandé aux gens
de tagger les mots, et ça indexe
tous les menus dans le studio visual.
Donc, le Q-Control
a commencé comme le type IDE
de search, et ensuite, nous avons ajouté
un code de search pour ça aussi.
Oh, bien, je vais le charger.
Donc, je vais juste
faire des Q-Control,
des spaces de white-show,
et ça me fait
dire que c'est le setting, donc je peux le installer.
Donc, à l'aise de la point de discovery,
si vous voulez un set,
ne vous faites pas de manuel,
juste des Q-Control.
Oui, c'est drôle, vous dites
des discovery, vous pouvez seulement
découvrir des choses à l'aise de Q-Control
si vous savez déjà que
ils existent dans les mots qu'on vous regarde.
Donc, je pense que vous dites
que ces listeners sont des listeners avancés,
et ils le connaissent déjà, et ils le savent
comme, oh oui, je suis en train de
faire des settings de white-show,
des settings de code format, des settings de config editor,
etc. Nous avons toujours
tous les UIs, et c'est comme ça que les gens
explorent et l'appliquent, mais
oui, avec des développements avancés,
les gens ont de l'aise
de la UIs pour les searchs
et des shortcuts de keyboard
pour les garder leurs mains sur leurs quilles,
et ça fait le plus de temps
d'utiliser l'IDE.
Je pense que vous avez un nouveau,
vous pouvez vraiment, en visual studio 2022,
nous ajouterons show in test explorer,
c'est comme un document de sync
et de solution explorer, si vous utilisez ça,
donc, que ce soit
un document que vous avez type,
ça vous va vous ajouter
dans la solution explorer,
vous savez ce file que vous êtes travaillant,
c'est la même chose avec le test explorer,
donc si vous avez type dans un test
dans l'IDE, je pense que
quel shortcut de keyboard vous avez décidé,
je dois regarder ça encore, mais
ça va vous ajouter
dans le test explorer et vous éclater
tous les nodes et tout, c'est un shortcut
super récouté,
parce que c'est aussi un nouveau feature de navigation
qui vous permet de
faire un peu de chocs entre l'IDE
et le test explorer, c'est cool.
anything
que ça ne me déterrisse pas pour les mouses, c'est tout bon.
oui, c'est l'idée,
pour sûr, c'est l'une des
les choses que je suis content de faire,
depuis que nous parlons de shortcuts de keyboard.
donc, un peu d'épisodes auparavant,
j'ai été jointé
par Jesse Liberty et James Wolfe
pour un épisode sur Git,
la chose de la source control.
Je dois dire que j'ai toujours utilisé
un outil extérieur, plutôt que
un idées, soit en visual studio
ou en visual studio,
j'ai toujours utilisé un outil smart Git.
Je n'ai pas vraiment expérimé
comment la integration de Git VS a changé
pendant les années, mais j'ai entendu
que beaucoup de travail a été
dans la integration de la visual studio.
En fait, sur l'épisode Git, Jesse a dit
que la différence est
de la nuit et de la nuit, et que la construction
a été d'imprové. Donc, ça semble que c'est un
grand focus pour la team de visual studio.
oui, c'est
très bon à entendre,
je
n'ai pas de confiance
pour tous les scenarios de Git.
Je suis très, aussi, un
command line.
J'ai utilisé le Git bash.
J'ai originalement essayé de utiliser
des choses comme, oh, oh,
qu'est-ce que j'ai utilisé pour la source
ou la Git GUI, etc.
Mais c'est
un truc très intéressant,
compliqué pour un homme,
pour penser dans ces termes
de réseignement et de
penser sur les branches et de
l'intervention et tout ça. Et c'est quoi la
mode de la mode ? Amis-vous la mode de la mode
qui est locale ?
Mais je pense que
il y a beaucoup de percs
dans la window de changement
de la visual studio.
C'est un grand improvement
de l'avenir.
Les petits choses sont très
belles, comme pouvoir
mettre des changements en
une nouvelle branch, avec
des clics, parce que je n'ai toujours pas
de nouvelles branches, avant de
faire des changements et puis je peux
les mettre dans un stash.
Avec juste 3 clics, c'est très, très
bien. Mais un autre truc
que j'aime vraiment, c'est que
le clic initialement est un repository
et vous ne vous en avez pas besoin
de penser, et ça va ajouter des ignores
et tout ça. Je ne l'ai pas
pensé, je ne l'ai jamais eu, on n'avait pas
d'item templates pour des ignores
qui vous ont besoin d'un projet.
Pourquoi n'avons-nous pas?
Nous avons pas de ça, donc maintenant on le fait.
C'est très bien.
Vous avez surprise, je pense que
j'ai eu l'impression que je n'ai pas créé un projet
dans la visual studio avant, que c'était
un cheveu de cheveux, d'un gist,
je suis curieux.
J'ai dû faire un visual studio 2019,
j'ai appris ça.
Je travaille avec 10 versions
différentes de choses,
je suis désolé si je ne suis pas
en train de le faire.
Je l'ai dit avant,
mais je n'ai pas d'accord avec mon memoire,
donc c'est probablement moi qui l'ai faite.
Je ne l'ai pas, mais
je suis en train de la nouvelle version.
Je ne l'ai pas réveillé si je l'ai vu
avant, mais maintenant je dois créer
un githc, un repository,
et je peux choisir, donc ça peut aussi créer
directement de
ce que j'ai associé avec mon account GitHub.
Ça s'applique à un site remote,
naturellement,
je peux créer et mettre, et si je
suis logé dans
mon account GitHub visual,
je vais dire,
j'ai créé un nouveau repository,
et le default est privé,
c'est vraiment cool.
Donc, avec le default, je peux créer
un repository privé
qui est vraiment beau.
Surtout si c'est un projet personnel,
je travaille, je ne peux pas
le mettre à l'autre côté,
et si je perds le directeur,
parce que je fais beaucoup de choses
pour faire un demo,
et que je suis en train de faire un demo,
je peux perdre un peu de travail,
parce que je ne me met pas souvent,
mais depuis que c'est allé automatiquement,
et que je peux créer un repo,
je peux juste poursuivre
tout ce que j'ai besoin, c'est vraiment cool.
Ça c'est assez cool.
J'ai présumé les supports, both GitHub et Azure,
DevOps Repos,
je crois que ça, je dois
créer un, je dois aller le voir,
mais oui, je crois que ça fait.
Mais tu es totalement correct,
je l'ai juste lancé en 2019,
et j'ai créé un projet,
et il m'a dit que je ne l'ai pas été ignoré,
donc tu es correct, c'était ma mémoire.
C'est assez cool que ça se trouve,
même si je n'ai jamais observé que je ne l'ai pas fait au premier place.
Peut-être que ça a fait ça,
je ne sais pas,
après un moment,
travailler dans ces tools et les combinations
d'extensions, ou tout ce que tu as utilisé
pendant les années,
c'est tout ça,
mais c'est le meilleur
improvement.
Tu ne le sais pas vraiment, mais ta vie
s'en sentait mieux,
et c'est un bon

C'est cool.
Speaking of GitHub, je crois que en 2022,
tu as eu des supports multi-repo,
aussi.
Oui, nous avons des supports multi-repo
dans GitHub, et dans Visual Studio,
c'est très cool.
Ça a commencé dans Visual Studio 2022,
preview 3, on a un blog post
sur ça, Taser Rope.
Je sais que c'était
très très réquesté,
c'était l'une des choses qui étaient sur le top
de notre backlog, que nous
essayons de faire, c'est assez
excitant.
Je l'ai vu, mais je réalise que
je pense que, et je ne pense pas que
d'autres projets,
qui ont été exprimés
par les repos multiples,
mais je pense que le seul temps que je
ferais ça, c'est si je suis
temporairement, si j'ai un projet,
comme un web app
ou un desktop app, et puis j'ai un
projet privé de l'application, un projet
custom, un projet de l'autre,
qui est un autre projet de repos,
parfois je peux changer le
reference de l'application pour un
projet de l'application, pour que je
puise le faire temporairement,
pour que je puisse le faire.
Et si je fais des changements
entre les deux,
ça serait utile, même si je
suis temporairement ajouté le second
projet, ça serait utile.
Et par rapport à la
soutenir des repos multiples,
et la expérience de la GIT,
en général, explorer
les branches et maintenant les repos multiples
et la history de la
repos locale et de la history de la
GIT, la windows de la history de la GIT
est vraiment avancée, je suis toujours
vraiment surpris de la date,
je peux me mettre
dans le contexte,
donc maintenant, être capable de
browse aussi sur les repos, c'est très, très cool.
Comment est la performance ?
Est-ce que c'est l'un des écrans que vous êtes
focussé sur ?
Je crois que oui, c'est l'un des choses
nouvelles, donc je pense que quand on le voit
dans le monde, on va savoir un peu plus
sur comment la performance est faite.
Je n'ai pas eu de problème,
mais je ne vais pas travailler
dans les repos avec 4 millions de
lines de code, je pourrais voir
comment Roslyn fait,
les libraries de la Runtime,
et voir comment elles le font,
je suis vraiment stressée.
Je suis sûr que Taser le sait,
n'est-ce pas que les windows qu'il a besoin
ont été, je ne sais pas si les noms sont
quelque chose avec la GIT,
des supports de large file,
parce que les codes de Windows sont
très grandes, donc je pense qu'ils ont
dû faire quelque chose custom pour ça,
mais ça va probablement être un bon test.
Oui, on probablement
ne fait que les files que vous êtes
browse, et c'est tout très rapidement.
Donc, voir tous les commits est moins
plus important, et on ne fait pas
le file entier,
il n'est pas comme si vous avez
déclenché tout le monde
sur votre machine, c'est vraiment
une navigation,
les choses à la top,
et ce que vous voulez
faire, et de la faire
avec un subset.
C'est cool.
Je pense que les features de Visual Studio,
je pense que beaucoup de nous travaillent
remotely, donc la collaboration
est très importante, et c'est pas
nouveau, avec la support de Live Share.
Est-ce que l'on est en train de
travailler ? Ou est-ce que c'est un
fixé producteur ?
Absolument. On est vraiment
super investi dans Live Share.
Ceci est travaillé sur la
experience de code VS Code,
qui est un feu,
qui est absolument beau.
Je pense vraiment que le next step
dans la collaboration de team est
de la collaboration de shared workspace
que vous pouvez tous
hopper sur les mêmes
environnements et de shares.
Les files docker, c'est
ce que votre environnement de devin est,
donc vous n'avez jamais eu
des issues de dépendance, parce que vous
êtes tous travaillés dans les containers, et vous avez
ce contexte de shared, et vous pouvez
hopper sur les calls, et ils ont
déjà des chats de Live, et le code VS
est très cool. Je suis vraiment
excité pour les chats et les calls
pour aller à Visual Studio.
Je ne suis pas sûr de quand ça se passe, mais
c'est
un partagé de plan de jeu.
Je suis très excité pour la collaboration
et la collaboration de share et tout.
C'est évidemment que quand la lockdown
a commencé, j'étais
comme tout le monde en travaillant chez moi, mais
je suis en position où je peux travailler
chez moi maintenant. Je ne pense pas que je veux
aller de retour, mais la technologie
a fait ça facile de travailler remotely, et
j'ai eu un bon set-up.
Donc, je n'ai pas de commut.
Mon commut plus long
était une heure et un demi de chaque
tour. Je vais regarder
le sud de Redding.
Donc, si vous pensez à ça, c'est
trois heures un jour, 15 heures
une semaine, deux jours de travail
juste en détail.
Je ne sais pas pourquoi on a fait ça, et
c'est tellement mal pour l'environnement.
Qu'est-ce que je fais ?
Oui, je pense que
beaucoup de gens sont là,
beaucoup de team et tout.
Nous étions déjà un équipe de hybrid,
j'ai déjà eu mon unité de test
qui toujours s'appelle dans nos devs
en ligne de santé. J'ai mentionné qu'on a
une équipe de prog.
Nous avons été pensant sur le travail remotely
pour un long temps et juste en prenant
une certaine décision accessible et inclusive
de tout le monde. Il y a des challenges
intéressantes, mais aussi un peu d'opportunités.
Je sais que
j'ai vraiment aimé la idée de
mon commut en deux minutes,
pas deux minutes, moins que un minute,
de la caméra de la maison,
de mon desk.
C'est assez beau.
Je vais dire combien plus grand est votre maison
si ça fait deux minutes ?
Je vivais comme j'ai imaginé.
Non, je vivais dans un appartement.
C'est pas
ce que c'est.
Je veux dire, deux minutes pour
tourner sur ma caméra et vérifier mon
maître, et faire sure que je sois professionnel,
même si je l'ai juste fait au bâtiment.
C'est ce qu'une des deux minutes de réel.
Je pense que je vous ai mentionné
dans un autre épisode, mais
il y a un moment
quand j'ai eu la rencontre de la team,
où il y avait quelques gens.
Vous pouvez voir que mon webcam
est positionné sur le top de mon monite.
J'ai s'est rendu et mon pieds
s'est étendu par le câble
et il a flippé le webcam
sur le bas, sur le bloc,
derrière le desk.
J'ai joué des chaussures
et un peu plus approprié.
Mais la toute
de la rencontre a été
une upshot.
Lutuellement, quelqu'un a
joué sur la table, donc c'était
un peu petit, mais
l'un des deux moments
c'était un peu récordé.
Oh, c'est trop mauvais.
Je me souviens
d'avoir des mishaps.
Je pense que je m'avais
dit à ma team de test
que j'ai aimé les deux,
que je vous aime, que je vous aime,
que ça soit un peu intéressant.
Je pensais que je m'étais
mutée, mais je ne pense pas que c'était
bon.
Ils ont besoin de ça.
C'est assez positif, ça aurait été moins.
Oui.
Quels sont les
challenges que vous avez face ?
Parce que vous avez l'idée de
la grande comf
d'aujourd'hui, et de la
Visual Studio Release.
Mais en général, quels sont les challenges
que vous avez face
en partant de l'envers de la
Visual Studio ?
Je suis super heureux que vous vous demandiez
cette question.
Je vais vous dire que vous avez
été en train de se défendre
dans les jours passés.
Donc,
il me semble que
chaque 3 ans
ou alors,
nous avons juste reçu
quelque chose
qu'il ne faut peut-être pas
être rewritten.
Et c'est de la mien
qui me défend.
C'est un problème
plus important.
Je pense que,
éterniellement, vous ne le voyez pas
que beaucoup, mais
éterniellement, à Microsoft.
En fait, je vais juste
utiliser Intellitest, c'est un exemple.
Nous avons plusieurs
test de fuzz que nous avons créé
à Microsoft.
Nous avons à peu près 4.
Un de eux est un service de fuzz.
Vous pouvez dire que ça ne compte pas.
C'est une technologie de fuzz.
Je suis juste...
On ne parle pas de
chacun assez.
Et il me semble
qu'on doit faire
plus de ça.
Donc, Intellitest
était originalement
un projet de recherche de MSR.
Et c'est très, très cool.
Donc, ça génère des tests.
C'est un test de fuzz.
C'est un test de fuzz.
Ça génère des multiples inputs
qui peuvent aller dans un certain test.
Ça utilise des valeurs maximums.
Ça utilise un range de
ces idées sélectives.
Ça génère un test de fuzz
de possible valeurs.
C'est vraiment cool.
Ça se dévise par des acceptations
de 0 et des acceptations de nulle.
Et tout ça.
C'est une technologie

Il y a beaucoup de choses
qui pourraient être improved,
mais on n'a pas vraiment
vraiment été à la course.
Nous travaillons sur ça.
Je ne suis pas sûr
quand on va le relancer.
C'est un ticket
très fort.
Mais on travaille sur tout.
Mais,
comme nous faisons ça,
MSR
revient à moi
avec une autre génération de tests.
C'est un effort.
Et puis je parle
à l'office de Windows.
Et je l'ai appris
qu'ils ont créé
leurs propres tests de fuzz.
Et je me suis dit
« Pourquoi ne nous travaillons tous
ensemble sur ça ?
Nous sommes tous dans la même compagnie.
»
Donc, je ne sais pas.
Ça me fait
que
je vois ça
dans des places
que je ne peux pas
parler de tout à l'heure.
Je me demande
dans 20 ans
que je ne sais pas
si quelqu'un me tiendra.
Et je vais me dire
tout à l'heure.
Mais je ne sais pas.
Maintenant que je suis
dans les autres
pour 5 ans,
je vois
beaucoup de patterns
qui me démarrent
juste de me faire mal
sur les outils de tooling.
Et je me sens
que
tous nos collaborations
sont beaucoup plus
mieux.
Je me sens
que l'open source
est une des solutions
pour ceci.
Si les gens
ont des choses
qui existent,
ça serait bien.
Et nous serions
plus incentivés
à travailler ensemble
plutôt que de commencer
à se faire mal
chaque fois.
Et juste en regardant un projet
qui est 80% de la façon
qu'ils sont en train
de dire,
« Ah, c'est parti ! »
C'est
ce qui a été
un petit
coup de poignet
sur mon dos,
je pense.
Mais c'est aussi
un petit coup
que les PMs
doivent adresser
dans leur travail.
Un peu de notre travail
est de s'assurer
la narrative
et de s'assurer que les gens
ont un contexte
sur la solution.
Oh mon Dieu,
la co-coverage.
Donc nous sommes maintenant
soutenus.
Donc nous avons
ce grand sort
de push de qualité
interne.
Vous savez,
ça se passe
régulièrement.
Et tout ça,
nous disons,
« Hey, nous devons
faire plus de tests
et avoir plus de validation
avant de regarder
les PRs,
parce que nous pouvons
prendre des bugs
plus tard et la vie
sera mieux.
Il y a
tant de solutions
interne
pour la co-coverage.
Nous supportons
trois, je pense,
et c'est parce que
7 ans plus tard,
quelqu'un a décidé
de forcre un outil interne
et c'est juste
de me faire
tomber.
Nous ne pouvons pas
supporter différentes solutions
pour les windows et l'office
et les 365
et toutes ces différents teams.
En Azure,
oh mon Dieu,
je pense que
parfois, on a l'impression
que Microsoft
a un grand outil
de l'extérieur,
mais quand vous vous en
interne, vous réalisez
qu'ils ont beaucoup de problèmes
de la même chose.
C'est juste
le miracle de
nos équipes de relance
et de nos équipes de marketing
et tout,
qui font que nous avons
tout ensemble.
Mais, oui,
je suis prête
de
arrêter
de faire
des gens smarts
de la même chose
sur et sur
de nouveau
et je vais travailler
sur la même chose.
De combiner nos efforts
et de
collaborer
et de avoir contexte.
Et quand vous commencez
un projet,
j'imagine que quelqu'un
d'autre a fait ça
avant.
C'est probablement
ma plus grande chose.
Je me sens
en mode long-grant,
donc je suis désolé
pour ça, mais je pense
que c'est cons nationalism HTML

packet
Je suis très heureux
de les rés查 outra
monpère.
Je suis heureux
derayer
lesirk
et




irgendone.

Farthing.
Paroles.

مع
avec les plateformes, les plateformes sont une exception intéressante, je pense,
et comment ils font des choses et comment on va après la performance et la sécurité
et toutes les différentes choses qui font une language différente et différentes libraries.
Mais avec les outils, avec les outils, nous devons pouvoir utiliser beaucoup de choses les mêmes.
Et Rant.
Je suis content d'avoir la question, mais est-ce que je peux en inclure tout ça dans le podcast ?
Oui.
Cool.
Je pense que tu as mentionné que Microsoft est une compagnie,
quand c'est tellement grand, il peut bien être que plusieurs entreprises.
Et je vois les problèmes que tu décrives dans beaucoup plus de compagnie.
Je pense que c'est l'avantage d'un équipe de sprint,
que c'est à peu près 5 à 7 ou quelque chose.
Et puis, ce sont les silos, et c'est un bon problème,
parce que c'est la façon d'avoir le travail,
mais c'est important que les silos communiquent bien.
Et c'est juste que la plupart des temps, ce n'est pas le cas,
et c'est un problème difficile à résoudre.
Et oui, c'est pas juste Microsoft, je pense que c'est un problème industriel.
C'est tout le monde.
Oui, c'est tout le monde.
Je ne peux pas croire que beaucoup de efforts ont été faits dans le software pendant des décennies.
C'est probablement perdu, parce que,
juste de la turnover,
les nouvelles personnes sont arrivées sur le TUM,
ou elles n'ont pas fully compris,
ou le management a décidé que c'était une cause de loss
quand il y avait juste 10% de la façon qu'il y avait,
et comment beaucoup de choses nous avons besoin de poursuivre.
Et, pour le moment, beaucoup de technologies ont changé,
pendant ces décennies,
et peut-être qu'on doit commencer à faire un nouveau,
pour en garder ce changement.
Mais,
à un certain niveau, on n'a pas fait ça.
C'est ce que j'ai vu,
et je pense que je n'ai pas été là depuis longtemps.
Je me demande de quoi plus.
Je vais pouvoir observer ça,
et j'espère que tu peux déduire quelque chose de ça.
On va donner un coup.
Mais, la technologie a changé beaucoup.
Tu as des webforms, un MPC, un blazer, etc.
En tant que code a été écrit avec une bonne séparation,
donc le logiciel de business est séparé,
le .NET n'a pas, même si les versions de C-Sharp sont plus tardes,
il y a beaucoup de nouvelles features de langage.
C'est très, très bas, c'est compatible,
même en regardant le framework.
Donc, ton logiciel de business,
en tant que ce n'est pas interprété avec ton UI,
si tu as fait ça en le premier lieu,
tu n'auras pas besoin de faire tous ces gros rédits massifs,
surtout pas le logiciel de business.
Mais c'est un truc,
je pense que les développeurs veulent de nouveau et de shine,
et ils veulent faire des nouvelles choses,
plutôt que de la code de maintenance.
Donc, c'est un peu la défaut pour beaucoup de développeurs.
C'est tout.
C'est tout ce qui est en tech, je ne comprends pas.
C'est un peu de rédits.
Absolument.
Comme tu dis, c'est un peu de wasteage.
C'est ce que nous faisons.
Et c'est difficile de savoir quand c'est le bon moment,
et quand c'est pas.
Parce que tu n'as pas envie de être borgé par les erreurs de l'année passée,
mais il y a des choses qui sont absolument amusantes.
Il y a, internavant,
nous avons construit un nouveau test explorer.
La team de Windows a construit leur propre test explorer,
car le test explorer et le Visual Studio n'avaient pas besoin de ce qu'ils ont besoin de.
C'était 8 ans plus tard,
et ils ont ajouté tout ce qui était super.
Un peu de ce que nous avons aujourd'hui,
parce que nous avons parlé de ça,
et je l'ai interviewé le team, et je me disais,
c'est incroyable,
peut-être que nous ne pouvons pas utiliser ça de l'extérieur
et mettre ça en Visual Studio
pour pouvoir utiliser les développeurs de l'extérieur.
Et il y a des raisons que nous ne pouvons pas utiliser,
mais je pouvais apprendre de plein de leur design UI.
En fait, l'une des features de Visual Studio 2022,
la test remote,
l'idée de connecter votre test explorer à un environnement extérieur,
ils avaient, pour des années,
avant qu'on a réellement élevé ça.
La test remote peut connecter à un environnement remote,
comme un container Linux, WSL ou un SSH.
Ils ont particulièrement besoin de tester sur SSH,
parce qu'ils ont besoin de tester sur différents VMs
qui ont différents systèmes d'opérations.
Parce que c'est des Windows,
ils ont été très investis dans ce scénario pour des années.
Oh mon Dieu,
could you imagine,
how many people could have used that
externally, on Microsoft,
for the past 7 years or whatever.
So they had a hierarchy long before our test explorer did.
It was just, you know, it's great that people made improvements at all.
You know, I rather, it exists than not.
It was the TAFE team and the TAFE framework.
It's a fantastic framework,
which actually now people can use externally.
You can use the framework with the whole test explorer
that they created was just an internal tool.
And now they're looking to move to our test explorer
because we've added a lot of the features that they love
and we fixed some performance issues
that they've always had in the background.
But it's just one of those examples
and there's dozens and dozens that you see of like,
wow, we really could have used this
and more people could have benefited sooner.
So that's what we're after right now.
With the Intel,
I think I've heard of it,
you mentioned about the IntelliTest,
but I've not played with it.
So actually that's completely forgotten about it.
So I know.
So is that the same as PECS,
almost that kind of thing?
It is PECS.
It is the rapper of PECS.
He uses that whole framework.
Yeah, it only works for Donut framework,
right now.
So it's pretty,
it was a little, we got to dust it off a little bit.
We got to get it up to .NET Core,
but we are working on it.
It's been a super high ask for some years now.
So does that include,
it doesn't work with Donut standard class by Buzzer?
No, it doesn't.
I will watch this space.
We'll get there.
Yes, it's like on my backlog.
I think it's the most,
I think it's the second most highly voted on the backlog.
The most highly voted is probably bringing something
from enterprise down into professional or community.
Just give everything away for free.
I can't, I'm sorry.
I'm trying.
I ask every year at least.
You got to try.
Yeah, we got to try.
Taking the word IntelliTest and changing it a bit
and changing the enter code, IntelliCode.
So one thing when playing with,
I don't know whether this is part of IntelliCode actually,
but playing with Visual Studio Preview
as I was typing code,
suddenly I'll get like gray code
filling in the whole line for me.
Press Tab and complete.
Yeah, that is IntelliCode.
That is IntelliCode whole line completions.
There's kind of two features there,
which might be at work.
We also have argument completion and Roslin,
which will, it's not as smart as IntelliCode,
it's not using any AI,
but it is scanning like your local context
and the overloads that you are most likely to choose
in that area and filling them in
with like that ghost grayed out text
and filling out the whole line.
And yeah, hitting Tab, Tab will accept that completion.
You have to have IntelliCode turned on, I think.
You have to have a few of the IntelliCode things checked on
to get that, but it's very cool.
I don't think I turned anything on explicitly.
I just started using it.
Maybe it's in the preview or maybe,
maybe I've not got it fully turned on
and I've got features that I don't know about.
Let me do.
Right, going back to this control queue,
I'm gonna do that, I'm pressing.
For anyone who's not getting IntelliCode
full line completions,
there is a setting that you can turn on
and tools options.
Maybe we have it on by default
in the 2022 previews now.
That could be it.
Oh, I've got something saying,
enable all IntelliCode preview features
requires restart.
So I'm gonna click on that.
This is from the control queue drop down.
Let's click on that and see what happens.
Oh, now I've got the settings window.
A long list of preview features,
which a lot of them aren't ticked.
So this is enable.
Oh, okay.
So enable all IntelliCode preview features
is unchecked.
So the gray line completion
isn't actually the whole thing.
So the IntelliCode preview features
are provided to you.
So I'm gonna click that.
Just so don't forget,
I'll play with that later.
It very well could have been argument completion
that's on by default.
I would need to check
but argument completion,
again, does almost the same thing
just without using
of the AI smarts
that IntelliCode does
because it's AI
that we run over GitHub.
So thousands and thousands of repos
that we then learn common code patterns
and that's what
whole line
like is inserted into your code.
So
we can do a lot more
and like it, that's what orders
the IntelliCence list
and they can look at like common
just coding behaviors
that you're actually taking.
So like repeated edits
is a really cool feature.
So yeah, it can do quite a few things
and it's kind of bringing AI
into your daily flow
which is pretty cool.
I can't believe all this week
I've been thinking,
I've been experiencing IntelliCode
and I didn't even have it turned on.
That does sound like IntelliCode though.
So I'll have to,
you haven't had any stars
in your IntelliCence list?
Yeah.
You have?
So something had to be on.
Maybe some things are.
Sounds like maybe I had half of it
but not maybe these
super new preview features
or something.
But I've ticked it now.
So next week I can experience
the preview features
which is quite exciting.
Yeah, sounds great.
I don't know what state or settings are in.
Sorry about that.
I'm just very confused.
There must be so much to remember
with all this stuff.
Well, that's true.
That's my job though.
I kind of look all of this up.
But very cool.
Yeah.
So you're both on the Visual Studio
and dot net.
Are you working across the two teams?
Yeah.
I work specifically on dot net tools
in Visual Studio.
So for a couple years there
I was working all on productivity
in Roslin
and then I got put on the test explore
and Mika does productivity now
and we do talks together a lot.
So I'm still fairly well versed
in what they're checking in.
Just a lot of cool things.
If you want a list of more things,
I have more things we can talk about.
I love like removed unused references.
That's a really big one.
Sink namespaces, value tracking, inheritance margin.
There's a lot of cool stuff coming out.
Yeah, definitely.
As you said before,
I'm a big keyboard shortcut fund.
So the whole just being able to like control
period and let code write itself.
Even things like when doing dot net code
obviously nowadays dot net
you do a lot of dependency injection.
So that typically tends to be
constructor injection.
So just better hit a shortcut,
create a constructor,
insert the interface
but then automatically creates
the backing field
and then just carry on coding.
Just little things like that
just save so much time.
I think pole member up was a big one
in that area
that we got a little bit more recently
or like what is it?
Oh, extract a base.
We also have that as well.
So kind of extracting base classes for
yeah,
there's there's some common.
Yeah, love that team.
I love all of the little things that they check it.
There's always like a huge, huge list
and we can are usually like,
how are we going to fit like
those 50 things and source generators
and editor config
and like date time and time span completion?
Like it's a lot for sure.
Well, I do have a few more suggestions,
but maybe I can send you
of we could say them now if you wanted.
I think it's okay.
So one of the big ones,
I think which would be a big improvement
in productivity,
which it doesn't seem to do is
you know,
when you've got IntelliSense
and then you get the dropdown,
it doesn't and I could be wrong.
It doesn't seem to show items
or potential items
that you would have got
if there wasn't a missing
using statement at the top.
So quite often my flow would be like
maybe you're adding a new get package
and then fragments say,
let's call it dapper.
Let's say you're adding dapper
and then in your code,
you're doing whatever dot
excuse starting typing,
excuse tasting,
but you've not got the using statement.
In Visual Studio,
you've got to type out
the full execute async.
You've got to know
what the method's called
and then press control period
to add the using
where in hit dimension
other IDs,
but like no,
that's okay.
Yeah.
In Mida,
as you typing IntelliSense
is also including items
when you've got missing
using statements,
if that makes sense.
No, yeah.
We actually have dabbled
a lot in that area
to try to improve
exactly this workflow
that you're talking about.
So in the case
where you already have
the reference in your package,
but you don't have
the using statement,
we will scan through
all of the types
in that reference
and try to.
So this is completion
for un important types.
That was,
that is available.
Maybe this is another
preview scene
that I've not enabled.
We added it a while back,
but it's totally possible
that it's just like
it doesn't provide completion
within the characters
that you'd expect it to.
So maybe it is a bit late,
but I want to check
really quick
and see if
there is still a checkbox
for it that you need.
I didn't think you,
well, let's check.
I'm just going to quickly check
that once things true
by adding Dapper
to a new project.
I'm fairly sure it wasn't
because it did seem to be
quite a big pain point
this week
when I was using it
because it was kind of,
I had to then go to the
documentation
to find out what the function is
on to the call
where normally I would get
the IntelliSense.
Sure, yeah.
So this is completion
for un imported types
and we added that
ages ago.
Sorry.
Oh, yeah.
But, oh gosh,
it is, it is still a checkbox.
Sorry.
So it's in tools options,
C sharp, IntelliSense,
and it's the second from
the bottom show items
from un imported name spaces.
That should,
maybe we should get that
on by default.
I do have it checked
by default,
but I'm not,
I've, you know,
I demo this all the time,
so I'm not sure what
the default state is.
Can I send you pictures
on this?
No, I don't think this
is quite,
it's not like,
it's quite limited,
unfortunately.
That's a cruel one,
you can turn it on then.
I'm so sorry
if you've been experiencing
that by default.
That doesn't make,
hmm.
So the setting is in
the C sharp text editor
under IntelliSense,
and it's one of the checkboxes
at the bottom.
C sharp text editor
IntelliSense.
Right.
So it's kind of,
it's almost like a
three stage checkbox,
and it's a black square.
So it looks like
it's half on,
but not fully on.
So if I change that
to be a full tick,
I don't know what the
in between state is
that it was currently on.
So I take that now,
so I will play around
with that offline.
But yeah,
that's brilliant that's there.
It sounds like
it would be definitely one
I would suggest
that's made a default
because all this week
that's kind of
a bit that was like,
I suppose
that's my only really
frustrating bit
that I hit
because I had to go back
to the documentation
and find out what the full
method was when actually
IntelliSense was ticked
IntelliSense would have just
told me as I was typing.
Absolutely.
I believe so.
I'm trying to think,
I'd like to like,
you know, actually try out
the scenario
and see what might be missing.
But yeah,
we even have a way to sort of
filter for types that aren't
currently imported in the IntelliSense list.
Like it even has its
own filter these days.
So it's definitely there,
but there could be
a number of reasons, you know,
it's not triggered
or if it's,
I forget what the
partially turned on setting
is for this, but
there's a couple other things
like we've tried.
For a while we had a service
that would go and find
all of the like
thousand most popular types
on Nougat.
And it would always
suggest like completion
for those as well as
actually adding the reference
and import statement for you.
And a lot of people
really, really liked that.
But since like
we kind of need to keep it up
to date and we,
this stuff is really tricky
because we ended up
realizing that some of the types
we had indexed were like
immediately out of date,
especially like the ASP.net,
anything Jason serialize.
Like there's a bunch
of different system.txt.
So if we're recommending
honestly like the,
it's not the most popular
package yet,
but it is the most common
used,
but it's still the wrong thing
to do for what framework people
are using.
It got really complicated.
So I think we're still trying
to kind of stand up that service.
I'll have to check on where it was,
but we definitely,
yeah, that's definitely an area
that's interesting that we've,
we've dabbled in.
I think the most recent coolness
we've had is we do add
missing usings on paste.
So if you copy and paste code
from one file to another,
it'll automatically grab the usings
just when you control V
and put it in the new file.
I'm really excited about that one.
That's the VS 2022
kind of add on.
Oh, and I think we'll do it
in razor actually.
Let me just check.
Yeah, yeah, yeah.
So we now also,
we're able to do that
in razor editors as well,
which is great
cause it's all a different kind
of at using import
statement as well.
Oh, nice, nice.
And then you've got the C sharp 10
global using statements
as well.
So I don't know how I feel
about that one to be honest.
It's kind of...
It's a mind bender.
Yeah.
We'll see, we'll see.
You know, we got to try.
I'm definitely with you on the
what do you call it?
The namespace one.
What's it called?
File scum?
Yeah, definitely a place.
I'll have to talk to Mika
and figure out
what that partial checkbox is.
That's bugging you now.
I can see it.
Yeah, now it's going to bug me a lot.
Thank you for bugging me.
This is what we do all day.
Is there anything more in
Visual Studio that's coming in
2022?
Oh my gosh, so much.
I haven't even talked about
half the testing things.
Have you heard of Playwright?
I have, yes.
Well, actually, no.
Yeah, I did talk about a lot
of testing things.
We talked about remote testing.
We talked about hot reload,
showing test explore,
test audio cues
is one that I really love.
We did release it just before
2017.
So you can't get it in the
later versions of 2019.
Test audio cues place a sound
when your test run is completed.
Does it play a different one
if it fails?
Yes.
And can you customize it?
Heck, yes, we can.
I love these questions.
This is exactly what we designed for.
So now I'm thinking
if you've got a big speaker
in the office
and if anyone's test
fail, it kind of like announces
it from the entire team.
Yeah, you can do that.
You could be very,
I'm going to say fun and not
evil with this feature.
Yeah, it'll accept like any wave
file uses the Windows 10 sound
dialogue.
So you already have a lot of
default sounds in there that you
could just kind of customize
or you could upload absolutely
anything or not upload,
but just, you know, point it to
any wave file in your computer
and it'll play that sound.
Well, my mind defaults to what
sounds can we have for a failure,
but we should have happy sounds
for success as well, shouldn't we?
Really happy sounds in the office.

You can have like a little applause.
You go.
Yeah, it's great.
You can imagine how annoying
that would be after a while.
Yeah, it could be.
So, you know, so our defaults
are like little dings or something
or chimes that are just, you know,
built into the Windows 10 sound
kind of scape, but it's, it's,
it is a really cool feature
because if you're multitasking
and you kicked off a test run and
you started doing something else
or checking email or kind of
going, going, you know, in a
different direction, it'll kind
of bring you back and it's that
subtle kind of cue.
It's also, it started as an
accessibility feature.
So, you know, developers,
blind developers would need to be
having their screen readers
like checking output to figure
out if the test run completed
and that was just awful.
So, it's, it's one of those
examples of like, yes, adding
more accessibility features
usually just massively improves
things for everyone.
And so really excited about that
one.
Stuff like that is so, so
important.
I think it's easy to take for
granted normal usage and forget
just how little things like that
can really impact people
that are maybe partially
sighted or have hearing
difficulties or whatever, whatever
it might be.
It's just so important to really
think about that as part of the
UX design.
I think someone pointed out,
just developers with any kind
of attention disorder.
It's also helpful to bring them
back to like any kind of process
they kicked off.
So, they use audio cues for that
as well, which is, you know,
everybody needs their own
configuration and their own
things and their own environment.
So, it's really, really cool to
get to be a small part of that.
Yeah, I think these little
changes because Visual Studio
has so many users, has such
a big impact.
Millions, yeah.
We actually have thousands of
blind developers, I believe.
I believe that it was something
like 2000 or something.
I was like, what?
That's so, I don't know.
That's so cool.
That's amazing that, because
obviously code is very text-based
and blind developers can still
develop.
That's just fantastic.
Yeah, and, you know, live their
whole lives and have their jobs
and just do their thing.
And, you know, it's really good
to be a part of just any place
that kind of prioritises
that experience for people.
OK, so one more thing, Playright.
I knew you could say that.
Sorry, I was like trying to,
I almost dived right into it
before I even talked.
Yeah.
So, Playright is a new testing
framework that Microsoft has come
up with.
It is language agnostic, so it does
have, like, a C-sharp adapter
and everything, but JavaScript,
Python, Java, it all works for
this.
This is our new UI testing
framework.
So, if you loved, you know, like
coded UI recorder in the past
or anything like that, this is
definitely the very, very much
newer version.
This is built to be asynchronous
and it is cross-platforms.
It works on all operating systems
with all modern browsers.
And it does have a recorder.
That's, like, the first thing
that people ask, like, can I just
use the website?
And it generates a test for you?
Yes, you can.
So, just check out Playright.
It's felt like, you know, the
writer of a play.
And that's kind of the new
testing UI framework that we're
excited about.
Oh, I can definitely include a
link to that in the show notes.
It's one of these things that
have been on my list for a while.
It's a long list, you know what
it's like.
It's kind of such a long list
of things you want to play with,
but not enough time.
Is this kind of, like, a similar
kind of thing that you might have
used Selenium for, that kind of
thing?
Yeah.
So, I actually didn't know what
I was missing a little.
So, Selenium doesn't do great
with asynchronous code.
There's actually, like, sleep
in times that you have to build
in, sleep threads that you have
to build in if you're calling
services or anything with some
kind of latency that you can't
always.
So, Playright has all of that
basically at the core of its
architecture.
It's all async await everything.
It's all task.
So, that's very cool, with almost
like every action.
So, as you click on things and
you generate code, it'll
await user actions, like user
clicked on this text and
or change this field or
selected a drop down or press
this button or something.
It awaits all those sort of
tasks in your test as it
generates.
So, it is as if, you know, a
person is going step by step
through and it can replay it.
It can replay it headlessly or
you can actually, like, watch
it replay in the browser.
All of actions that you took for
your web test, which is
super cool.
Just everything people want.
So, I don't actually build that
one.
So, I feel like I'm allowed to
compliment them because that's a
different team than me.
That's one of the, that's
actually the test framework that I
don't own.
My team has MS test and that
kind of thing.
So, I'm like a huge fan of all
but I'm just waiting for the
Playright release notes when they
come out.
So, it's pretty cool.
I love how excited you're
getting with all these different
technologies.
It's kind of, I'm definitely
going to move that higher up
my list of things to play with.
Another one, which going back
to talking about productivity
and I've still not had chance to
play with it because I'm still on
the waiting list.
GitHub Co-Pilot.
Yeah.
Have you had chance to play with
that yet?
I haven't because I,
we have a dedicated team for
kind of our AI and, you know,
everything that IntelliCode is
working on.
So, this is kind of another
example of people doing the same
stuff because Co-Pilot comes out
and IntelliCode is out and they're
both using AI for code
completion, you know.
Anyway,
maybe we'll deduplicate someday,
but yeah, it looks absolutely
amazing.
I haven't, I don't personally,
I can't have a seat because I
think I did sign up, but I wasn't
able to put that I'm a full-time
developer because I, you know, I
talk too much.
I just talk about code a lot.
I don't code every...
There's nothing wrong with that.
I don't code every, all day,
every day or anything like that.
So, too bad, but...
No, I've been on the waiting list
for quite a while, so it'd be
good at some point to do a podcast
episode on it, but yeah.
I need to actually be able to play
with it before I can do that.
Hint, hint, if anyone's listening.
Definitely.
Yeah, I know.
I'm like, who could I...
If I could put in a good word
for you, I would, but I don't know
who to talk to.
Fair enough.
So, before we move on to dev tips,
is there anything else you'd like
to cover?
I don't think so.
Lots of things to check out in
Visual Studio 2022.
I definitely didn't mention them
all on this, so be sure to watch,
you know, our Visual Studio launch
on dotnet.conf
and all the cool stuff that'll be
showing up on YouTube
and our live streams.
Tons and tons of links in the
show notes as well,
so to all these things.
But yeah, next month, can't wait.
Yay, I have so much to do.
Can't we get that top then?
So, a lot of people are getting
excited, but you're getting
stressed.
No, not.
I plan so well.
Nothing's hectic at all.
You have sounded pretty excited
in this episode, so that's quite
good.
Yeah, I'm pumped.
That'll be cool.
It all looks so, so cool, all
the stuff that's coming out.
Can't wait.
So, shall we do dev tips?
Sounds good.
Who goes first?
Do you not go first?
I don't mind.
I can go first.
This is what I discovered
just like two days ago
and I'm so excited about it.
In Visual Studio, on the top
right corner, is usually a box
that will say like preview
or just kind of what version
of Visual Studio that you're on.
If you click on it, it opens
Help About so you can see
your VS version.
So, if you're reporting bugs
or if you see a bug and you're
like, oh, what version of Visual
Studio that I am, this might
be a particularly Kendra
problem because I have like
seven different versions of
Visual Studio on my machine,
but I'm always trying to figure
out like, oh, am I on the
public preview or community or
enterprise and just kind of
bouncing around between those
as I try out different things.
And so, having that just
click, just one click away
is so, so, so nice.
It's very fast.
So, I've been using that a lot
more to just check what version
of Visual Studio I'm in as I am
reporting bugs or I can make
comments about what's working
and what's not in later versions.
So, it's really helpful.
You've seen, you've got lots
of different versions installed.
I found it funny in our email
conversation yesterday.
And then you mentioned
what you dev tip and pointed
at your Twitter tweet and
like joke saying that it was on
a version behind or something.
And then you said, oh, that's
just one of my installations
the other one has this version
and it was like this new shiny
version which there's no way
I could get hold of.
So, I was like, oh, you win.
Well, you're going to rub it in
that I didn't freakin update
to 4.1 and I was on four.
I'm going to tell you,
I have seven versions installed.
Oh, that did crack me up.
It's funny.
One thing I noticed today,
actually speaking of that
preview button, I opened
Visual Studio preview in
administration mode and that box
was split in two and it said
preview and next to it said admin.
So, I've been using it



so it really stood out that I
was loading it in admin mode.
So, that was quite nice.
Oh, that's handy.
Oh, yeah, for sure.
So, my dev tip, I thought
to try and stay on topic and
to give a little visual studio
debugging tip.
Quite often, if an un
handled exception, no pun
intended is thrown in your
debugger, it will break on
that line and tell you about it.
But if a handled exception is
thrown, like so your, the
exception is thrown within a
try catch block, then the
debugger probably won't break
on that line you want it to.
But what you can do in
Visual Studio is press control
out and here, I think the
shortcut is and that will give
you the exceptions pain.
And if you check the second
checkbox down, it's
something called like common
language runtime exceptions,
I think it is, then your
debugger will then break on
handled exceptions too.
And I find this really useful
if you're trying to debug an
exception to actually get it
to stop on the actual line,
and the exception occurs.
But then afterwards, you can
right click on the pain and say
restore defaults, because
changing the setting will
probably break into the
debugger a bit too often for
normal debugging, but it's very
useful for temporarily setting
it if you're having trouble
like finding an exception
that's handled so it's not
actually breaking on that
line.
So that's my dev tip.
Cool.
Love it.
So before we wrap up, where's
the best place for listeners to
reach out to you if they have
any questions?
Yeah, I'm always available on
Twitter.
My Twitter handle is gotheap
g-o-t-h-e-a-p, referring to
heap like the free store and
computer memory anyway, but like
a got milk commercial.
No one remembers this, it's
like a commercial for them,
they really do thousands or
something.
Yeah, so I'm on Twitter, but
also you can always file
suggestions on developer
community, that's where we
collect all of our bugs and
all of our feedback and I go
through, you know, hundreds
and dozens every week, so it's
much easier to follow up if
you have a bug that you don't
want to report and, you know,
what is it, 120 characters
or less if you want to include
more stuff, please, please,
please use our report a bug
features and provide feedback
there.
Awesome.
So thank you so much for
joining me, it's been so much
fun having you on.
Thanks Dan, yeah, this is a
lot of fun.
Awesome.
And thank you for everyone
for listening.
A quick reminder that this
podcast is sponsored by
Everstack, which is my own
company providing software
development and consultation
services.
For more information visit
everstack.com.
And if you enjoy
the podcast, please do help me
spread the word.
I normally use the hashtag
unhandledexception and I can be
found on Twitter at Dracom
and my DMs are open and my
blog dancroc.com has links to
all my social stuff too.
And we will include links to
all the things we've mentioned
and I've got a feeling it's
going to be a long list in the
show notes, which can be found
on unhandledexceptionpodcast.com.
Merci.

Episode suivant:


Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

TheUnhandledExceptionPodcast

Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere