.NET Conf 2023 - with Scott Hunter

Durée: 44m35s

Date de sortie: 14/11/2023

In this episode I was honoured to be joined by Scott Hunter to chat about the announcements from .NET Conf 2023! The main areas we discussed were C#12 features, the new .NET Aspire, C# Devkit, Native AOT, and also touched a bit on Blazor. As always - it’s an exciting time to be a .NET developer!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 60. And today I'm really excited to be joined by Scott Hunter to chat about
.NET Conf et le rélease d'August 8, qui, quand ce épisode se passe, devrait être
vraiment juste. Mais maintenant, en temps de la recording, nous sommes encore un peu
deux semaines, donc, un grand bienvenue à la show, Scott.
Merci d'avoir m'en revendu, Dan. Je ne peux pas croire que ça a été comme ça depuis
longtemps. On en a parlé plus tard, mais la banque de la tech est de cette
piste incroyable, qui fait que notre travail est fun, parce que nous sommes toujours
explorés de nouvelles technologies et il y a toujours une nouvelle chose. Si tu me dis
que nous serions en train de parler de l'A.I., la prochaine fois que nous
parlons de l'A.I., je ne vais pas parler de l'A.I., mais les revolutions de l'A.I.
ont été réalisées. Et donc, on va parler de ça un peu aujourd'hui.
Oui, je pense que c'était le dernier mai pour la conférence de la bale, que nous
avons évoqué. Et je pense que c'était toi et Gareth Seth qui me sont en train de
rejoindre la show. Oui, c'était. Et oui, comme vous l'avez dit, ça a
fait un temps très long. Ça a fait un temps très long.
Je veux dire que, comme je l'ai dit, la banque de la tech est de très vite.


En anglais, c'est la révolution.
Vous savez, avant, vous et moi, on a juste
cherché des choses.
Vous savez, dans un établissement de la search, vous typez quelque chose, vous ne
vous voulez pas, vous vous phrasez et vous vous retirez de l'autre.
Et je ne peux pas attendre à dire, imagine, je peux aller à
Outlook un jour et je peux dire, Hey, Outlook, quand a-je été la dernière fois
que je parle à Dan Clark?
Et il se dit, oh, c'était le dernier mai.
Ce jour va arriver.
Et, et bien, c'est génial, quand vous pouvez demander la question, juste comme
ça, je peux aller à la tech et dire, Hey, je parle à Scott Hanselman
six semaines auparavant de faire un podcast.
Et, vous savez, Outlook, vous pouvez trouver ça pour moi.
Ça va être un grand avancement.
Et les LLMs, les modèles de l'anglais large,
ça va primarily vous enlever de faire ces types de choses.
Vous pouvez parler à la computer en anglais.
Et on fait beaucoup de travail en .NET pour faire sure que
les clients de .NET peuvent avoir cette expérience en .NET.
Et je voudrais parler un peu de ça aujourd'hui.
Un autre gros point que nous avons fait de l'esprit, c'est AOT,
un compiler à temps de temps.
Et c'est primairement parce que le marché de l'anglais et de l'anglais
est toujours changé.
Notre compétitif primaire aujourd'hui, c'est des choses comme Python,
Node.js et Java.
Mais il y a des nouvelles langues qui sont sur le marché, comme Go et Rust,
qui sont très bons à faire ce que je dirais à temps de temps.
Et on va parler de ça un peu aussi.
Et puis, enfin, je veux parler d'autres plateformes
comme Java qui ont des frameworks, c'est Spring.
C'est leur framework Cloud Native.
Si vous faites des applications Cloud Native en Java,
vous avez le temps de utiliser Spring pour faire ça.
Et à .NETConf, nous avons annoncé .NET Aspire,
ce qui est le framework de la application Cloud Native.
Et ce sont les trois zones que j'aimerais parler de aujourd'hui.
Oui, j'aimerais parler de Aspire aussi.
Je pense que nous devons pas être en train de se dépasser,
mais il y a d'autres choses comme,
je sais, c'est le code VS C-Sharp Devkit,
qui est assez intéressant.
Et puis, C-Sharp 12 et Blazor, ça semble aussi un grand truc.
Mais je suis sûr qu'on est vraiment en train de se mettre en place.
Une chose que vous avez mentionné sur les stuff AI.
Et je le vois dans l'agenda,
et vous aussi mentionnez Scott Hansman, qui ne l'a pas encore fait,
qu'il avait fait un talk sur quelque chose qui s'appelle Symantech Colonel,
comme un source ouvert.
Et je peux expliquer à Symantech Colonel
pourquoi c'est intéressant,
surtout pour un developer.
Alors, on commence avec C-Sharp 12.
C-Sharp 12 a un couple de features
qui me sont vraiment intéressantes.
Nous avons été dans cette journée
les dernières années
pour essayer de simplifier notre langue.
Et ce qui me fait simplifier est,
je pense que c'était dotnet 6,
où on a été rété,
si vous voulez créer un nouveau dotnet d'application,
vous pouvez commencer à écrire un code.
Il n'y avait pas de utilisement à la fin.
On a pu mettre tous les utilisements.
On peut les infermer,
ou vous pouvez avoir des utilisements globales,
où vous avez un file C-Sharp,
où vous avez une liste de tous les utilisements que vous voulez,
et on les injectera dans tous les files.
Il n'y a pas d'utilisation à la fin de chaque file.
Ce que les gens ne réalisent pas,
c'est que si vous n'avez pas écrit un class de programme
et un méthode principal,
on vous génère les utilisements.
Donc, quand vous commencez à écrire,
si vous regardez le code,
on génère le class de programme,
on génère le main.
Mais ça a commencé la toute la journée
de tenter de simplifier le C-Sharp.
Et la raison pour laquelle nous avons fait ça,
certains clients ont complété de cela.
Ils disent qu'ils n'avaient pas de main
et d'autres utilisements.
Et nous avons fait ça
parce que nous voulons faire sure
que le dotnet est approchable pour tous les développeurs.
Et les applications Python et noJS
n'ont pas tout ce que nous voulons faire.
Donc, nous voulons faire sure
que le développeur Python qui veut essayer le C-Sharp
ne se rend pas compte de que c'est super compliqué,
pourquoi est-ce qu'il est si compliqué?
Mais nous avons ajouté
un couple de cool features.
Il y a deux que sont mes préférés
dans le C-Sharp 12.
L'une de ces est appelée
« primaire constructeur ».
Et ce que la primaire constructeur
est aujourd'hui,
et mon préféré exemple de ceci
est l'application ASP.NET Razor Page.
Donc, si vous buildez un application
ASP.NET Razor Page
et vous ouvrez le file C-Sharp,
le file CSHML,
ou le file Razor.
Ce que vous allez trouver à l'intérieur
est qu'il y a un constructeur
pour votre classe.
Et parce que nous avons utilisé
l'injection de dependency
dans ASP.NET,
il va y avoir un constructeur
qui prend un I-logger
et ça va avoir
un variable dans l'application.
Et tout le constructeur
va faire est assigné
l'I-logger passée dans
ce variable.
Et nous avons fait tout ça
en .NET.
Vous créez l'instance privée
de l'instance de l'I-logger,
vous avez un constructeur
qui prend l'instance privée
et assigne l'instance privée
de l'instance privée
pour que vous utilisez
le reste de la méthode
et la méthode.
Donc un constructeur primaire
change ceci
où vous avez
en fait mis le constructeur
directement sur la classe.
Et donc maintenant
je peux dire
une classe
sur ma page
et j'ai mis un I-logger,
un space-logger.
Et ce qui se passe
est que nous automatique
créons l'instance privée
pour vous
et nous faisons l'assignment pour vous.
Donc, vous vous writez
plus de codes.
Ça fait que vous avez
le membre variable
et ça fait que vous avez
le constructeur
qui assigne le membre variable,
le pass-in
pour le membre variable.
Donc, il remet
six lignes de codes
pour chaque page.
Comment de nombreuses fois
avez-vous fait
une classe
où vous faites
comme un proble de x
et un proble de y
et tout votre constructeur
fait dire
x est x
y est y.
Et...
Tout le temps.
Tout le temps.
Je suis très en train de
mettre l'ID
pour réinjecter
tout ce genre de choses.
Mais ça serait superbe.
Donc c'est comme
on a des types de records
où le type de record
crée une propre
qui crée un field privé
si c'est une classe.
C'est en faisant les mêmes choses
et en faisant les assignments
pour vous aussi.
Bien, très bien.
Et donc,
c'est juste de la boule de boilerplate.
La deuxième
que je trouve
vraiment, vraiment cool
que nous faisons
c'est
ce qu'on appelle
collection literale.
Et
combien de fois
avez-vous fait une collection
et vous faites une nouvelle collection
et etc.
Vous savez, si vous faites
comme un
un array de int,
vous dites
square bracket,
int,
foo
et vous dites
equals
et vous faites
un liste de valeurs.
Si vous créez une collection
d'intes,
vous faites une nouvelle
collection d'intes
et vous faites
une nouvelle collection d'intes.
Nous pouvons enfermer ça.
Donc maintenant, vous pouvez faire
une nouvelle collection d'intes
et vous faites
1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Et
nous pouvons automatiquement
enfermer
cette nouvelle collection d'intes
pour vous.
Vous n'avez pas à faire ça.
Donc,
c'est, encore une fois,
c'est une reduction de texte.
J'ai eu l'impression d'avoir un video.
Donc, on peut en fait
montrer le vidéo.
Mais
ce sont mes deux
meilleurs features
dans C sharp 12.
Il y a d'autres.
Vous pouvez faire un alias
de type.
Vous pouvez faire
comme je peux faire un nouveau type
appelé Scott,
qui apporte à N32.
Oui, je sais
avec la documentation
pour l'alias.
Un exemple,
il donne deux poules,
ce qui est pour moi
un cas de utilisation
parce que je utilise deux poules
tout le temps.
Mais souvent,
je veux utiliser
le même,
en plusieurs places
dans le file.
Et ça juste
semble parfait.
Mon démon
de ça,
c'est que j'ai fait un point tuple
et que je n'ai pas appelé
point tuple point.
Et
que je peux utiliser point
à n'importe où
dans l'application
et ça juste fonctionne.
Et donc,
je suis 100%.
C'est un de mes faibles.
Oui,
c'est certain.
Je pense que aussi
avec l'expression de collection,
je pense que ça apporte
quelque chose de l'opérateur
qui,
si vous venez de la
JavaScript,
c'est un peu
et aussi comme
si je suis en train
de faire un dotnet
entre JavaScript
et ceci,
ceci et tout,
qu'il y a souvent
parce que dans
JavaScript,
il ne faut pas
mettre le nouveau
pour l'initialiser,
ce qui ne faut pas
avec cette expression de collection.
Je serai en train
de aller à le dotnet
et ne pas mettre le nouveau.
Il ne faut pas compiler
et il se dit
que j'ai oublié le nouveau
où ça se sent
et avec l'opérateur de spread,
il me semble que c'est vraiment
je ne sais pas
de la cleaning de choses.
Exactement.
C'est exactement ce qu'il y a.
Il y a un syntaxe
aussi.
Et c'est pourquoi
je pense que l'initialiser
est super cool.
C'est juste,
juste,
encore une fois,
tout ce que vous faites
chaque fois que vous faites
liste de l'int
c'est une liste de l'int
12345
est maintenant
liste de l'int
c'est une liste de l'int
12345
et il y a un cool
website
appelé C sharp lab.
Je ne sais pas si vous avez
joué à ça.
C'est un site
que vous pouvez
en fait paste
le C sharp
dans
et vous pouvez
paste
les versions
de cette chose
et vous le montrer
avec le compiler
génére
nous génére
l'exacte code.
Tout ce que nous faisons
est que nous pouvons
infer
le nouveau liste de l'int
ou le nouveau liste de l'int
ou le nouveau liste de
n'importe quel
et il y a un fou
si vous avez un couple
de listes
il y a un nouveau syntaxe
où vous pouvez
je peux faire
un liste de l'int
bar
et je peux dire
dot dot
liste 1
comma dot dot
liste 3
comma dot dot
liste 2
et on va prendre
les données
de chaque liste
et mettre
les en
initialisation pour vous
donc vous pouvez
faire des choses

je fais
comme
des strings
par ce genre de choses
donc
c'est plus exotique
mais comme je vous l'ai dit
je pense que les constructeurs
et les littéraux de collection
vont être les plus populaires
des nouveaux features
pour les uns des uns
il y a des paramètres defaults
il y a des arrays de la ligne
il y a des accesses de l'access
et des propriétés auto
il y a des alices
que vous et je vous en parlions
mais je pense que
les uns que vous voyez les plus
vont être les constructeurs
de la première
et les littéraux
Je suis nerveux de dire
ce autre feature
parce que
ça pourrait devenir
un tout épisode
je pense
mais
les intercepteurs
aussi
c'est un
un tout type
de podcast
j'ai
je me souviens de l'autre
parce que c'est
un vol de rabat
c'est un vol de rabat très bas
pour aller
si vous voulez
je suis heureux de
mettre un max
d'intervention
et je serai content
de faire un podcast
avec vous
et de faire un
deep dive
sur les intercepteurs
ça s'occupe
oui, c'est certain
et pour les gens
qui ne le connaissent pas
Max Ferguson
est
le
premier
driveur
de C-Sharp
donc
après
Andrew Sahlberg
a bougé un peu
Max est le
qui a été
drivant
de C-Sharp
pour le dernier
c'est une très longue
fois
c'est
c'est
C-Sharp
3-5
j'ai un sentiment
que la plupart de nos
listeners
auraient
eu des mâts
j'espère que ça
on va poser
la conversation
juste pour un moment
pour un petit mention
de notre
sponsor
trackJS
qui aide
à supporter le show
on a beaucoup
de bons outils
pour observer
ce qui se passe
dans nos services
mais
qu'est-ce que le client
on a appris
beaucoup de fonctionnalités
dans nos web apps
et il va
se briser parfois
trackJS
vous donne
une visibilité

dans ce qui se passe
dans vos applications web
collecter
des erreurs
et des événements
avec des
juristiques
et des rôles
pour trouver des issues
qui en ont en
donc
allez le voir
sur trackJS.com
donc
en passant
sur C-Sharp
j'ai l'impression
que je n'ai pas
vraiment pas
très bien
ici
mais j'ai l'heur
mais
ce n'est pas
un espère
et évidemment
ce n'est pas
un secret
à l'époque
mais
à la fois
ce podcast
vient de sortir
ce n'est pas
oui
donc
on va parler de l'espire
on a fait un projet
trois ans
il y a un expériment
il s'appelle
Project I
et les choses
que nous venons
de
se résoudre
dans Project I
sont
dotnet
est
je dirais
vous pouvez construire
des applications
dans les applications
on a fait beaucoup de travail
dans les applications
dans le temps corbe
dans les BCL
et les outils
pour faire
un grand
framework
pour la plate-forme
pour construire
des applications
mais aujourd'hui
vous devez
savoir
comment
tourner
toutes les
séances de la droite
et je vais vous donner un exemple
si je suis dans le cloud
je devrais vraiment
avoir
une
factory
de client
et dans cette factory
je devrais initialiser
les défauts
pour mon client
donc il y a une résilience
sur le default
et ce qui signifie
c'est
si je suis sur
ma machine
je peux faire un appel
à un API
de ma machine
et ça va être très vite
à chaque fois
quand je suis dans
le cloud
peut-être
juste parce que
un data centre
les calls
sont 3 secondes
chaque fois
et puis
de suite
c'est 3 secondes
bien
les apps
doivent se couper
sur la délègue de 3 secondes
mais avec
la résilience
qui a été
la technologie
va avoir
retenu
un couple de fois
avant qu'elle a
failli
et ça
fait que
la app
est résiliente
donc
si vous saviez
que nous avons
cette feature
et que vous l'avez tournée
c'est bon
Aspires
le cloud
et le framework
ça va vous
vous automatique
l'individu
framework core
le même genre
nous avons
une
feature
l'individu
framework core
qui vous permet de tourner
sur les retrait
ce qui signifie
que je fais
un appel
sur le database
peut-être
le database
ne répond pas
à la suite
les apps
sont juste
crèches
avec une exception
qui se dévouent
mais vous pouvez
mettre une politique

qui dit
Hey
si les calls
sont retournées
à la suite
pausent
pour une demi seconde
et essayez de l'envers
et donc
le .NET
est full
de tous ces
petits
des features

que vous
devriez
être
tournées
par default
si vous
vous faites
une application
mais nous ne le tournons
par default
donc
le but de l'inspire
est de
tourner sur
tous les meilleurs
pratiques
par default
je vous donnerai
un autre exemple
de quelque chose
que
quand on a
révisé
le .NET
core
en 2016
une des choses
que nous avons
appris
de la
MBC
et
les webforms
nous n'avons pas
mis de bon log
dans le système
et donc
l'inspire
va tourner
tous les meilleurs
log
par default
et par
le fait
que même
même
le .NET
core
est là
que nous ne le tournons
tout le temps
et donc
nous voulons
tourner
tous les log
sur
les meilleurs
pratiques
pour le log
et ils sont
sur par default
nous allons
dans
ce que je vous n'allais
dire
être opinioné
nous sommes
tous les meilleurs
capacités
et
tourner
sur
mais le plus grand
et je l'ai fait
avant
et je l'ai
lancé
avec des
meilleurs
avant
est
ok
je vais
construire
un project
je vais
avoir un laser
pour l'en
et je vais
avoir un
.NET
web
appui
en
bien
si vous
êtes
en
la machine
comment
vous commence
ça
oh
oui
en







On
sexuality
Le inspire a une nouvelle technologie qui s'appelle dcp.
C'est un runner qui peut faire des applications multipart.
Ce sera juste sur la défaut.
Vous n'avez pas de temps pour faire un peu de choses.
C'est comme, je dois avoir une application multipart.
On doit commencer cette application.
C'est un outil de défaut.
Il a des résilience sur la défaut, des logins sur la défaut.
Il a un appui multipart,
on espère que la cloud est en place,
il y a un appui de front, un backend.
Et donc, un autre component de applications
qui sont difficiles sur dotnet
sera dans ce cas,
vous allez dans la solution explorer, vous cliquez sur la clé,
vous cliquez sur la blazer, vous cliquez sur la web API.
Comment est la app blazer
pour obtenir l'application IP de la web API ?
Ce que vous allez faire aujourd'hui,
c'est que vous allez probablement aller au projet de web API,
ouvrir les propres,
ouvrir les settings d'offre,
trouver l'application IP que vous avez créée automatiquement,
vous pourrez copier,
vous vous le vousz pour votre projet de blazer
et vous vous l'allez dans.
Ça vous a senti très familier.
Exactement, vous avez tous fait ça,
je l'ai fait un million de fois.
Ça ressemble bien, ça marche,
mais ensuite vous décidez de la publier
pour que les appels d'application IP soient changés.
Et ça ne fonctionne pas.
Et donc, ce n'est pas bon.
Et donc, on en fait vraiment essayant de résoluer
tout ce genre de problèmes
avec dotnet espère.
Je vais vous mettre le 3e scénario,
ce qui est,
je veux utiliser un component
qui n'est pas sur ma machine locale.
Par exemple, je veux faire un database postgres
ou je veux faire un cache red.
Je dois avoir quelques choix.
Je peux aller et trouver une version de ceci
qui fonctionne sur ma machine,
je peux les installer.
Comme développeur, j'ai hâte de le faire.
Je vais essayer de protéger ma machine
et seulement installer le plus de choses sur ça
parce que je ne veux pas avoir à refaire
ou à ne pas avoir à se débrouiller.
Je suis très protégé
et je suis très active de mon environnement.
Je ne vais pas me faire trop de tweets.
Et donc, avec Aspire,
il y a aussi une notion d'Aspire Components.
Il y aura Aspire Components pour un Redis,
Aspire Components pour un Postgres,
MySQL.
Ce qui va arriver est
qu'on va require un docteur pour un desktop.
Si vous voulez faire ce type d'opération,
ce que nous allons faire,
c'est qu'on va en faire
et on va déloader le Redis
sur la machine locale
et on va le faire sur ma machine locale.
La chose bonne est que c'est un container.
Ce qui veut dire que quand je fais
.NET Run, on va déloader le container.
Quand je déloader l'application,
le container se déload.
Il n'y a pas de Redis sur ma machine.
Il n'a jamais effectué de tout ce que j'ai fait.
Et donc, Aspire est une collection
de tous ces types de choses
que nous avons fait ensemble.
Et donc, on va parler de comment
l'Aspire app serait différent
d'un app qu'on a aujourd'hui.
Donc, ce que je ferais en Aspire
est que je serais typiquement
exactement ce que nous avons dit.
Je serais en train de commencer
et de mettre un application de blazer
pour ma solution.
Je serais ensuite un application de Web API
et je serais ensuite un nouveau gesteur.
Il y a un nouveau gesteur dans le toul.
Je peux le faire en bas.
Et je peux faire Add.
Et il y aura
Aspire orchestration
pour mon projet.
Et donc, quand je fais ça,
c'est de faire Add.
Je fais mon machine ici
pour aller au point d'adresser
l'Aspire orchestration support.
Et je vais dire
que je vois ces deux projets
dans votre solution.
Quels sont les deux que vous voulez
mettre une orchestration à?
Je vais cliquer la application de blazer
et je vais cliquer la Web API.
Si je clique un, je peux revenir
et re-cliquer l'autre.
C'est quelque chose que vous pouvez faire.
Et ce qui s'occupe quand je fais ça,
c'est de mettre un nouveau app
pour ma solution.
Et je n'appelle pas la orchestration app.
On va mettre ce que nous appelons un app post.
Et le app post est le glue.
C'est comme vous le dites,
je veux glueer ces deux applications ensemble.
Donc, ce que je ferai dans mon app post
est que je dirais que je vais dire
builder.addproject
et donner le nom de ma Web API.
Et je signerai ça à un variable.
Donc, j'ai mon service API
comme variable.
Et ensuite, je ferai builder,
addproject
et passer mon app blazer.
Et ensuite, je dirais dots
avec un référence
pour le service API.
Donc, ce que j'ai fait, c'est que je faisais
deux apps comme projets.
Et maintenant, je veux glueer les deux ensemble.
Et donc, par dire,
avec référence service API,
le host est en fait ce que le DCP
fait pour commencer l'app.
Donc, il va aller et dire,
je vois que j'ai un app
et ça dépend de l'autre app,
ce qui veut dire que ça va commencer le service API
parce que ça sait que la app blazer
dépend de l'app.
Donc, la app blazer ne peut pas travailler
sans l'app.
Donc, ça fait la connecteur.
La vis stop C-L'at
c'est la construction.
Et comme j'aichter

en même temps,
c'est col ehrlich,
c'est un PRO adulteems.
Mais mon code
est basée en
urbani漫 hai excluded de
ce morceau.
Maintenant, pourquoi ça se passe?
Ça se passe parce que dans ma app Blazor,
quand je veux aller en bas, je n'ai pas besoin d'aller dans les settings de launch
et de prendre un appui de l'application.
Je vais prendre ce nom, API Service, et faire HTTP,
WAC WAC API Service, et nous allons faire la maquillage
pour que vous puissiez faire ce que vous avez en-dessous.
C'est super important parce que ça signifie que quand je fais la maquillage
localement, ça va utiliser un adresse local.
Quand je fais l'appli local, on va faire la même maquillage
pour que l'appli IP aille, la maquillage container que vous avez
et que l'appli Cloud aille.
Nous allons faire tout ça pour vous.
Ça va être plus cool.
Je veux peut-être faire un appui de blazor pour faire un cache.
Je clique sur le right et je dis « Add Aspire Component ».
Les compagnons sont des collections de choses.
Si je dis Redis,
l'Aspire Component pour Redis va faire deux choses.
Il va dire « Hey, je dois faire un container Redis »
et le faire localement.
Il va dire à la host « Go make me a Redis container ».
Il va faire le changement de stack de Redis en même.
Il va faire le même mécanisme de naming.
Je peux aller au poste de ma maquillage et je dis
« var cache equals builder.addRedisContainer ».
Je le donne en name de cache.
Si je fais le application,
il va faire le container Redis.
Je vais au application blazor et je vais aussi dire
« dot with reference cache ».
Le container Redis va faire le run,
donc il ne va pas utiliser le cache.
Je peux aller au appui de blazor et aller à la page
et faire le « tag helpers »
et la page pour utiliser le cache.
Quand tu as dit « Go to your blazor application »
et dis « use reference cache »
est-ce que c'est dans ce projet d'orchestration ?
Non, donc le projet d'orchestration
pense que le projet d'orchestration est
juste un appui qui nous dit
« Hold the tool how to start up »
et donne tout le nom et les égalements.
La maquillage de blazor, je vais juste aller
comme normalement et aller à la page
dans l'appui et ajouter le « tag helpers »
pour utiliser le cache.
Pour exemple, dans le cas de la haute,
si je veux utiliser le cache,
je vais aller dans la maquillage de blazor
et ajouter un attribute appel « output cache »
et mettre la duration à 5.
Et ce que je ferais, c'est que je vais aller
dans le « program.cs » pour mon application blazor.
Et nous allons faire ça pour vous.
Pour ajouter un component spark,
nous allons mettre un « builder.add redis output cache »
« instance » dans la page.
Et nous allons ensuite aller dans l'app
et nous allons dire « app.use output cache »
Donc, ce component installe
ces deux choses dans le « program.cs »
qui nous dit la « blazor app »
« Hey, je veux utiliser ASP.NET Core »
« output cache » et,
vous savez, pour le même temps,
parce que nous faisons ce mécanisme de nommage,
je peux nommage le cache.
Si je nommage le cache,
ma « app.use cache »
dans le « program.cs »
de la maquillage de blazor,
je referai le cache, c'est le cache.
Donc, quand je commence le projet,
plus de magie se démarre.
Donc, quand vous faites tout ça,
quand vous ajoutez l'app.use,
ce « app.host » devient le « default project »
C'est le projet que nous voulons faire.
Donc, quand vous contrôlez la 5 ou la 5 et le tour,
c'est le projet que nous allons faire.
Et ce projet, comme je l'ai dit,
c'est le projet qui va ensuite
faire le « dcp »
qui est le « engine »
sous les couvres.
Et ça nous dit que le « dcp »
va créer le « redis cache »
et la « redis cache »
et ça va injecter les variables
avec toutes les idées IP
et les portes et tout comme ça.
Vous ne voyez pas ce genre de choses.
Vous n'avez pas besoin de ça.
Mais quand vous achetez l'app,
vous ne vous achetez pas dans la « blazor app »
vous achetez en fait dans la « app.host » app.
Et la « app.host » app est vraiment cool
parce que ça vous emmène un « dashboard »
et c'est quelque chose que nous devons faire
dans « dotnet » et « as.net »
10 ans plus tard.
Le « dashboard » est vraiment cool.
Ça vous emmène un « web page »
avec le « dashboard »
Ça va montrer toutes les applications
que vous avez en cours.
Ça va vous montrer votre front-end et votre « backend »
Ça va avoir des « links »
Si vous voulez cliquer un « link »
vous pouvez cliquer un « link »
pour le « backend API »
et ça va vous aller appeler le « backend API »
et si vous avez un « default map »
sur votre « backend »
dans mon cas je le fais
ça retient le « weather data »
si je clique le « link »
sur le « blazor app »
ça vous emmène un « blazor app »
donc je peux vous éloigner
toutes les applications
je peux aussi, pour chaque application
je peux vous montrer les « logs »
et donc je peux voir les logs
des « logs » de la « redis cache »
qui commence dans le « container »
je peux voir les logs
des « web API »
qui s'est emmené
et je peux voir les logs
des « blazor app »
qui se démarrent
et c'est plus intéressant
après ça
c'est que
nous avons distribué le « tracing »
qui a été élu
comme je l'ai dit, tout de suite
tout ce texte dans « dotnet »
pour toujours
nous ne devons pas le faire
distribué le « tracing »
qui a été élu
et donc ce que vous allez voir
si je clique
sur le « weather »
dans mon « blazor app »
le premier request
vous verrez qu'il a fait
l'application de la « blazor app »
vous verrez que la « blazor app »
vous faites le « call »
pour l'application
et vous vous vous enlève
la réponse que vous voulez
si vous réfressez le « page »
vous vous vous vous vous vous
vous vous vous vous
mais cette fois vous ne vous verrez pas
qu'on a pas réclé le « web API »
mais vous verrez qu'on a réclé le « Rediff Cache »
et donc
ce qui est tout dans la logue
distribuée
et ça vous montre
combien chaque segment
s'y rapprocher
et donc vous avez
le public
c'est comme
« How long did it take the blazer page
to load ? »
nous avons pris
la « blazor page »
15 milliseconds
et nous avons pris
l'application
« call »
pour 5 milliseconds
et ça vous montre
un graphite
qui vous dit que la whole
thing
c'est 20 milliseconds
et le troisième
il fait le « cache »
on verra maintenant, oh, il a retourné en 4 milliseconds
parce que ça n'a pas eu des calls.
Et tout le monde a regardé ça.
Vous pouvez cliquer sur les items qui ont été réalisés.
Vous pouvez voir que si vous cliquez sur ce lien,
sur la deuxième,
vous verrez qu'on a appelé le Redscash.
Vous verrez le Redscash.
Mais ce n'est pas tout.
Il y a un autre pièce.
Donc, à ce point,
on a un appui de multi-part.
On peut commencer
dans un dashboard,
commencer toutes les compagnies.
Ça peut conclure les containers.
Si ça requiert des containers,
vous n'avez pas de la machine.
On fait tout le port, la maquillage,
on fait le set-up de component pour vous,
dans un moyen clean.
Mais le prochain est,
je veux écrire ce truc au cloud.
Comment ferais-je ça ?
Et, historiquement,
dans nos tools,
vous cliqueriez sur l'app en bas
et vous diriez « deploy à Azure ».
Vous cliqueriez sur le bas,
vous diriez « deploy à Azure ».
Et, j'espère que vous avez envoyé
le bon goût au cloud
pour faire toutes les maquillages,
les IPs, etc.
En talant que vous b Nissan avez
de l'avbecca desмаissants et des
Anthro FNPart Spray,
base et un red as cash,
vous avez un couple de choix.
Vous pouvez, dans votre repo,
vous pouvez avoir un peu d'instructions
en disant,
aller au port et créer toutes ces choses.
Ou vous pouvez dire,
faire des commandes de la commande,
créer toutes ces choses.
Donc, AZD,
ce que nous avons fait le bille,
cette année,
il vous permet de mettre un code
dans un folder dans votre application
qui explique
toutes les pièces.
Et donc, je peux prendre votre repo
et dire AZD,
et AZD va aller et me demande un couple de questions.
Qu'est-ce que votre subscription,
quel date de service,
quel régime vous voulez avoir,
et vous pouvez automater l'ensemble de votre flow.
Pour une app Aspire,
ce que vous faites,
c'est que vous vousreniez AZD dans le folder de votre application,
et vous scanerez le folder,
tout le code,
et vous trouverez ce manifestant.
Et pour ce manifestant,
vous devez savoir
qu'il faut mettre l'app dans le cloud.
Et donc, j'ai mon app Blazer,
mon red as cash,
mon backend,
je vais aller et faire AZD,
et quelques secondes plus tard,
je vais essayer deaster
un reorganisation

Mais desynthesis.

et ça va être un bon moment pour moi.
Je vais vous parler de l'expérience que j'ai fait.
Vous pouvez faire ça aujourd'hui, sans un espace.
Et ça va prendre deux heures pour vous faire le point que je l'ai juste décrité.
Mais avec l'espace, vous allez y aller,
dans un format très facile à utiliser.
J'ai joué avec ce tech pour quelques semaines maintenant.
Et c'est super excitant.
Et puis, tout ce que nous avons parlé de résilience,
est en bas de faute.
Donc, mes clients HP sont en train de faire le bon travail.
Mes corps EF sont en train de faire le bon travail.
Et comme je l'ai dit, tout ce que l'expérience est en train de faire,
et de faire les mêmes choses,
dans un moyen que vous ne pourriez jamais...
Tout ce que l'expérience est en train de faire,
c'est de se faire un tour de la net-core.
Donc, le termine serait d'utiliser un stack cloud-native.net.
Je pense que parfois c'est le meilleur moyen.
Il y a beaucoup de différentes manières de faire des choses
qui confusent beaucoup de gens.
Je pense que le moyen que je fais de la currently,
c'est que je utilise Dock & Compose beaucoup de fois,
pour que ça soit le plus important pour moi.
Et parfois,
c'est souvent que Dock & Compose se tourne,
comme vous le disiez,
ou en QQ ou SQL Server,
mais si je travaille avec
des services de Dock & Net,
et d'autres services de micro-service,
je ne veux pas que je vienne les services,
je ne peux pas travailler sur ces choses.
Mais si je fais ça par Dock & Net,
je dois construire un container et tout.
Mais ça semble comme ça, je peux
faire du stuff d'Ock & Net,
mais aussi de ce que ce n'est pas dans Dock & Net,
et juste d'enregistrer tout.
Et je peux faire beaucoup plus de choses aussi.
C'est super cool.
Je vous aime vraiment.
C'est un truc de l'alimentation.
Je suis excité.
Je voulais que ce soit un podcast de vidéo,
et je l'ai fait le demo tout le temps,
pour montrer tout le monde,
parce que c'est spectaculaire.
Nous étions enregistrés
un peu d'autres jours,
mais au départ,
j'avais uneenz d'adriendance
d' zegarez car c'était le relief.
Je 겁니다 ont lie à ça.









les câbles.
et ça va s'adapter à un moment,
à un moment ou deux, et donc les gens ne savent pas,
ce workload est un moyen de construire
un tout stack sur le top de .NET.
Donc si vous installez .NET 8 sur la machine,
et vous voulez construire une app MAUI,
il n'y a pas de MAUI sur le default,
parce que nous n'avons pas trop de choses à faire pour .NET.
Donc Aspire est ce qu'on appelle le workload.
Si vous installez MAUI par command line,
vous disiez, .NET workload install MAUI,
et pour ça, il y a .NET workload install Aspire,
et ça va aller et vous en prendre un peu,
vous pouvez aussi faire .NET workload upgrade,
ça va vous apporter à quel point les Aspire bits sont et tout comme ça.
Nous avons cette mechanism de construire stacks sur le top de .NET,
sans en mettre en place le temps de course,
ce qui est un de nos goals de design,
en plus de la journée.
Vous avez mentionné de l'utiliser l'Aspire Tool
et de créer ce projet d'orchestration.
Est-ce que c'est un projet de Visual Studio ?
Ou peut-être utiliser le .NET CLI pour créer ça ?
C'est tout .NET CLI.
Donc, si vous êtes à l'intérieur de Visual Studio,
vous avez un peu de gestures de Right Click
qui vous permettent d'aider un MAUI à vous aider.
Mais tout ce que je disais, c'est possible de faire par command line.
C'est aussi un des tendances de,
quand nous réboitons .NET, en 2016,
tout est command line.
Si je suis sur Windows Machine,
je suis dans Visual Studio,
mais je serai sur un Mac
ou une Linux Machine.
En ce cas, je vais utiliser le code VS,
ou le writer.
Vous avez mentionné au-dessus de la show,
un des trucs cool que nous avons récentement
créé est le C-Sharp Defkit.
Nous avons eu une extension pour le code VS
pour longtemps, mais ce qui fait
que le code Defkit est différent,
c'est qu'on a basé le code Defkit
dans le Visual Studio,
et nous avons utilisé le même engine
pour pouvoir le code VS.
C'est génial pour nous,
car nous ne sommes pas duplicés du code.
Il y avait une implémentation différente
sur le code VS, et c'est le code Visual Studio.
Nous avons donc réparé la même implémentation
de notre engine de langue
entre les plateformes.
Il y a aussi un MAUI Defkit,
et pour la première fois,
vous pouvez construire
des applications MAUI avec le code Visual Studio.
C'est génial,
le code DETAIL
et le code DETAIL
permet de lancer
des emulators Android,
des emplois iOS,
des emplois iPad,
et tout de suite.
Je suis heureux d'adresser
ceci, et nous avons annoncé
ceci, le type de vie
pour le code VS pour Mac.
Je ne pense pas qu'on a
donné une bonne explication
sur pourquoi.
La plus grande complication que nous avons
pour Visual Studio pour Mac
n'est pas comme Visual Studio pour Windows.
Je pense que c'est un peu
difficile de
couler tout le feature
sur le code VS pour Windows
et faire le travail sur le code VS pour Mac.
Les opérations des opérations
sont différents.
Ils ont été évidentes
et nous n'avons jamais
été élevés.
Pourquoi nous nous focusons
sur la chose que nous pouvons faire
à travers tous les opérations des opérations
VS,
et nous pensons que c'est un meilleur
investissement de nos ressources
pour faire un Mac et un C-Sharp
des dev kits qui travaillent
à travers tous les opérations des opérations.
C'est dit, vous allez avoir
les meilleures features et la meilleure
expérience de développement
et de la Windows
sur la PC Windows.
Nous ne serons pas
jamais élevés de la feature
pour la Windows et mettre le code VS.
Si vous avez fait ça,
vous avez le même produit.
Je pense que nous tous
pensons que le code VS est le
de la « lightweight »
et que la Visual Studio est la
expérience de catalogue avec toutes les
les features élevées.
C'est aussi possible avec la onboarding
si vous avez des gens qui sont
peut-être Anglards, devs
ou quelque chose d'autre,
ou tout ce qu'il y soit,
si ils veulent jouer avec.NET
ils pourraient être utilisés avec le code VS
c'est bien.
Si vous avez fait un C-Sharp en code VS
précédemment, vous seriez probablement
un C-Sharp, quelque chose comme ça.
Si vous avez utilisé,
si vous avez utilisé d'autres registers,
comme Vim,
vous pouvez utiliser un C-Sharp
avec ce nouveau C-Sharp
est-il d'autres support de l'SB
pour les autres registers ?
Nous serions toujours utilisés avec un C-Sharp
pour les autres,
si vous avez utilisé Vim ou Emax
c'est pourquoi nous ne voulons pas
faire le stuff de l'OmniSharp, nous voulons
garder ça en place, et c'est pour les editors
qui ne sont pas un code VS ou un editor VS.
Je pense que c'est sur le scope de
le C-Sharp, que vous pouvez essayer de travailler
avec tous les editors sur le plan.
Mais je veux vous dévoiler
que vous avez bien compris que
l'un des goals de C-Sharp Defkit
était exactement ce que vous avez dit.
Si vous êtes un nouveau développeur
et que vous êtes déjà un developer Python
ou un developer Node VS
et que vous voulez essayer.NET,
vous voulez faire sure que cette expérience
soit une bonne expérience,
vous devez aller là-bas,
vous devez décider de utiliser
le plus grand VS, mais nous pensons que vous allez commencer
de cette manière, et c'est pourquoi
ceci est une expérience très bonne,
une expérience très facile,
c'est super bon.
Oui, c'est certain. Je ne veux pas qu'on
t'en prenne quelque chose de l'autre,
les gens qui font le C-Sharp, mais c'est probablement pas
comme une expérience que vous utilisez
pour utiliser le studio ou l'aider.
Je n'ai pas vraiment joué avec, c'est sur
mon long liste de choses à jouer avec,
avec le C-Sharp Defkit. Je vois Scott Hansel
dans ce vidéo qui a été, je pense,
qui a été viral, mais qui a été
montré tout le stuff de Defkit. Mais oui, ça a été cool.
Je l'ai utilisé pour un moment.
Une chose que j'ai essayé de faire, et on a
déjà parlé de ça avant que nous
commençons la recording aujourd'hui, c'est
que je n'ai pas tous les devises. Je
ai Windows PC, je n'ai Max,
j'ai Android devises, j'ai iOS
devises, et la partie de la raison
que je fais ça, c'est que
dans mon travail, je veux faire sure
que nos tools de développeurs pour Azure
et pour .NET, travaillent bien sur
toutes ces plateformes.
Et donc je me suis fait bouger
et sortir de tout. Je suis en train
d'avoir un ARM 64 Windows devise,
en un moment, un X64 Windows
devise, en un moment, un ARM 64
Apple devise,
et je me suis toujours
en train de bouger et de faire sure que
nous n'avons pas de vêtements. Je l'ai
pris beaucoup de temps de temps, en
en faisant surement que tous nos tools
travaillent bien sur les machines ARM 64,
que ce soit une machine ARM 64,
ou on a shipé la machine ARM 64
Windows devise l'année dernière,
qui s'appelle le project Volterra. Et c'est
parce que nous avons vu ARM aller
partout et part de mon travail est de
faire surement que le
developer CLI, DAPR,
nos extensions code
sont allées bien sur tous les
devises et donc c'est un
multi-tasking entre chaque devise que vous
imaginez sur un basis régulièrement.
Vous avez mentionné DAPR, je veux vraiment
commencer la conversation mais ça, d'abord,
DAPR et comment ça s'y rapproche
et tout ça serait un autre épisode,
non ?
On devrait aussi avoir des MADS
et on peut avoir Paul Yuknevich
aussi, Paul est la personne de mon
organisation qui travaille sur DAPR.
Nous avons de la support d'April
pour assurer l'inspiration.
Les gens qui ne le connaissent pas,
DAPR est une frameworks de micro-service.
La cool chose de DAPR est
DAPR est la langue cross-langue,
qui signifie que vous pouvez imaginer
que vous êtes dans une organisation
qui a un API en Java
et vous voulez avoir un don
d'application qui veut utiliser
l'API. DAPR
mouche sur ça.
DAPR aussi a des principaux
de la langue.
Imaginez que
votre application de la langue
va de C-Sharp
à Java et en back.
Ça fait le retrait de la politique
aussi.
On a aussi le retrait de la
expérience, mais la app
ne peut pas avoir ça.
Ça fait que ça fonctionne pour moi
d'avoir une figured de la langue
et une clé deissions,
ou encore plus,






Paul, il a parlé de Dapper et de Mads, il a parlé de C-Shark 12.
Ça ressemble à ça.
Oui, c'est ça.
Vous avez mentionné la tracé des fois, et vous avez mentionné la tracé de Dapper et d'Espire.
Et quand vous avez parlé d'Espire, vous avez parlé de l'Espire,
quand vous pouvez F5 et vous voyez un dashboard.
Quand ça va dans la cloud, peut-il s'occuper à l'opinion de l'hématisme ?
Vous pouvez voir ces traces et des logs dans Grafana,
ou où avez-vous choisi une plateforme observable ?
Notre plan va être de faire le même dashboard et de travailler dans la cloud.
Vous pouvez choisir d'utiliser Grafana, d'utiliser un app Insights,
mais je suis préannoncé, je parle de Jean Lawrence,
qui est le lead de la construction de l'application Azure Container.
Nous voulons aussi avoir l'Espire dashboard pour faire le même.
On ne peut pas dire que ça va se passer, peut-être par la construction de 2024.
Mais oui, je ne veux pas que le dashboard soit un local.
Quand vous voyez l'Espire dashboard, vous voulez que ça soit dans votre application de production.
Nous allons faire le travail.
Nous allons vous donner notre saison, mais vous pouvez aussi remplacer ça avec Grafana,
ou l'app Insights, ou autre chose.
La technologie observable est la chose que votre organisation standardise.
C'est assez cool.
Je suis très fier que, sans doute, vous avez un stop-on-the-hour,
ce qui est comme maintenant.
Nous pouvons faire une partie 2.
Je voudrais revenir et parler de l'AOT.
Nous n'avons pas de quoi...
Il y a un grand terme, le laser unité.
Nous avons eu cet effort, en 2012,
et nous avons appelé le 1AOS.net.
C'est parce que, en fin de l'année, nous avons construit...
L'un des plus grands AOS, c'était les webforms.
Nous avons construit l'AOS.net NBC,
l'AOS.net WebAPI,
et la plupart de nos clients ont voulu utiliser tous les 3 de ces applications.
Donc, le 1AOS.net de l'arrivée de 2012
a fait le bon tour du coup et du coup de la fréquence,
donc vous pouvez utiliser une application webform
avec un WebAPI à l'intérieur de la technologie, en même temps.
Un des grands annonces pour l'AOT
est le laser.
Maintenant, vous pouvez rétablir un laser component
d'un MBCView.
Vous pouvez rétablir un laser component d'un laser.
Et donc maintenant,
je n'appelle tout de suite le 1AOS.net V2,
où, tout de suite,
vous n'avez pas de quoi réécrire votre application de MBC
pour utiliser un tech laser.
Nous faisons le laser tour dans tous les places,
et même plus cool,
vous pouvez faire un component de laser
et vous pouvez nous laisser décider.
Vous voulez nous servir pour le component de laser,
vous voulez nous utiliser pour le client,
vous voulez nous...
Et donc, il y a un whole bunch de choses dans cet espace.
Mais je vais revenir dans une autre 30 ou 40 minutes
et parler de laser et de AOT.
C'est incroyable.
Je suis en train de regarder un vidéo
par Dan Boff, aujourd'hui,
en parlant de tout ce qui se passe.
Et oui, ça ressemble bien.
Mais oui, je n'aimerais pas faire une partie 2,
mais je suis sûr que vous êtes au suivant de la prochaine rencontre.
Mais oui, c'est juste un grand merci pour vous joindre.
Et ça va être révéli.
Je sais que à un moment,
sur dot.net,
je vais probablement devoir attendre.
Mais si vous me donnez le nom...
Après le keynote,
vous êtes bon de vous envoyer.
Donc,
si vous voulez,
on peut en fait...
Dan, on peut mettre un podcast
où je vous donne des maires
et Dan Roth.
Et nous parlons de toutes ces choses qu'on a mis aujourd'hui.
Nous pouvons tous aller dans un salle
de la salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de
salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle de salle


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