
Andrew Lock - ASP.NET, Blogging, Kubernetes, and more!
Durée: 76m32s
Date de sortie: 02/05/2022
In this episode, I was honoured to be joined by Andrew Lock, who is probably best known for his amazing ‘must-subscribe’ blog - andrewlock.net. He’s also the author of the Manning ebook, ASP.NET Core in Action, Second Edition. We covered a lot in this episode - from the different flavours of ASP.NET, to Kubernetes, Blazor, gRPC, testing, Minimal API, MediatR… and more!For a full list of show notes, or to add comments - please see the website here
Hey, everyone, welcome to the Unhandled Exception podcast. I'm Dan Clark, and this is episode number 36.
And today I am super excited to be joined by Andrew Locke. And if you're a .NET developer and you aren't subscribing to his blog, then you really, really, really should.
En un épisode récent avec Nick Chapsas, à la fin, j'ai dit que Nick's YouTube channel était un must-subscribe pour les développeurs.
Et sur le blogging front, je peux dire le même chose que Andrew, en couvrant des topics de .NET, de source, de Kubernetes et d'autres.
Donc, merci, Andrew, pour une source incroyable et bienvenue à la show.
Merci beaucoup. C'est un plaisir d'être ici. J'ai entendu des podcasts, un grand fan.
Oh, bien, c'est bien de te dire. C'est un honneur de te voir.
Donc, pourriez-vous donner une petite introduction ?
Bien sûr. Je suis commencé à programmer avec .NET, à peu près d'un an ou dix ans, je pense.
C'était en retard de la temps de 3-5. Je n'étais pas assez tard à ça.
Je l'ai seulement trouvé en programme quand j'étais à l'université.
Donc, à ce point, je n'étais pas assez tard à ça.
Après que j'ai établi un peu de C++, de la lumière de un collecteur de gare, c'était génial.
C'était mon début.
Et puis, j'ai établi un peu de ASP.
Et un peu de webforms, un peu de formes de vin.
C'était seulement quand le corps de .NET était sur le horizon.
J'ai commencé à profiter et à blogger.
Je pense que c'était en 2016.
Tu as appris des flashbacks de C et de C++ maintenant.
J'ai appris qu'on a commencé, et tu as mentionné des collecteurs de gare,
pas avoir ça, et des pointeurs, et tout ça.
C'est une révolution.
En quelque sorte, je suis heureux d'être commencé avec C et de C++
parce que c'est vraiment sympa de savoir les sous-pinnages de tout.
De savoir exactement comment la mémoire a été élevée,
l'effect de la caches et tout ça.
C'est un truc qui n'a pas de carabin, mais c'est bien de avoir ce background.
Je me sens content de savoir ce qu'il y a, et de ne pas penser à ça.
Je pense que même des performances,
je sais que certains de tes blogs sont en performance.
En C et de C++, je ne veux pas dire que tu dois penser à ça.
Je pense que mon background était dans l'industrie des jeux.
Donc, tu as dû penser à ça.
Mais, oui, comme tu dis,
juste d'understand comment les choses fonctionnent derrière les scenes
quand tu n'as pas eu quelque chose comme .NET,
en faisant tout pour toi, c'est bien.
Oui, absolument.
Donc, avant de nous faire des vidéos,
nous allons faire ce épisode de Listener Mention.
Et ceci va au Joel Hammond Turner,
qui a tweeté sur un chanteur sur un chanteur
sur le podcast de l'Unhandled Exception de Jack-Anne,
comment est-ce que tu es en train de faire ce que tu fais ?
Donc, merci pour ton tweet, Joel.
C'est pas souvent dans l'Union européenne
que nous parlons de sonage, c'est pour sûr.
Pour mon esprit, j'ai eu assez de relaxations
du weekend, de glamping, en pépériture,
avec beaucoup de walks, de bêtises et de barbecues.
Et on a aussi fait un axe-throwing,
qui a fait un axe-throwing sur le site de glamping,
et j'ai trouvé qu'il était assez inquiétant
que mon fils de 8 ans
était sur le point de voir si bien.
C'est un peu risqué,
si on se met quelque chose là-bas.
Je pense que c'est ça.
Mon esprit était un peu moins sur le target,
mais les yeux étaient au point de voir.
C'est marrant.
Et si vous voulez en mentionner sur le show,
vous pouvez envoyer un tweet
qui est en handel de Jack-Anne,
tout le feedback est très apprécié.
Et je suis Jack-Anne sur Twitter,
qui est D-R-A-C-A-N.
Donc, on a vaguely dit sur Twitter
que nous allons parler de la chanson
de la chanson ASP.NET,
mais je me sens
que c'est souvent le cas avec ce podcast
que nous allons probablement aller dans des différentes tangents.
Surtout par les topics que vous vous interpriez.
Je sais que vous avez fait une série
sur la chanson ASP.NET
et les Kubernetes,
qui est une chose
que vous allez être en train de me protéger.
Oui.
Je sais que les blogs,
ils se sont mis à l'aise
parce que c'est normal que je travaille
pendant le jour.
Si je l'ai étouffé d'un problème,
je fais un note de ça
pour que je le réunisse.
Il vous donne beaucoup de choses
pour que je le réunisse.
Il y a des listes de 100 topics.
Il y a beaucoup de choses.
C'est utile.
Un exemple,
une de vos postes récemment
était sur la chanson GitWorktree.
Je savais que la chanson GitWorktree
existait, mais je n'ai pas vraiment utilisé.
Et depuis que vous avez réunit,
j'ai utilisé le poste.
C'est juste quelque chose de valable.
Il y a un point double-edges
avec ça aussi.
C'est utile pour les gens
de voir.
Mais j'ai pas vraiment regardé
GitWorktree
jusqu'à ce que j'ai écrit
ce poste.
J'ai vaguely idée
de ce poste,
mais c'était seulement quand je
j'ai commencé à utiliser
ce poste.
C'est utile pour vous.
Ça vous fait
forcer de vous déterrir
et d'en apprendre.
C'est ce que j'ai trouvé
avec blogging,
quand j'ai fait...
quand j'ai fait ça.
Comme vous le disais,
ça vous fait forcer
de vous apprendre plus
et avoir un bon comprenu.
Mais,
depuis que j'ai commencé le podcast,
je n'ai pas vraiment eu le temps
de faire beaucoup de blogging.
J'ai seulement eu beaucoup d'heures
et tout ça.
Oui, absolument.
Donc,
avec ASP.NET Core,
ceci est évidemment
un peu de choses.
Il y a des appareils web,
des MBC,
des pages de réservoir,
des appareils minimaux,
des bits & bobs.
Pour les listeners
qui sont complètement nouveaux
à la développement web
dans dotnet,
comment définissez-vous
le terme ASP.NET Core?
C'est
un peu anoyant,
un peu difficile.
Le deuxième poste
que j'ai écrit
sur mon blog,
en 2016,
c'était
qu'il y a une différence
entre dotnet framework,
dotnet core,
dotnet standard.
C'est
tellement confiant
pour les newcomers, je pense.
C'est un peu
lourd,
que les jours de ces jours
dotnet standard
ont été élevés
à un extent,
ou pas,
donc il n'y a pas.
ASP.NET Core
est
un framework web
avec
des commas
parce que c'est
pas juste H2DP,
il y a GRPC,
il y a tous ces différents
aspects.
Je pense que
tout le monde
va penser
à un framework web.
C'est
où vous allez commencer.
C'est
comment vous faites
développement web sur dotnet?
Exactement.
Oui.
Je pense que vous avez aussi
avec dotnet core,
je ne peux pas le dire,
dotnet 6+,
vous avez aussi
toutes les choses
en délinant,
comme
la injection
et tout.
Et l'un des choses
que j'aime
maintenant,
c'est
que les choses que vous
parles si du console,
qu'il le gelatin,
du Web您,
le pauvret,
sont cátons
sur le CNR.
C'est
pas être lié à l'AS, pas être lié à un déploiement particulier.
Ça fait que c'est plus simple.
Et tous ces...
Comme vous le disiez, la injection de dépendance,
le modèle de hostage en général,
ont allé avec ASP.Core.
Mais maintenant, c'est...
Ils sont tous hostés dans les repositions de runtime
et des choses, et ils sont tous sous les extensions et des spaces.
Parce qu'ils ne sont pas tout le temps
ASP.Core spécifique.
Alors, quand ASP.Core était le début,
ils ont réussi à poursuivre des énormes amountes
de l'absence, juste en dessous du framework.
Il y a des comms,
et c'est...
C'est peut-être un peu...
des contributions d'open source.
Il y a eu plusieurs personnes qui ont
commenté que le contenu de la injection de dépendance
est un nom de nombre de moins.
Il n'est pas de l'espace pour les autres frameworks
pour les mettre en place.
Mais, comme un consommateur et un utilisateur,
c'est vraiment...
C'est vraiment bien, juste pour savoir
exactement comment utiliser tous ces livres différents,
parce qu'ils peuvent tous plug-in
ce framework central, bas niveau.
Oui, je pense que avec l'IOC,
il y a eu quelques conversations plus bases,
comme Steve Collins a fait un épisode sur ça.
Et...
Oui, c'est vrai, c'est vrai.
Pour moi, j'ai utilisé Autofuck
comme un contenu IOC.
Et maintenant, j'utilise le box.
Et, pendant ce temps, c'est bien pour moi,
comme un utilisateur, parce que c'est juste...
ça fonctionne au bout du box,
et les apps sont les mêmes,
et c'est juste un projet qui est finalisé.
On y a une kurdoie
pour arriver à la suite duActivful.
C'est vrai, ça fonctionne au bout du bye.
On peut ветcher un peu nos verres.
C'est pas soak diary.
C'est toutes lesnicas junk convertidito,
mais ça part à France.
Un petit peu,
ce n'est pas un vegetable pilier.
Tu sais,
il y a beaucoup de ...
ces transparencistes que
et Donnet a une histoire raggée, d'ailleurs, avec Assechi Microsoft,
qui est le de facto que tout le monde va.
Et je me sens comme si je suis si malade que ce soit quelqu'un.
Je l'aime vraiment, j'ai des livres d'open source,
mais si il y a une option de première partie, je vais le prendre.
C'est le plus facile, et ça devient un default.
Oui, c'est intéressant.
Je pense que c'est aussi facile quand tu es en train de vous introduire
quelque chose dans les nouveaux équipes.
Je suis un consultant, je travaille avec différents entreprises,
et c'est assez difficile pour moi de me faire entrer
et de dire que tu devrais être très bien dépendant de cette libraire,
dont tu ne peux pas avoir entendu,
et ce n'est pas en bas, ce n'est pas Microsoft.
Ça dépend vraiment de la société, elles-mêmes aussi.
Oui, c'est vrai.
Tu as mentionné Owen,
et tu as commencé à toucher sur la histoire
et sur comment les choses ont changé.
Oui.
Avec Owen, l'introduction,
et tu as ensuite le start-up.cs,
qui est probablement assez familier à ce que c'est maintenant.
Et puis, dans certains projets,
même ça va se passer,
donc tu as le programme.cs.
On peut parler un peu de la histoire
et de comment ça s'est évolué
sur les différentes situations de l'ASP.net?
Oui, oui.
Comme je le disais,
Katana et Owen sont allés
être les prochaines évolutions
des appareils web
dans le framework.
Dans le framework,
tu as un MVC,
qui est un moyen classique
de faire la vente de l'appareil.
Et puis tu as le stack de l'appareil web,
qui était complètement séparé
de l'MVC.
C'est presque pareil.
Tu as utilisé beaucoup de les mêmes concepts,
mais les contrôles étaient séparés.
Il y avait différents types,
différents espaces de main.
Tu pouvais hoster les apps d'inside,
mais en utilisant
Katana et Owen,
tu pouvais aussi hoster
un service, un service Windows,
ou un console afraîtré.
C'est donc un précaut de l'ASP.net
et tu as aussi le concept de
la main, c'est où ça a originé.
C'était un peu clain,
les délegations horribles
que tu avais à passer
n'était pas fun à utiliser,
mais c'était clairement
le précaut de l'ASP.net.
Et puis, en 2016,
je pense que c'était...
c'était quand l'ASP.net
qui a été créé en 2016.
Un peu de cela
était là, en première version.
Le pipeline de la main
était le design central,
comme vous le disiez,
un grand différence
de l'aspect de la main.
Tu as originalement le projet Jason,
le projet de beloved Jason.
Les listeners ne peuvent pas voir mon exprès
quand vous l'avez dit.
Oui,
c'était pour être
le moyen de solider
les files de Proj,
lesquels nous avons eu à l'époque,
pour l'ASP.net.
C'était jason et beau,
parce que tout était jason.
Et ça a été un peu de mois,
je pense, en fin de la fin.
Ils ont réélevé le 1.0,
avec le projet Jason.
Je pense que c'était un studio visual,
ils ont tourné le projet et répliquaient le Proj.
Il a dû avoir perdu un petit peu,
un petit peu plus longtemps,
parce que j'ai terminé avec le projet,
avec le Proj, et puis c'est comme,
on va retourner.
Il a eu le sens de retourner
pour le plan original,
on va commencer par le scratch,
ce n'était pas pratique.
Si vous regardez où ils sont,
on a eu les formes de win,
WCF, WPF,
sur les core-on-tools,
et on a essayé de rébuilder
tout ça, un nouveau billet,
ça n'a pas été le cas.
C'est un peu de travail,
mais il y a eu le sens,
mais il y a eu le churn,
au début, c'était cool,
c'est le churn.
Je pense que ça a été un grand changement,
et je pense que le bon chose,
c'est que c'est une source à l'open,
même si il y avait le churn,
il y avait des mediums
pour les gens de donner des messages
et voir les discussions
sur GitHub, etc.
Il y aurait peut-être le fait
que si il n'y avait pas le churn,
et qu'il n'y avait pas de churn,
et qu'il n'y avait pas de visibilité,
nous devions être dans un lieu différent,
et pas comme un lieu de place.
Absolument.
Vous pouvez le voir,
en parlant de la version,
la autre chose,
en version 1.0,
c'est que tout était un package de new get.
Tout ceci,
le feature que vous voulez,
c'est un package de new get.
Vous pouvez donc seulement
utiliser ce que vous avez besoin.
Et vos appels seraient
plus petits, car si vous n'avez pas
utilisé le XML,
vous ne pourrez pas utiliser
un autre
configuration Azure,
ou quelque chose, vous ne pourrez pas
utiliser le package de new get.
Et vos appels seraient très petits.
Le problème avec ça, c'est que vous enderez
avec des packages fortes
dans votre projet.
Il y avait des versions
différentes, car
ils n'avaient pas de version consistant.
Ils étaient version correctement
si un package n'a pas changé
quand il y avait un nouveau release,
un patch release,
ils n'avaient pas bump les versions package.
Mais ça signifie que si vous étiez
utilisant un app de 1.0.1,
ça signifie que
certains de vos packages étaient en 1.0,
certains d'entre eux étaient en 1.1,
et vous n'avez pas de façon de savoir
quel est le point.
Ils ont essayé de
travailler avec des packages mettes
qui combinent ça, mais
finalement, cette idée
sort de plus tard,
c'est trop difficile de manager.
C'est intéressant, vous avez mentionné
des packages,
il y avait un récent annoncement
avec des packages central
qui sont des choses,
qui sont des versions centrales
pour les projets.
Vous avez pu faire ça
avec des files props
ou des articles, mais
je crois que c'est
différent de ce que
les packages ne forcent pas
sur les projets.
Ça vous permet
de mettre, si vous utilisez Newtonsoft,
Jason, dans les 3 projets,
en avant à l'élection
les versions des projets
qui sont en 1.0.1,
c'est un place central,
donc
c'est pour que
ces packages soient installées,
c'est bien.
Il y avait un procès directeur,
j'ai utilisé il y a des années,
mais le problème était que
les choses comme Visual Studio
n'étaient pas en place,
donc si vous avez été réveillés
dans les UIs,
ça serait plus dur de les versions,
et ça se démarre.
Je pense que ça dépend de ce type
d'un projet que vous devez faire,
comme un micro-service d'architecture
qui déploie des choses à la Kubernetes,
vous devez avoir des propositions différentes,
donc où est-ce que ça vivait ?
Je ne pense pas que ça fait
sens pour ça,
c'est vraiment juste pour un niveau de solution
dans mon avis,
et si vous faites un micro-service
et qu'ils sont séparés,
vous ne voulez pas ça nécessairement.
Le premier,
c'est que si vous pouvez, version des choses séparées,
vous pouvez l'abgréchir
sans l'abgréchir d'autre.
Vous pouvez avoir des implications de sécurité
et des policies en place
que vous voulez l'abgréchir,
mais les apps sont
séparées,
si vous avez une grande solution
avec 30 projets,
et que vous upgradez un projet,
vous n'aurez pas de la chance
d'y aller,
parce que si vous vous mettez un autre,
ça ne marche pas,
si vous n'avez pas de place,
et si vous vous êtes un grand,
je sais que c'est arrivé.
J'ai appris le hardware,
je l'ai totalement appris
avec ce qu'on a dit sur micro services,
je pense que
d'autres exemples,
d'exemples où vous avez un config,
où vous êtes en train de mettre des styles,
qui peut-être vous voulez appeler
l'ensemble de votre compagnie,
avec la whole multiple Git repository,
c'est comme si vous avez mis un autre,
mais oui, avec une version centrale,
chaque one devrait être managée
quand vous upgradez,
c'est vrai, c'est intéressant,
c'est quelque chose de config,
donc quand j'étais au travail de la première compagnie,
nous avons créé beaucoup de small apps,
je ne sais pas si vous avez appelé les micro services,
mais c'est certain que c'est des applications small,
et il y a beaucoup de plate-d'oeil,
je créé ce.net,
un nouveau template,
vous avez utilisé le SDK,
mais il y a un problème constant,
avec les trucs tweaked,
mais vous avez déjà utilisé
toutes ces apps,
comment vous upgradez
tous ces apps,
je n'ai jamais été plus qu'un brute force,
d'un à un,
mais il me semble que c'est un moyen similaire,
il me semble qu'il y a un moyen centrale,
il est capable d'y upgrade,
mais peut-être que c'est un bon gars,
je ne sais pas.
C'est intéressant de voir ce que la service micro est,
il n'y a pas vraiment des comerciales,
mais même les devons presumeurs,
c'est très dogmatique sur les choses différentes.
On a essayé de utiliser le style de design de la démarche,
comme vous avez vos boundaries
et de les séparer comme ça,
pour que tout soit consistant dans la boundaries.
Les choses sont messies.
C'est intéressant de voir que vous avez mentionné
les files JSON,
où il n'a pas été temporairement
et puis, encore une fois,
une chose bien belle quand il n'a pas été encore,
c'était le style de C.S. Proj,
pour le style de très ancien,
où vous avez un liste de tous les files JSON
dans le projet,
où maintenant c'est impliqué.
Ils sont tellement plus clairs,
et vous pouvez les éditer manuellement.
C'est tellement mieux.
Absolument, je l'accepterai.
C'est très simple.
C'est presque un changement de pas lister
chaque file,
qui a fait une différence.
Ils ont fait beaucoup de tweets et choses,
mais c'est un simple truc.
Il change complètement.
Même les conflits de mode
où plusieurs team-members
travaillent sur la même chose.
Ils ont ajouté un nouveau file,
qui pourrait être complètement différent
dans le projet,
mais c'est en fonction de
comment le C.S. Proj s'est ordré.
Il y a beaucoup de conflits.
C'est tellement mieux.
Il faut fixer les files de solution.
Oui, c'est certain.
J'ai bien regardé les files de solution,
mais...
Il y a des gouttes
dans lesquelles je suis là.
Oui, c'est bien.
Je suis en train de faire une solution
avec des projets 90,
une bataille constante
quand vous avez eu un nouveau.
Oui, c'est vrai.
Je pense que c'est un temps
où vous voulez que ce centre-pac
soit le plus important.
Oui, c'est vrai.
Je pense que
les nouveaux features,
comme les new.net core,
sont les secrets d'utilisation
qui sont assez chers.
Oui, c'était...
C'était 2.0 ?
Oui, c'était...
Il y a des outils d'outils d'outils.
Je pense que c'est un outil d'outils.
Vous avez les outils d'outils d'outils
avec les outils de Cli,
et vous pouvez faire un outil d'outils.
Mais ils ont
l'oblité de
des outils d'outils.
Vous avez les secrets d'utilisation
qui, comme vous le dites,
sont des secrets
des outils d'outils,
des passwords, des choses comme ça.
Vous devez être dans votre application.
Mais
c'est un de la manière semi-secure
sur votre computer. Ils ne sont pas
inquiétants, mais
les points importants ne sont pas
checkés dans la repository. C'est le but.
Vous ne vous arrêtes pas de
détenir des API-keys dans GitHub.
Je pense que les choses,
comme si vous utilisez ça
de l'AutoGitGo,
ou si vous en avez développé avant de déployer,
dans l'épisode de Nick Chapsas,
nous parlions de
Git Hub Coop.
Le code que vous travaillez
est le sync de la cloud,
pour que ça soit magique.
Mais si, avant de déployer,
vous avez des codes et des secrets,
même si vous n'avez pas déployé,
ces secrets sont encore en train de déployer.
Donc, d'un à un,
d'un à un,
ce n'est pas dans votre
repository.
C'est super utile.
Absolument.
C'est un meilleur practice.
Il faut toujours être en train de déployer.
Il y a une bonne integration
dans le studio visual,
et des choses comme ça.
Vous pouvez faire un clic
sur un projet et regarder les secrets.
Je ne peux pas le remettre si c'est dans ça ou pas.
Je ne pense pas que c'est ça.
Je l'ai fait quand j'ai fait.
Vous ne faites pas que les secrets
initialisés.
Mais je l'utilise aussi.
Je vais le faire
sur le command line.
C'est facile.
C'est bien que ça s'installe
comme un file de JSON.
Vous devez mettre 10 secrets.
Vous pouvez juste ouvrir
un file de JSON,
et paste-le.
Vous pouvez aussi
faire des secrets semi-secrets.
Vous devez les partager.
Vous pouvez le faire.
Vous pouvez le faire et le vendre.
Déc remindz-vous
de mes palipples.
On peut y ouvrir le client,
mais je n'ai pas快estnotis
avecquinho.
Je n'ai pas...
n' investigación
j'ai vu beaucoup de choses à dire, mais je n'ai pas essayé d'en parler.
C'est tellement très grave, comme ça.
Il y a beaucoup de transverse qui ont dit,
« Comment as-tu vu ça ? »
Je pense que ce qui me concerne est la complacence.
Je me sens comme si je ne suis pas payé attention,
je vais laisser les choses se tromper.
Mais ça va être tellement tentant de ne pas payer attention
quand ça se fait bien, 99,9% de l'heure.
C'est 0,1%.
Je me sens comme une grande convention,
en disant, « Oh, non, c'est pas possible de le faire tout le temps,
mais je ne sais pas, c'est drôle. »
Je dois dire que, pour mon expérience de l'utiliser,
ce n'est pas 100% correct, très souvent,
mais c'est comme si ça a commencé à changer.
C'est comme si c'était un autre moyen d'y faire,
et que vous l'intervient.
Je n'ai très rarement eu la suggestion
de l'utiliser au bout de la boîte
sans faire des tweets,
mais par un point de tipeur,
c'est souvent,
où vous avez un sens normal,
et puis il y a...
En fait, je vais reposer
aux listeners qui n'ont pas entendu de Github Co-Pilot,
juste de vous dire ce qu'il y a.
Donc, avec l'intelligence,
vous avez la complication pour
les méthodes,
ou les noms de propriétés,
comme vous le typez, quand vous le faites.
Ce n'est pas autocompleté,
c'est autocompleté pour les fonctions.
C'est pourquoi c'est assez grave,
quand vous commencez à tipeur,
et que vous avez la suggestion
pour les fonctions.
Et ça, c'est comme en utilisant
la machine de la lait,
basé sur des codes de Github,
et je crois que c'est de la lait
que les gens utilisent,
c'est de la lait,
je ne sais pas les détails
pour avoir un épisode proper,
on a une section
dans le épisode de Nick Chaps,
où on a parlé de quelques choses,
mais on a une section
de Co-Pilot,
et il a des vidéos,
qui sont définitivement bien regardées.
Mais,
en parlant de la prochaine,
je vous ai mentionné,
que j'aimerais
aller dans votre blog post,
pas necessarily votre blog post,
mais juste le sujet de
ASP.NET, sur Kubernetes.
Oui, donc,
quand j'ai commencé
par le premier,
ils avaient un whole bunch
d'applications,
qui sont dans les applications
de l'application ASP.NET,
et l'une des choses
que j'ai travaillé sur,
c'était de porter les applications
de l'application ASP.NET,
et de les packer,
et de les mettre dans les Kubernetes.
Et la conversion
de l'application ASP.NET
était une mixte
relativement simple, et aussi horrendante,
selon les choses que vous utilisez,
et à la fois,
c'était un peu tricot
parce que de la dépendance,
on a fait beaucoup de problèmes.
C'était dans le core 2,
quand, théoriquement,
le framework.NET Core
était en sorte de parité,
le framework 4.6.1,
théoriquement, vous pouvez utiliser
dans les core apps.
Mais la réalité était,
il y avait cette chimie,
qui nous a mis
beaucoup d'issues,
avec des versions de package
et des choses comme ça.
C'était notre problème dans le porting,
le code, il n'a pas changé beaucoup,
c'était la dépendance
que vous venez de mettre.
Mais, les packages dans les Kubernetes
étaient
presque la plus facile,
et, théoriquement,
ça fonctionne,
les nuances sont beaucoup.
Surtout si vous faites un projet de Greenfield,
comme vous l'avez mentionné,
il y a beaucoup de choses à faire,
mais si vous avez trouvé un projet
nouveau,
comme je l'ai travaillé,
c'est un projet de Blazer,
et, vous avez trouvé un projet,
et, parce que,
on n'a pas touché,
les listeners savent,
mais dot.NET est maintenant sur la plateforme,
c'est le Linux.
C'est un console Linux,
quand il s'agit de ça,
c'est facile de créer un image Docker
et, ensuite,
utiliser Kubernetes pour créer un image Docker.
J'ai quelques apps,
qui sont en Kubernetes.
Vous pensez que les Kubernetes
sont une chose de complication,
il y a un meme,
un grand truck,
qui était élevé,
et un petit box,
avec un petit box,
et le texte a dit,
que mon blog est en Kubernetes.
Mais, en réalité, je d'accorderais,
que si vous vous êtes hosté,
et que vous avez managé votre propre cluster,
pour tous les providers de Cloud,
vous pouvez cliquer et créer un cluster de managage,
qui, en Azure,
c'est comme mon point de vue,
il n'y a pas beaucoup de différence
entre un cluster de Kubernetes
et un plan de service app,
car un plan de service app est un plan de managage,
qui est un plan de scale,
un cluster de Kubernetes est un plan de scale,
mais avec Kubernetes,
vous avez beaucoup plus de flexibilité et de pouvoir,
et c'est tellement vite à appliquer, c'est incroyable.
Oui, c'est incroyable,
surtout si vous utilisez ces petits images alpine,
c'est comme 40 MB
ou quelque chose d'application,
comparé à, je sais,
j'ai utilisé des applications,
juste les DLLs,
même les operating systèmes,
donc, oui,
la difficulté que vous avez,
c'est que,
surtout si vous portez des windows à Linux,
vous avez, en fait,
vous n'avez pas de clés de la même manière,
et des idiomes comme ça,
donc, on a eu de la guerre avec certains d'entre eux, initialement.
La side de la Kubernetes
est, pour la plupart,
comme vous le dites,
c'est juste que vous vous en avez un application.
C'est seulement quand vous vous en faites
beaucoup de choses,
et vous avez le contrôle de la contrôles,
et vous ajoutez des choses extraires,
comme le contrôle de la check de la vie,
et des choses comme ça.
Il y a beaucoup de subtleties,
qui vous donnent beaucoup de power,
mais je pense que c'est partie pourquoi
les gens se sont évoqués,
il y a juste beaucoup de Kubernetes.
Je l'ai vu comme un mime
d'un iceberg, en fait, de Kubernetes,
et au-dessus, vous avez des pods et des containers,
des déploiements, et c'est tout bon.
Et ensuite, vous vous en faites,
et vous avez des services et des ingresses,
et vous avez tout le monde
qui a eu de la même chose.
Il y a beaucoup de choses à apprendre,
ce qui n'est pas la meilleure idée.
Mais la bonne chose, c'est que,
un developer d'application,
vous ne vous en avez pas besoin,
à l'heure de votre service,
et des ingresses,
c'est pas si dur de vous aller,
comme je l'ai fait.
Je pense que, comme vous l'avez mentionné,
j'ai vu ça sur Reddit,
donc j'ai pris ça et j'ai tweeté ça,
je vais l'inclure dans les notes de la show,
mais c'est intéressant de voir
comment ça se passe.
Je pense aussi, comme vous l'avez mentionné,
le base est de l'application de services et des ingresses,
ce genre de choses,
qui est assez basé dans l'oeil.
En itself,
si vous avez quelqu'un qui explique
ce que ces choses sont,
ce que l'initiel de la course
est assez,
que je peux expliquer et comprendre.
Mais,
les gens sont en train de apprendre,
et ils n'ont pas quelqu'un à expliquer
ces concepts.
C'est difficile,
mais il y a beaucoup de contenus
sur Kubernetes.
Je ne sais pas
comment,
ce qui est le tout,
les basics,
si vous regardez la documentation
pour Kubernetes,
c'est bien, en quelque respect,
mais aussi,
c'est la documentation
qui comprend clairement,
Kubernetes très bien.
Il y a des sortes de techniques
qui sont correctes,
c'est juste que je l'ai trouvé
assez confusé initialement.
Même si vous pensez à la containers Docker,
je ne sais pas,
à ces jours,
je me sens comme que les gens entendent les contenus,
mais c'est
un grand point de vue,
je ne sais pas si tout le monde
comprend le concept de la container,
parce que,
ce n'est pas un contenu,
je ne peux pas expliquer ça très bien.
Je pense que vous serez surpris
parce que vous et je,
dans la communauté,
on apprécie
et on va continuer à s'entraîner
avec la container.
Nous avons probablement été conscients
de la container,
puisque Docker a suddenly été fameux,
beaucoup d'années,
et je sais que j'ai utilisé un projet
de manière dont les gens l'ont même entendu,
mais je pense que vous serez surpris
par les développateurs qui sont encore en train
de faire des applications,
des applications web,
et ce genre de choses.
C'est vrai, et pour la plupart,
ce n'est pas important.
Si c'est tout que vous avez besoin,
c'est bien, mais Docker en particulier,
même si vous n'oubliez les Kubernetes,
les Kubernetes c'est bien pour les déploiements,
ça vous donne une grande valeur de la flexibilité,
mais Docker pour le développement local
a donc beaucoup,
je me suis joué
avec quelque chose d'hier,
qui m'a dit,
je voulais faire un service SQL,
mais
Microsoft SQL,
j'ai eu des flashbacks
pour installer,
et vous vous restez pour une heure
au sein de Microsoft SQL,
et vous avez des fixations,
et je ne sais pas,
c'est juste un nightmare.
Ils ont maintenant un image Docker,
un image Linux Docker,
qui peut être utilisé sur mon laptop Windows,
donc en utilisant WSL2,
j'ai juste utilisé un commande Docker,
et j'ai eu un service SQL
sur mon machine,
dans 30 secondes, et 28 secondes
de cela se sont déploiements,
et
avoir cette capacité
avec Docker est
très utile, c'est
ce qui est possible,
si vous n'aurez pas besoin de carenements,
vous pouvez en effet y bénéficier.
Oui, et vous avez dit que
28 secondes de cela se sont déploiements dans le image Docker,
l'une des choses avec Docker est que
les images sont cashées localement,
donc si vous le faites de la fois,
si vous le faites de l'autre, c'est 2 secondes,
absolument.
Extendant Docker et utilisant Docker Compose
pour le développement local, où vous pouvez avoir un file YAML
qui explique que votre exemple
d'utiliser un service SQL,
comme souvent, utilise rabbit and queue,
donc sur le command line,
type Docker Compose Up, Enter,
n'importe quoi, peut se placer localement,
SQL Server, rabbit and queue,
peut-être des choses d'autres, comme Azureite,
l'émulator Azure Storage,
c'est un exemple, mais il ne peut pas être
le service rabbit and queue,
mais aussi le developer UI,
donc vous pouvez voir les graffes et les choses.
Il y a juste beaucoup d'images
en jouant avec des trucs différents.
Un de mes collègues est currently
en train de faire un spike sur CMS,
l'adolescence CMS,
mais
pendant qu'il en a développé, il a juste
spané le local en Docker, et il a suddenly
eu l'interface d'une des deux, et il pouvait interrompre
avec elle. Il a juste travaillé,
et Docker est juste tellement
puissant. Exactement, oui, absolument.
Et
vous pouvez faire un Kubernetes local,
si vous voulez,
je pense que le local de l'amendement
n'est pas nécessairement nécessaire,
mais je l'ai fait localement,
parce que ça signifie que vous pouvez
plus facilement tester vos scripts de deployment,
et les choses.
Nous avons utilisé beaucoup de helm pour
déterminer
les vastres de jammaux que le Kubernetes
a besoin.
Si vous utilisez
le helm, vous avez besoin de tester
ça, c'est
un programme, je ne sais pas si c'est
complètement en train de programmer,
mais il y a beaucoup que vous pouvez faire
et vous devez pouvoir
déterminer le jammaux correctement
pour que vous en déterminiez,
et à la fois, le helm a besoin
de l'amendement de la Kubernetes.
Nous avons utilisé
ce jammaux,
et c'est un point
qui est important.
C'est un point fundamental,
et je pense que
ça a donc de valeur.
Oui, c'est ça.
Vous pouvez le installer localement,
si vous avez un desktop installé,
vous avez déjà le jammaux local,
vous pouvez le cliquer sur le trait de système,
et vous avez un code single
et clus de la Kubernetes,
c'est très cool.
Avec le helm,
vous devez vous utiliser le jammaux,
parce que vous vous avez
des outils, un peu de
template, un peu de choses,
vous devez faire des déploiements
avec le jammaux,
et faire des files, des replacements,
tout ça dans le jammaux,
ça ne marche pas, donc,
vous devez utiliser le helm.
Il y a un argument grand,
je pense que les gens n'aiment pas le jammaux,
et je le vois,
comme quelqu'un qui a
pris 4 heures, essayant de fixer un espace
dans le jammaux, je me demande
si ça ne marche pas, je comprends.
Je me demande si on va
bouger de ça, avec des choses comme Pulumi,
je ne sais pas si vous l'avez essayé,
je n'ai pas, mais je l'ai lu beaucoup.
Je suis le même, je l'ai
lu beaucoup, mais je l'ai tendu
à utiliser Azure, donc je l'ai fait
avec Bicep, et j'ai
utilisé Terraform, mais je n'ai pas
joué avec Pulumi, je dois vraiment.
Comment vous jouez
avec Bicep,
si vous devez jouer avec Kubernetes?
Est-ce que c'est le jammaux,
ou est-ce que c'est Bicep, ou est-ce que c'est
les deux?
Je tend à utiliser Bicep pour l'infrastructure,
donc déployer le cluster
dans le premier endroit,
déployer des identités de management
autour de ça,
avec Kubernetes, je tend
à hostiser applications
comme Donut Services,
web apps et tout, mais
pour databases, j'ai préféré Pass,
donc j'ai utilisé Azure SQL,
Cosmos, donc j'ai utilisé quelque chose comme ça,
donc plutôt que d'avoir un database,
et tout ce genre de choses dans le cluster.
Donc je tend
à utiliser Bicep pour déployer
ces stores de données,
des identités de management,
des services Azure,
tout ce genre de choses, mais
je vais juste utiliser Helm
pour déployer les applications
dans le cluster, parce que c'est un peu séparé
de la question avec l'infrastructure,
vous avez le déployer dans le cluster
dans le premier endroit, qui est évidemment
l'un des nodes de VM, les nodes RVMs
pour les lessons que vous ne savez pas.
Donc c'est l'infrastructure déployée,
donc vous avez évidemment toujours besoin
que l'infrastructure soit codée pour que vous
puissiez déployer différents environnements
ou les déployer, et c'est répétable.
Mais ensuite je vois que le
Kubernetes déployement, donc pods
et tout ça, comme
des applications de développement,
et je ne vais pas utiliser Bicep pour ça.
C'était une manière longue
de répondre à votre question.
Non, c'est ce que je voulais dire.
Je voulais dire que c'était
une possibilité
d'utiliser Bicep pour Kubernetes,
mais c'est ce que je veux pas
de l'exprimer. Je ne sais pas si Pulumi
supporte Kubernetes directement, ou si c'est pour
s'assurer le cluster,
et s'assurer des pods et des choses.
Je me sens
comme si il y avait besoin pour
cette rappeur de la compétition
de Kubernetes, parce que ça me sent
difficile pour les gens d'aller en ce moment.
Je pense, mais
quand vous commencez à faire ça,
quel est le point de utiliser Kubernetes,
je pense, parce que
je pense aussi avec
des armes, si vous
allez dans le port d'Ajaport, ou vous
allez à une ressource, vous allez en exporter un
armes, vous avez cet arme
qui est
juste, oui, et
c'est mon premier
expérience de ce que l'armes ressemble,
et que vous me portez en dehors de l'Ajaport, donc c'est
un point de tournoi, mais
en réalité
ce n'est pas ce que vous avez mis en source
pour créer et faire l'infrastructure
de code, parce que
l'export inclut beaucoup de choses,
et le même applies pour Kubernetes,
si vous vous allez au
existing pod ou au deployment
de quelque chose, et regardez le JSON
de ça, vous avez beaucoup
plus de choses que vous avez dans
vos files en source
contrôles, ou dans vos charts
de l'armes, etc.
Je ne sais pas, mais ça me semble que
quand vous avez les concepts communs,
comme vous avez un YAML
qui est une ressource dans les Kubernetes
et vous avez un type de la top,
en spécifiant si c'est un deployment
ou un pod, ou un service en ingress,
ou quelque chose, c'est très consistant
dans lesquels ces différents patterns
travaillent, et si vous avez
ça, je ne pense pas que les YAML files
soient compliquants, parce que
surtout quand vous les appreniez dans un charte de l'armes,
vous ne devez pas changer ça beaucoup.
Oui, c'est la même chose, il y a beaucoup de copies et de paste.
Quand vous avez déployé un application,
en réalité, vous avez
copies et de paste, et puis
vous vous déclenchez un couple de valeurs, et vous
vous avez fait.
Je serai intéressé à savoir comment vous
vous avez déclenché des migrations database
dans vos Kubernetes,
parce que c'est quelque chose
que, surtout si vous avez
plusieurs pods et vous avez
des pods, ça peut vous
tourner, et ça nous a pris un temps
pour savoir comment est-ce
un processus pour ça.
Oui, avec la difficulté.
Nous avons
10 ans de migrations, et
nous avons un dévops
qui ferait la migration.
Mais comme vous le dites,
selon ce que vous changez
dans le schema database,
il y a des choses différentes
qui peuvent changer, qui ont différents outils.
Je pense que le plus grand
est que les développeurs travaillent sur ça
doivent penser
sur ce qui se passe quand je déploie
ce que je dois faire pour changer le schema database
dans deux passages, donc il n'y a pas de temps pour le déployer.
Ça peut être un nouveau columne
avant de le déleter dans l'autre columne et faire ça dans deux phases.
Je pense que c'est important
pour les développeurs qui travaillent
sur ce système
pour comprendre
ce qui se passe avec les migrations
et penser aux changements qu'ils font
et ce qui va arriver
quand ça se déploie.
Absolument.
Je pense que
ce que nous avons fait pour les deux ou même trois passages
pour le database est quelque chose
qui n'a pas été proposé par la Mautbain
en pratique, c'est presque toujours quelque chose
que vous devez faire.
Si vous voulez ajouter un nouveau columne non nullable
et vous pensez que le nouveau application
toujours s'applique à la valeur, donc ça ne se passe pas.
Mais vous allez être en train de faire votre application
et votre application nouvelle en même temps.
Si vous avez à avoir 0 downtime, c'est juste quelque chose
que vous avez à vivre avec.
Vous devez toujours ajouter un columne nullable
pour commencer.
Laissez votre application, puis faites-le non nullable.
Et puis, finalement,
vous êtes sorti.
Si vous n'aurez qu'à déleter un autre columne,
seulement si vous avez complètement upgrade,
peut-il déleter un columne ou quelque chose comme ça?
C'est un des processus très tristiques.
Et surtout,
si vous ne déployez pas
fréquemment,
ça peut être très tristique,
parce que si vous avez besoin de 3 déployés,
c'est essentiellement pour vous faire un fonctionnel.
Mais si vous vous déployez
chaque mois ou deux,
alors
les choses vont se cacher.
Je pense que c'est un bon truc.
Je pense que les gens vont être scèdres
ou on va automatiquement déployer
une production chaque jour
quand vous mergez un PR ou
que votre pipeline fonctionne.
Mais en fait, comme vous l'avez dit,
plus souvent, vous faites quelque chose,
plus la scérité se déploye,
et les petites changements de la incrementation.
Oui.
Et vous savez,
évidemment, vous ne pouvez pas juste le déployer.
Vous devez avoir des tests en place,
vous devez avoir, vous savez,
de faire surement les choses, les choses travaillent.
Et ça fait que c'est pour ça que vous ajoutez
que les tests de santé
pour votre PODs sont importants
pour cela, parce que vous pouvez
les déployer très rapidement.
Vous pouvez faire surement que votre connecteur
de la database est toujours OK,
vous pouvez vérifier le schéma,
pour que ce soit compatible avec ce que vous avez.
Vous pouvez donc, en fait,
arrêter les déployements malins
avant qu'ils soient démarrés.
Oui.
C'est intéressant de vous dire que les tests,
en regardant le site ASP.net,
j'ai l'impression que c'est un test de
integration, je pense que je l'ai mentionné
quelques fois dans les épisodes de l'année passée.
Et je vais aussi retourner au Docker,
en fait, l'un des choses que j'ai favoris
maintenant, c'est mon test,
faire des tests de integration, plutôt que des tests de unité,
dans la pipeline, ou localement,
faire des tests de Docker, donc c'est
en train de finir mon mention
avant, de la MQ, de la SQL Server,
en train de finir les versions réelles, pas les versions
en mémorisation. Et puis, il peut faire
les tests de integration de l'application de la application,
donc, vous êtes en train de
coller votre API,
dans la version en mémorisation de votre API,
qui parle d'un vrai database.
Et puis, vous pouvez assurer
contre la réponse, ou, bien sûr,
je parle directement de la database
dans les tests pour faire sure que le database
ressemble à ce que j'ai expected
après la partie actuelle de la test
qui a été réalisée.
Et je trouve que c'est juste
plus productif de faire des tests.
Oui, je l'ai complètement appris.
Je me sens un peu conflicte dans le
test de unité, parce que
part de moi, c'est, si vous
testez les algorithmes, vous devez
tester le unité,
et que le unité est bien défendu,
ça va être un truc de self-contrainte.
Vous pouvez tester, et vous pouvez avoir
100% de coverage, parce que vous pouvez tester
tous les branches.
Mais, en réalité, la plupart de nous
n'ont pas créé des applications comme ça,
on est normalement créé pour
faire des services en respect,
qui ont dû servir un tout
nombre de choses. Ils ont dû
publier des messages, ils ont dû,
comme vous le dites, faire un database.
Et si vous abstraciez
tout ça en mockeant tout le monde
autour, pour que ça soit très compliqué,
pour comprendre si les choses sont
travaillées, et quand vous changez
quelque chose, les choses se brûlent.
Je suis complètement agréable.
Devoir ces tests d'intégration,
en utilisant un database réel,
vous vous faites des migrations
pour que vous puissiez être sûrs,
que l'église de votre migration
va travailler, c'est un test
qui fonctionne très bien.
Et en utilisant le Web Application Factory,
vous avez un état subcutinien
de tests, donc vous n'êtes pas
complètement testés, parce que vous ne faites pas
le HTTP un peu, mais essentiellement
tout ce que vous avez fait est rembourser
Kestrel, parce que vous vous
vous faites croire que vous avez
passé le HTTP correctement.
Je suis complètement agréable,
c'est exactement le processus que nous avons
fait.
Je n'ai pas entendu ça, c'est
sous la tête.
Je ne sais pas si je l'ai entendu,
mais ça a bien été bien.
Vous ne vous faites pas mal, mais
je l'ai entendu,
c'était un blog post
par Joseph Woodward,
qui m'a mentionné, j'ai oublié
ce que c'était, donc j'ai googleé
ce que c'était, et puis, sous la tête
testée, ça fait du sens, parce que c'est
comme le API, juste sous le UILO.
Exactement, et puis
si vous... C'est comme
assommé que vous faites WebAPIs,
qui je pense, je ne veux pas
dire que la plupart des gens le font, mais
je pense que c'est certain que
les gens sont
trending, alors que
il y a un trend de la back, comme je peux
dire maintenant, en regardant le service
rendu HTML, qui je
encore ai un point de vue, les pages de réservoir
et tout.
Je pense que c'est ça, c'est comme ça,
il y a beaucoup de différentes manières, parce que
Blazor est nouveau et chineux,
à l'initial, je pensais, oh, oh, oh, comment je
peux faire tout dans ça? Comment je peux
faire mon blog dans Blazor?
En réalité, ce n'est pas le bon
pour Blazor, parce que Blazor est plus un appareil
d'aspire, et je suis pas
d'accord, mais la façon dont je le vois, c'est que
si vous avez un blog, ou un article
base, ou
peut-être un site nouvel, qui est
comme, vous voulez la page pour être
un site, vous voulez le SEO, vous voulez
le faire bien, vous voulez
une page de réservoir, qui est
sur le site, mais vous ne voulez pas
faire votre blog, Blazor
ou Blazor, pour ça,
oui, et donc,
je suis complet, si vous voulez
quelque chose de content base, la page de réservoir
fait un bon sens, et je veux dire,
potentiellement, si vous êtes sur un blog, vous
pouvez aller au point de complètement statique
de content, potentiellement, si vous n'avez pas
d'aim, et vous avez besoin de
des services, authentiquez, et
displayz différentes informations, et
vous avez un service, si vous n'avez pas besoin
d'un service, puis créer une application
statique, c'est comme si vous n'avez pas besoin
d'un service, pour, comme vous le disiez,
des sites de contenu,
c'est un paradigm
plus facile, pour se faire
faire un application, vous ne
ne faites pas une application de front-end,
mais il faut un application de back-end.
Donc, je ne sais pas,
je vois un trend de back-tour,
d'avoir des services, des applications de service,
parce qu'ils se sont
quittés un peu d'issues.
Le côté de la basse est que vous
généralement vous perdez un certain amount
d'interactivity, vous ne pourrez pas
avoir un bon flow
de page à page, que vous avez avec
des applications de single page.
Donc, c'est tout des trade-offs.
Mais le service est un intéressant,
parce que je sais que certains gens
absolument l'aiment.
Je n'ai pas utilisé beaucoup, mais
on parle d'activité productive,
d'être capable de créer
une application de single page,
mais, encore, vous êtes en train
d'avoir une application de rendition.
Vous ne vous avez pas besoin
de créer un API pour communiquer
entre le front-end et le back-end.
Donc, je peux tout de suite voir ça.
Je suis toujours un peu
affrayé de ce
requin pour la connexion de persistent.
Je pense que c'est mon truc,
si vous êtes un user
qui est en train de faire quelque chose,
ils vont être en train de créer des connexions,
et ils vont avoir une grande
expérience avec Blazor Server.
Et peut-être que c'est plus de
prendre un tour de la suite et de
faire des choses différentes.
Bien sûr.
Il était dotnet core 3,
je pense, qui a introduit Blazor,
en fait, comme un final producteur.
Et ça a été révéli en Blazor Server.
Avec Blazor Server,
vous avez une application de SPNet Core.
Donc, c'est
en utilisant les mêmes
délicates en extention et
les postes et des choses comme ça.
Et puis, vous servez
un seul file HTML.
Et il y a un petit bit de JavaScript
qui se termine dans cet fil,
qui ensuite s'étend à un WebSocket
pour connecter du browser de l'usage
à votre service.
Et à ce point, tout le genre de
HTML s'occupe
sur le service et il est sentu
dans des petits chansons,
en s'occupe les différences.
Donc, chaque fois que vous cliquez
sur ou scroller
sur le browser,
il envoie ceci au service,
et le service s'en envoie
sur l'HTML Diff.
Il ressemble très bien
d'une latence,
et de l'aimant.
Mais ces sont très petits Diff.
Donc, ça fonctionne vraiment bien.
Donc, le DOM est managé sur le service
et ensuite, il envoie
l'output des DomsChanges,
ou le Delta, pour le client
via un signal R.
Exactement.
Vous avez le shadow DOM
pour le service, donc il est sorti
pour les mémoires.
Les plus de connecteurs que vous avez,
les plus de mémoires que vous utilisez,
c'est pour les connecteurs persistent.
Donc, il y a un aspect qui vous inquiète,
c'est une application stupide.
Si votre service ressemble,
tout les utilisateurs
ont dit que leur whole session
est déçue, ils doivent reconnecter,
et commencer de nouveau.
C'est un paradigm très différent
d'une application traditionnelle
où vous avez tous les réquests,
un request stupide
qui est réclenché.
Et ça, c'est fini.
Le service laser est différent.
Nous avons parlé de la connecteur persistent,
ce qui est un requinment.
Si chaque réquest est
sur le service,
même si je ne sais pas
combien de ressources par user,
mais le service a un whole,
donc il est moins
scalable que l'app
d'autre type.
C'est assez difficile de measure,
je me souviens d'avoir fait des preuves
et je ne me souviens pas de ce que c'était,
mais ils avaient un 1000 usages
par VM,
et ça serait assez confortable.
Pour une arbitrage, je ne sais pas
ce que l'app
de VM, mais
les meilleurs usages
ont des difficultés,
c'est de rester persistent
connecté à ce service.
Si vous voulez un service,
vous pouvez avoir plus de users,
mais le socket
doit être connecté à ce service.
Ça fait plus compliqué
de manager ces sockets.
Vous pouvez utiliser un service
de la backplane,
un service
entre les services
et les services,
et vous avez un service pour ça,
mais c'est où les choses
peuvent être un peu tricées.
Les sockets sont plus difficiles
que les connectés HDV.
Je pense que les différents places
que je vais utiliser,
les différents types de blazer,
les différents types de blazer,
si c'était un tool interne
dans la compagnie,
que vous utilisez dans l'internet,
comme vous le disiez, c'est beaucoup plus productive,
car vous n'avez pas de service
de blazer, vous n'avez pas de risques
de réveiller des APIs et de l'authentification,
tout ça parce que c'est en train de se faire.
Donc, votre code front-end
effectivement en train de se faire
peut faire des requests de framework,
pour les databases.
Donc, de l'application de développement,
c'est super productive,
pour les choses à la knock-up,
mais vous avez les détails que nous avons mentionnés,
mais je pense que pour
les web apps internaux,
je pense que c'est absolument parfait.
Je ne personnellement pas utiliser
les sites publics.
Oui, je l'ai complètement apprécié.
Je pense que c'est un plan de plan internaux
exactement pour ce qui est le cas,
mais au extérieur c'est un peu compliqué.
J'ai pas dit ça, le WebAssembly
est aussi
un replacement pour les spas
comme Angular et React,
donc en quelque sorte, vous vous mettez en public,
et vous vous trouvez bien.
Le problème que vous avez, c'est juste
que vous avez mentionné le service de Blazor,
et l'un des tests de performance
qui fait 1000 usages sur un VM,
ce n'est pas
que beaucoup,
depuis la performance de ASP.NET,
sans l'utiliser.
Il y a ça pour prendre l'account,
comme vous le dites,
vous avez un grand nombre de
trichets et AOT,
mais il y a une balance entre ça et la performance.
Ça me semble
que ces deux choses sont
très éduquets,
car les Staps ne caresnt pas
beaucoup, ils n'ont pas 100 000
d'utilisateurs,
c'est-à-dire que la waasam
est en performance dans les browsers,
donc ce n'est pas shared, c'est par user.
Je pense que l'important est que
tous ces différents esprits
les développeurs s'en comprennent
quand vous utilisez quoi.
Absolument, oui.
Et la autre chose,
c'est pas assez le même,
car ce n'est pas la fréquence de la fréquence,
mais l'utilisation de GRPC
pour communiquer entre les services de la fin de la fin
a été beaucoup plus commun,
car c'est un protocole
plus rapide que le HTTP,
mais ça vous donne
quelque chose de la même,
ça me semble très similaire,
comme un développeur de la NASP.
Ça me semble plutôt facile
de créer une fin de la fin de la fin de la fin de la fin de la fin.
Vous devez considérer
les différences entre les services de la fin de la fin
et les services de la fin de la fin de la fin.
J'ai utilisé le GRPC
pour le projet passé, mais je n'ai pas utilisé ça pendant un temps.
Qu'est-ce que l'on fait maintenant?
Parce que je sais que, par exemple,
quand on utilise le reste normal,
on a beaucoup de trucs utiles,
comme le postman et ce genre de choses,
où le GRPC
est un protocole de la fin de la fin.
Est-ce que c'est quelque chose de postman
pour le GRPC?
Je ne suis pas sûr.
Je me sens comme ça, mais
il y a aussi un set
où vous pouvez le faire,
en plus d'utiliser le protocole,
il utilise le JSON instead.
Ça fait beaucoup plus facile
de voir ce qui va au moins au moins au wire.
Même si ça ne faut pas faire simple
de le faire au wire.
C'est aussi le JSON actuel,
pas le JSON serialisé, le binary?
Oui, je crois.
Je pense que c'est ça. Je peux le faire.
Ne le dites pas, je n'ai pas fait bien.
Il serait intéressant de faire un filtre sur ça
et voir ce qu'il y a au wireshark
ou quelque chose d'autre.
Je pense que c'est intéressant
de voir toutes ces différentes options.
Avec le GRPC,
vous seriez toujours défaut
pour le GRPC pour servir des calls?
Vous seriez-vous pour le browser?
Ou les autres outils différents
que vous pourriez ajouter au GRPC
en lieu de rester?
Je pense que
pour le browser,
c'est possible
de rester.
Il est possible maintenant
avec Blazor WebAssembly.
Vous pouvez maintenant utiliser
le GRPC de l'abri de
le browser pour le service.
Ce n'est pas allé de toute la place,
plus
d'alimentation.
Vous avez une structure
qui est construite pour envisager
les requests de l'HGCP.
Ce n'est pas si grand de la place.
Le point de l'application GRPC
est de se faire servir
pour les outils différents.
Vous pouvez aussi
utiliser le GRPC de l'abri de
utiliser les protocoles
pour avoir un contrat.
Vous pouvez continuer
à exerter le contrat,
mais vous pouvez générer
un peu de tooling.
Il est très simple de parler
entre les applications
mais aussi de c-sharp
et d'Avra.
Vous pouvez utiliser
ce protophile intermédiaire
pour parler entre eux.
C'est très appui.
C'est bien.
On a eu des services
entre différents équipes
et l'HGCP.
Je sais que beaucoup de développeurs
veulent construire
un client qui est répliqué,
qui s'envoie.
Vous avez des types de API,
vous avez des types de
portables.
Exactement.
C'est la situation que j'ai été en train de faire.
On a recréé des types
et on a des packages.
Les choses qui sont bonnes
sont qu'ils peuvent être connectés
à l'HTB client,
qui est un point de vue
de 2-2.
Vous pouvez bénéficier
de beaucoup de choses.
Mais le GRPC,
vous avez un protophile,
c'est un file simple.
Vous pouvez les distribuer
dans un package Nougat.
Si c'est votre mécanisme,
ça ne vous requiert pas
d'une génération
de client manual.
Il y a des générations
qui sont utilisées.
Vous pouvez les appuyer
avec le GRPC.
Je pense que vous pouvez
ouvrir le postman
et appuyer un GRPC
protophile.
Je vais le google.
Oh,
le postman appuie le GRPC.
C'est récent.
2022.
il y a un prochain blog post.
Le blog post
que je vais vous montrer
dans les notes de la show.
Il y a un gif qui est à la fois
de ne pas faire un import.
Oh, c'est déjà...
Le postman
est à la fois de la URL
pour le GRPC.
Le protocole,
la version
et le méthode.
Je vais vous donner un gif.
Le méthode dropdown
est automatiquement appuyé.
Il faut obtenir le format
du point de vue.
Vous avez le dropdown
avec tous vos méthodes.
Je vais rewrite
tous mes services
dans le GRPC.
Il y a un danger
de la nouvelle shine.
Si je vais faire
des services nouveaux, je vais le faire.
Mais aussi,
c'est bien.
Tout supporte le STB.
Si vous utilisez le STB
entre vos services, ne vous inquiétez pas.
Je pense que c'est aussi juste
d'authentifier et d'authorisation.
Vous avez les pièces
de la sorte.
Absolument.
C'est bien le moyen de pluger
le GRPC
en parallèle
de la pipeline de ASP.
Il ressemble
à un GRPC,
un MAP GRPC.
Il fonctionne
en termes d'authentication et de choses.
Je ne me souviens pas si ça plugue
dans le même sens.
Ils ont un bon travail
de créer ces abstractions de haut niveau.
Et de l'interpréter.
Je vais retourner
au point de vue de la vidéo.
Vous pouvez voir
la progression.
C'est vraiment impressionnant.
Avec l'authentication, c'est un peu de temps
que j'ai fait, mais
le GRPC a une forme de header,
mais ce n'est pas le même concept.
Quand j'ai fait ça, il y avait un peu de
démonstration de la manière
de la configuration d'authentication.
Mais c'était pas compliqué.
J'ai fait beaucoup de choses.
On a parlé de comparer
différents versions de Blazor.
Blazor Server,
Razor Pages,
les technologies web.
On a parlé
des API Web,
versus le GRPC.
Vous savez ce qui vient maintenant.
API Web versus API Mineral.
Oui.
Je pense que les APIs
sont bien.
C'est mon point de départ.
Tout le travail qu'on a fait
dans Don X6,
pour s'adresser
à tout ce qui est plus
confusé,
c'est
absolument
nécessaire pour les gens.
J'ai essayé de commencer
la première chapter,
d'expliquer le programme
et la start-up.
Pourquoi nous avons deux files
et pourquoi il y a des choses
qui vont là-bas.
C'est possible,
et si vous avez déjà utilisé
ça, ça fait du sens.
Mais pour les gens qui viennent
d'Asp.
et qu'il y a
des files,
je n'ai pas de contrôle de la weather.
Comment ça a été appelé?
Je pense que le start-up
n'est pas référent,
c'est seulement ce que la parameter générique est.
Avec le minimal
et les APIs,
ça se fait
plus facile
d'utiliser la start-up.
En termes
d'une grande
projet,
je suis plus sur le fence.
Je me sens probablement
oui,
parce que le fait que je fais le contrôle,
c'est très, très lourd.
Ils se sont rendus
minimalement, et en ce cas,
vous pouvez utiliser le contrôle minimal,
le délicat de la handelure,
et vous avez un profit de la performance
d'utiliser les minimaux de l'API,
d'utiliser les pipelines de la filter,
etc.
Je pense que ça fait du sens.
On est encore en train de voir
les patins que les gens viennent de,
pour ne pas avoir 6000 APIs
dans votre programme de CCS.
Je ne pense pas que quelqu'un
réalistiquement va faire,
mais dans tous les dénails qu'ils ont fait.
Je pense que c'est le problème.
Quand vous avez mentionné
de délicat de la handelure,
qu'est-ce que vous vous disiez de la handelure?
Parce que avec le
NIC CHAPS, c'est un section de l'API,
et on a aussi un section de la médiatrice,
donc vous pouvez utiliser la médiatrice
de la handelure,
qui est peut-être un peu trop fort,
mais je n'ai pas vraiment aimé.
Mais il a mentionné un autre library
qui s'appelle Fast Endpoints,
qui est une autre façon d'utiliser ça.
Et ça simplifie un peu les choses,
mais vous avez encore un handler qui fait un truc.
Vous vous disiez de la similaire,
ou vous voyez que la handelure est juste votre propre classe?
Historiquement, j'ai eu un contrôleur,
et quand je commence,
je n'ai pas le contrôleur,
parce que ça ne matters.
Si vous vous dites un petit
sort de l'applet,
et vous vous dites un petit sort de l'applet,
ça ne matters pas où ça va.
Mais quand ça se fait un peu plus grand,
je vais essayer de poursuivre
les handelures séparées,
qui ont leur rôle délicat.
Et le prochain step
de ceci,
c'est de l'introduction de la médiatrice.
C'est ce que je tend à trouver.
La médiatrice est bien,
mais ça fait que l'expérience de l'expérience,
si vous êtes en train de le faire, c'est bien.
Vous pouvez avoir des patins,
des classes nestées,
des réponses de la question,
ça peut simplifier beaucoup ces patins.
Mais parfois,
c'est juste une direction d'élection
quand vous faites un appel métécoil.
Et je pense que
si vous avez un appel métécoil,
c'est pour ça que vous pouvez mettre ça
dans un applet minimal.
À ce point, le contrôleur ne fait rien.
C'est juste un mécanisme routier.
Et puis, le appel métécoil
a un sens parfait, en ce respect.
Je l'aime
le contrôleur de la patin.
Je l'utilise beaucoup
pour cela. Je ne l'utilise pas
pour tous les autres rubins que vous avez avec la médiatrice.
Ce qui est probablement
un peu trop fort. Je l'aime
parce que ça enforceera la consistance.
Mais quand ça vient de la place,
dans .net, vous pouvez juste créer un class
et appeler ça comme un contrôleur.
Et mettre un métécoil
et appeler l'execute.
Et vous n'avez pas besoin de la reflection de tous les rubins.
Et vous avez des rubins sur les rubins.
Oui, je pense que ça va être plus compliqué.
Le médicateur peut définitivement être utile.
Par exemple, on a eu
cette pipeline où le contrôleur
est responsable de créer
un scope, un scope d'éjection
qui crée une transaction
de sortes, pour que vous puissiez
faire tout dans votre contrôleur.
Et puis, c'est seulement le médicateur
qui complique la transaction.
Et puis, vous pouvez utiliser ça pour
faire la patinée du out-box.
Et vous pourriez Observe
automatique.
Mais il y a donc des
protections qui vous permettent d'aider
pour vous imposer et molayer pour
Thanks.
je pense que ça peut être un peu de sens.
Oui, c'est vrai.
Même si un request a des choses différentes pour faire,
il peut y avoir l'autorisation de l'application,
il peut y avoir la validation,
il y a l'actualité de business,
qui tend à être en train de lire ou de lire un database,
il peut y avoir des logins,
et toutes ces différentes responsabilités,
par rapport à des comportements différents,
comme les processus PRP,
vous pouvez les séparer en fait.
Mais les clients de la Corse,
les Mideaux,
qui sont aussi des pipelines,
c'est pas comme que vous devez utiliser un mediator
pour avoir ces bénéfices.
Absolument.
Et comme je le disais,
ces bénéfices sont toutes des choses qui sont plus tardes.
Vous ne commencez pas à faire ça
si vous avez déjà la construction
de l'application différente,
et puis vous avez un peu de compagnie.
Mais pour la plupart,
vous ajoutez ces en plus.
Mais,
les spiralisations émett veterinariiniętaires
de la Corse sonthésGrandement
pas complètement séparatement un pipeline mediate avec ces différents comportements et le main-handler
aussi. Je pense que c'est bien. Mais oui, il y a beaucoup de différentes manières pour le faire.
C'est comme le projet Fast Endpoints que Nick Chappes a mentionné, il a l'air vraiment
intéressant aussi. Et le tout, de la l'extra-lètre d'abstraction, il y a juste, oui,
beaucoup de différentes manières pour le skinner-cat. C'est pourquoi notre industrie est
tellement intéressant. Il y a beaucoup de différentes manières de faire des choses, beaucoup de...
Vous ne vous arrêtez jamais de apprendre, c'est pourquoi j'adore.
Absolument, j'ai complètement appris.
C'est aussi, ou des blogs comme vous, ça se fait vraiment utile.
Je suis content que les gens se trouvent utiles, à l'heure de toute façon. C'est bien.
Oui, c'est certain. Donc, on devrait probablement commencer à râper maintenant, mais
juste de retourner au blog, vous avez eu beaucoup de séries de choses et juste de
lire quelques des les plus grands. Vous avez une whole série sur Exploring.net6,
vous avez une série sur créer un générateur source, vous avez une série sur la
deep diving pour un build-up de string, vous avez une série sur créer un
simple avantage de calculation en C-sharp, comme on l'a déjà dit,
déployant les applications de l'application de l'esp.net.
Donc, il y a beaucoup de choses très intéressantes.
Donc, oui, les listeners sont...
En tant que vous ne vous arrêtes pas de rire,
vous arrêtes de l'arrêter et de cliquer sur la subscribe.
Donc, vous n'avez pas mentionné votre livre, avez-vous?
Oui, c'est le Coup de Puy en Action, l'endroit deuxième.
Oui, et le Maneink a très, très kindly offert à les les
les lettres, lui a donné un couple de votre livre et ils ont aussi donné un
35% de discount sur les livres de Maneink.
Donc, je vais le mettre dans les notes de la show, mais le discount
peut, pour n'importe quel de leurs livres, c'est le POD Unhandled21.
Mais pour le winner de votre livre, qui est l'Ebook,
alors, ce que nous allons faire est que si quelqu'un qui veut
prendre part, peut envoyer un tweet sur les podcasts
de Andrews'book, donc utilisez le hashtag
UnhandledException, pour trouver le livre.
Et peut-être une semaine ou quelque chose d'autre,
quand ce livre est publié, on va juste prendre
un outil random.
Ça va bien, oui.
Donc, je veux dire, le livre utilise le .NET 5.
Donc, des gens disent, oh, il y a un .NET 5, il y a un.NET 6.
La réalité est que c'est essentiellement la même chose.
Et il y a tous les nouveaux trucs,
comme les appels minibles et les hostages minibles.
Donc, ceux ne sont pas couverts dans le livre.
Mais, il utilise le programme traditionnel, le startup.
Et c'est toujours été focussed sur le rendering de services.
Donc, les pages de réservoirs, basically.
Donc, ça dépend exactement de votre focus.
Si votre focus est en train de commencer,
si c'est un .NET Core, je pense que c'est une bonne option
parce que, en fait, vous avez besoin de savoir de commencer.
Je pense que c'est l'autre chose qu'on oublie.
C'est que même si on utilise les APIs minibles et les hostages,
quelqu'un qui fait que c'est un .NET Core,
il va y avoir besoin de savoir les contrôles et le programme de startup
parce que c'est ce que chaque application, en fait, est utilisée.
Mais oui.
Je pense que vous avez hâte de voir
que ce n'est pas beaucoup changé par le plus tard.
Et je pense que nous n'avons pas vraiment découvert
la whole upgrade story.
Parce que le .NET, maintenant,
je pense que c'est en novembre, il y a une nouvelle version de .NET.
Et ça va être très rapidement éteint.
Et je sais que quand j'ai upgradeé
le .NET 5 ou le .NET 6 pour certains projets,
pour la plupart, c'est en fait en cas de
ouvrir le projet de CES, changer un mot,
et tout de suite, ça fonctionne.
Et vous avez tous les bénéfices de performance
et de la nouvelle et de la shine.
Et puis, parce que j'utilise les rideaux,
généralement, je suis sûr que c'est la même étude,
vous avez ensuite les idées qui suggèrent
que, même si ce n'est pas breakable,
donc vous pouvez le déplacer,
vous avez des choses à dire,
oh, vous pouvez maintenant utiliser
le file, le nombre de spaces, ou tout ça.
Et je trouve que c'est juste tellement rapidement upgrade.
Donc, même si ça se déteint rapidement,
la plupart du temps, ce n'est pas breakable,
et c'est tellement rapidement upgrade.
Oui, je l'ai complètement appris.
Donc, 1 à 2 à 3, ils étaient tous des grands jumps.
C'est tout le plus drôle de aller.
Mais de 3 à 5 à 6, c'est exactement ça.
C'est comme simple de changer un couple de références.
Et c'est ça.
Et vous avez juste les bénéfices.
Vous avez aussi beaucoup d'adresse.
Il a semblé que c'est un peu généreux,
mais ils ont ajouté beaucoup de choses.
La différence est qu'ils n'ont pas broken tout ça.
Et tout ce qu'ils ont travaillé avant,
c'est toujours là, et ça fonctionne parfaitement bien.
Vous pouvez encore utiliser l'original hostage
de .NET Core 2,
dans .NET 6, et ça va dire que c'est obssolite,
mais ça marche.
Je pense que c'est un tour
qui s'appelle le .NET upgrade assistant.
Je n'ai jamais essayé,
mais je crois que ça peut augmenter
tous les projets dans toutes les versions différentes.
Ça semble trop dur de être vrai,
comme je l'ai dit, mais je crois que c'est une option.
Je vais également vous en mettre dans les notes de la show
si quelqu'un est intéressé.
Donc, on va faire des dev pics ?
Bien sûr.
Donc, mon dev pic est un plug-in pour rider,
parce que je sais que vous êtes un fan de rider.
Mon nom est The Heap Allocation Viewer,
qui est un plug-in pour rider et resharp.
Ça déclare quand vous avez un allocation dans votre projet.
Donc, quand vous appelez « New »
vous appelez, c'est un petit truc.
Mais quand vous avez une conversion de boxe
d'un structe à une classe,
ça déclare ça,
et si vous vous capterez une closure
et quelque chose, ça déclare tout.
Donc, si vous faites des choses en performance,
c'est très utile.
Oui, ça déclare tous ces bits
où vous n'aurez pas d'autre pensée.
C'est très cool.
Avec Rider, je peux en parler un peu au CD
dans le sens où il va être gris dans le top-right,
pour les warnings et tout.
Et en tournant sur ce tool,
vous pouvez voir les lignes et tout
quand il y a des allocations,
je l'ai très rapidement tourné,
parce que c'était scariant,
parce que vous ne pouvez pas aller avec tout ça.
Mais je dois avoir gris et pas de warnings.
Mais oui, c'est utile,
surtout comme vous le disiez,
si vous faites des performances.
C'est incroyable de voir
où les allocations sont,
juste d'un point d'interesse.
Exactement.
C'est beaucoup de ces conversions de box.
Vous ne pensez pas nécessairement pas.
Si vous ajoutez un string à un caractère,
par exemple,
alors que vous avez cette conversion de box,
vous ne pensez pas nécessairement pas.
Oui, cool.
Donc, en fait, je vais faire deux picks aujourd'hui,
parce que l'un est un petit,
ce que j'ai mentionné avant,
mais parce que nous avons parlé beaucoup de Kubernetes,
il y a un GUI qui est un lent,
je ne sais pas si vous avez mis le lent.
Non.
Oh, c'est incroyable.
Je vais envoyer votre lien un peu,
mais c'est un GUI qui s'étend sur le haut.
En bas de la scène,
c'est probablement appelé les commands de la commande Ctl,
comme vous le savez.
Mais ça fait que
c'est plus facile de travailler avec Kubernetes.
Vous pouvez cliquer sur tous les différents types,
comme des deployments de pods,
ou tout ça.
Vous pouvez voir...
Si vous avez des ressources customes,
des définitions, vous pouvez voir tous les autres.
Vous pouvez cliquer sur un pod,
un écran de la déployation,
ou vous pouvez escaler les pods.
Vous pouvez cliquer sur le pod,
cliquer sur le bouton de la log.
Vous pouvez faire tout ce que vous pouvez penser
de ce GUI,
qui est vraiment bien designé.
Je vais vous en mettre dans la chambre,
mais parce que j'ai déjà mentionné,
je pensais que
parce que nous avons parlé de Kubernetes,
je pensais que je l'aurais mentionné,
mais mon autre pick est
ce n'est pas vraiment un dev pick comme ça,
et c'est juste une rédiction générale,
mais parce que nous parlons des blogs,
je pensais que c'était plus important de l'enviendre.
Je suis sûr que tout le monde l'a entendu,
c'est ce qu'il s'appelle GetPocket.com.
C'est pas nouveau,
mais je trouve que c'est super utile
de mettre des articles que je veux lire
dans le blog.
Donc, dans le blog,
je peux faire un blog,
peut-être un de l'Andrew,
c'est génial,
qui est tout ce que vous avez.
Je peux cliquer sur le pod,
sauver le poids,
ou si il y a une documentation,
si j'ai eu des documentations
dont je dois lire pour quelque chose,
je peux cliquer sur le poids.
Et puis, je sais que j'ai effectivement
un magazine de articles.
Je sais que je veux lire.
Donc, comme je le disais,
c'est génial pour beaucoup de choses,
des articles, des documentations.
Mais ensuite, je read
ce que j'ai sur mon device e-reader,
qui est un de mes enyx books,
Novo3,
je pense que c'est un de mes codes,
qui je peux partager dans les notes de la show.
Et c'est effectivement un device Android
avec une ligne comme un Kindle,
donc je le vois,
si je regarde sur le tableau.
Mais c'est juste génial,
parce que je peux juste ouvrir
la poids app
et lire
sur un liste massive
des choses que je veux lire.
Il n'y a pas de manière
d'avoir tout dans mon compte de poids,
mais je sais que c'est juste
quelque chose que je veux lire.
C'est vraiment utile.
Excellent.
Je utilise l'approche
de avoir 6 000 tabs.
Oh, je fais ça aussi.
1 pixel per...
Oui.
Ah, c'est drôle.
Donc, avant de nous signer,
je dois vous demander
dans votre nom de Twitter,
vous avez un souci.
Il y a eu un nom
de, je ne sais pas,
il y a eu 12.
Et ce n'est pas excitant,
c'est juste parce que mon nom est Lock
et pour les 12 ans,
c'était drôle pour les gens
de me dire Sock.
Ah, c'est ça.
C'est le truc.
C'est ça.
Non, oui.
Et maintenant, tout le monde.
Faire enough, faire enough.
Donc, avant de nous dire,
où est le meilleur place
pour les listeners
pour vous dire
si vous avez des questions
ou si vous voulez.
Donc, je suis sur Twitter,
et je suis sur Twitter,
je suis sur LinkedIn
ou vous pouvez m'aider.
C'est tout sur mon blog,
c'est Andrew Lock.net.
Fantastique.
Donc, merci beaucoup
pour votre soutien.
C'est une honneur
de vous avoir regardé
et je savais que
cet épisode
serait un peu tangent,
mais c'est ça
et j'ai vraiment aimé.
Donc, merci beaucoup.
C'est un plaisir.
Merci beaucoup.
Pas de problème.
Et merci à tous
pour l'entendre.
Je vous remercie
que ce podcast
est sponsorisé par Everstack,
qui est mon propre
company
qui tient de software
développement
et services de consultation.
Pour plus d'informations,
visitez Everstack.com.
Et si vous aimez le podcast,
s'il vous plait,
me laissez me séparer le nom
sur les médias sociaux.
Je utilise le hashtag
UnhandledException
et je peux être trouvé
sur Twitter
à Dracan
et mes DMs sont en train de s'ouvrir.
Et mon blog,
DanCloch.com,
a des liens à tous mes trucs sociaux.
Et nous allons inclurent
les liens à toutes les choses
que nous avons mentionnées
dans les notes de la show
qui peuvent être trouvées
sur UnhandledException.com.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Microsoft Build 2022