
Blazor with Chris Sainty
Durée: 84m0s
Date de sortie: 13/07/2021
In this episode, I was thrilled to be joined by Chris Sainty to chat all about Blazor! Blazor is a new .NET technology allowing you to build SPA-like frontend web UIs in C#! Very focused on developer productivity and componentisation - Blazor is certainly going to become my go-to for frontends moving forward! And chatting with Chris in this episode, has shown me even more reasons why Blazor is becoming so immensely popular!For a full list of show links, see the website here
Salut tout le monde, bienvenue à l'UnhandledException podcast, je suis Dan Clark et c'est épisode
numéro 19.
Et aujourd'hui, l'épisode est tout en blazer.
Je suis vraiment en train de vous dire que je suis un developer dotnet de HearthHard,
mais je fais des works de front-end et je fais des réactions de vue, de vue, de réaction, de réaction.
Mais, à l'heure de moi, je ne suis pas un grand fan de ces works, et l'idée de pouvoir
mettre ces articles sur le front-end est vraiment appuyée.
Et qui est mieux de me joindre sur le show pour parler de blazer, mais quelqu'un qui a
écrit un livre sur le sujet, Mr Chris Stee.
Bienvenue à la show Chris.
Salut Dan, merci pour le temps avec moi.
Merci beaucoup.
Alors, pour les listeners, Chris est un MVP de Microsoft, le speaker et le développeur principal
de la compagnie de Deployed, aussi un author de un livre sur le bras de blazer, et on peut
même faire un petit giveaway.
Et aussi Chris est un contributaire d'open source, travaillant sur un set de libraries de blazer
et des compagnies de blazer.
Donc, tout est en bas.
Est-ce que vous avez mis tout ce que je vous ai dit Chris?
Non, non, c'est très bien.
C'est tout.
Il y a des talks de confrètes et tout sur le sujet, et je vais faire un workshop de blazer
en plus sur le workshop à NDC Oslo, en plus en fin de l'année.
Donc, oui, très focus de blazer.
Je suis très élevé.
Je veux vraiment avoir une opportunité de commencer un projet de blazer.
J'ai une seule, qui est...
Je suis construit pour un client.
Il va être live cette année, mais le fond tendance a été fait avec Angula.
Et je ne ferai rien pour le baisseur, je vais juste avoir un peu de temps et réveiller le fond tendance de blazer.
Vous n'avez jamais compris, blazer est très productive.
Vous pourrez pouvoir le faire dans le timeframe.
Je n'ai pas assez de temps pour le faire.
Je me souviens d'avoir pensé à la dernière fois, qu'on a rencontré un personne.
Je pense que c'était Microsoft Ignite, en Londres.
Je pense que c'était 2019, avant que la Covid-19 a été faite.
Oh, oui, je pense que c'est vrai.
Je ne peux pas croire que c'est ça longtemps, mais...
Oh non.
C'est bizarre.
Ce dernier mois ou 80 mois, ce n'est pas un peu de temps, c'est un peu de black hole, non?
Tout semble passer, sort de la suite.
C'est vraiment bizarre, c'est très étrange.
Mais oui, ça aurait été incroyable.
Je me souviens d'avoir des chats fonds sur la productivité de Todoist et des trucs comme ça.
C'est un bon moment.
Vous et moi, Stuart Lang avons eu une conversation.
C'était une de ces longues, bonnes clés sur des tas de différents topics.
Je pense que blazer est dans ce moment.
Je pense que c'était.
Je me souviens de penser que ce n'est pas récordé,
comme si on avait fait un bon podcast.
Je pense que c'était un bon podcast.
Je pense que ça a été un bon podcast.
Je pense que ça a été un bon podcast.
Je pense que ça a été un bon podcast.
C'était un bon chat.
Je pense que nous avons découvert beaucoup de choses.
Mais je n'ai pas commencé le podcast à ce point.
Oui.
Je n'ai pas encore été dans le podcast.
Et nous avons été enregistrés.
Oui, c'est une bonne chose.
Donc, avant de commencer, je vais commencer à parler de blazer.
On va faire ce mois-là, le mention de Listener.
Et ce shout-out va au David Wengier, qui a tweeté.
Je me souviens de mon propre business,
en éclairant le podcast de l'un des plus récords de l'exception.
Et ce que je sais, je vais avoir un clip convenant
pour envoyer les gens, si ils veulent savoir
comment prononcer mon surname.
Merci, Dracan.
Je suis Dracan, je suis là sur Twitter.
Et il a refermé l'épisode 18,
où je l'ai mentionné à l'end,
dans la section de la section de la dév.
Il m'a aidé avec un issue de analyser.
Et je suis vraiment content de le prononcer
le surname correctement.
Donc, merci pour le tweet, David.
Donc, blazer, blazer, blazer, blazer.
Pour les listeners qui ont été vivant
dans un roc, ce pass-ci,
peut-être que nous devons commencer
avec une petite picture de l'élevateur,
sur ce que la blazer est.
Oui, c'est un bon endroit à commencer.
Je suppose que la définition simplest
est que la blazer est une framework UI
pour construire les applications de web
sur les clients de la client-side
en utilisant C-Sharp, plutôt que javascript.
Je pense que c'est probablement la plus simple de la stay.
Je pense qu'il y a beaucoup plus de blazer
que ça, donc si nous pouvons
expander sur cette petite partie,
et, je ne sais pas,
même si on s'est passé un an ou deux,
et qu'on va retourner
aux derniers jours de blazer,
où ça a été initialement
construit comme un compétitif direct
pour les frameworks de javascript,
comme ViewJS, Angular, React, etc.
Et c'est le premier outil,
qui est, je pense, derrière le framework.
Mais ce qui a été intéressant,
plus recentement, avec dotnet6,
c'est le fait
que c'est un peu
un genre de purpose UI
où vous pouvez,
avec dotnet6,
couper une app Blazer
avec Maui pour créer des applications desktop,
et il y a aussi un experiment long-run
qui s'appelle Mobile Blazer Bindings,
qui utilise le model de programming de Blazer
pour iOS et Android.
Donc, Blazer est un très intéressant
et très intéressant, en général,
parce que si vous êtes un developer dotnet,
qui peut-être
s'arrête en faisant
beaucoup de différents types de UI,
peut-être que vous travaillez pour une company
qui a un end web,
et qui a des applications mobile,
ou des applications desktop.
Blazer est vraiment intéressant,
parce que vous pouvez être en position,
avec dotnet6, où vous pouvez
apprendre Blazer comme un layer UI,
et utiliser ça pour
beaucoup de types de UI,
qui sont une raison assez compétente
pour regarder à Blazer,
parce qu'il y a une grande efficacité
pour ne pas avoir à couper
entre des formes de zammer
et des bouts de bouts,
pour une app mobile,
et ensuite, pour le desktop,
avec l'Ui, qui sera un autre flavour
de zammer et d'autres,
et puis, avec l'Ui avec HTML
et JavaScript, et des choses comme ça.
Et, vous savez,
ça, vraiment, est un point
de sale avec Blazer,
c'est juste la productivité de ça.
Je pense que tout le monde,
ou la plupart des gens, c'est probablement
un peu, je dirais, qui est venu
avec Blazer et lui essayer de le faire,
c'est un des bouts de bouts
de la plus grande sortie,
des impressions que les gens ont de la bout,
c'est comment c'est productive,
et comment c'est rapide,
et que c'est un point de sale
à apprendre, à apprendre d'une courbe
et d'être capable de construire
des appes très intéressantes
rapidement et efficacement,
ce qui est quelque chose que
les gens ont été en train de mourir,
vraiment, je pense,
il y a beaucoup de...
Certains des trucs de JavaScript,
il y a beaucoup de cérémonies,
il y a beaucoup de tooling,
des choses comme ça,
que vous devez apprendre et de se tordre.
Et je pense que les gens qui ont été
en train de mourir,
ils se souhaitent de construire des apps
en utilisant des formes de vingt-feuilles
et des formes de web,
qui, pendant que je n'étais pas un grand fan
de formes de web comme ça,
c'était... Vous pouvez construire
tout de suite, et je vois Blazer
comme...
presque ce que les formes de web
devaient être, je pense,
c'est probablement le moyen de le mettre.
Je pense que c'était les formes de web
que la technologie n'était pas en train
de faire ce que Microsoft était essayant de faire.
Mais Blazer
maintenant vous donne
cette balance
de
productivité,
efficacité.
Il utilise tous les standards,
il ne veut pas réinventer
et faire quelque chose
funk et clé, avec des plug-ins,
ou quelque chose comme...
sous la transmission de la haute,
et de la JavaScript,
ou quelque chose comme ça.
Vous utilisez des technologies de web,
des standards de web, et tout ça.
Oui, je veux dire,
c'est une très intéressante technologie,
et il y a beaucoup d'éléments
pour voir avec ça.
Et c'est...
Intrigue, pour voir
où ça va aller en long terme, je pense.
Vous avez juste pensé
sur les formes de web,
de la state de vue,
et de la nuit,
de la nuit.
Oui, je sais.
Vous êtes en train de faire un tour,
ne vous en parlez pas,
de la state de vue.
Mais vous êtes totalement bien,
avec la productivité,
de l'ignorant de la state de vue,
c'était très productive.
Juste comme vous avez mentionné
les formes de web,
pour le développement desktop,
je l'ai utilisé pour
mettre des tools internals,
parce que c'est juste si rapide.
Oui, oui,
c'est certain.
Je pense que c'est ce que
beaucoup de gens
font avec Blazer,
ils se font un peu
de la feel similaire
de la productivité.
Mais vous ne faites pas
de la nature de la state de vue,
et tout ça,
ce qui est...
C'est...
C'est comme si
ce soit un peu
comme si la forme de web
était plutôt...
Ou ce que ça a essayé
de faire, peut-être,
c'est probablement...
Vous avez touché
sur le desktop mobile,
je pense que c'est important
d'emphasiser ce point.
Donc, nous parlons de...
Dans le futur,
on va pouvoir
écrire les components Blazer
qui vont travailler
par la web,
des plateformes desktop,
donc créer des applications
de desktop
sur la plateforme mobile,
sur la plateforme mobile,
nativement.
Donc, tout le monde
en Blazer
utilise la même technologie.
Oui, basiquement.
Je veux dire,
il y a quelques caveats
qui vont se mettre là-bas
pour me faire couvrir.
Donc,
les bindings de Blazer
sont des projets expérimentaux.
Donc Microsoft
n'a pas vraiment été
commis à faire ça.
Ça a été
sorti principalement
par Elon Lipton
à Microsoft.
Il y a un repo GitHub
et il y a eu
des contributions
de la communauté.
C'est un cas d'usage
très intéressant.
J'ai écrit
une série de blog
sur ça
parce que
j'ai toujours été un développeur de web
et j'ai trouvé...
Je n'ai jamais vraiment
été connu avec ZAML.
Je n'ai pas...
Je ne sais pas.
Je n'ai pas été pour moi.
Je n'ai pas été pour moi.
Je n'ai pas été pour moi.
Vous avez vu un peu
la noddin' dans le web, comment?
Oui.
Donc,
l'idée
d'utiliser le model de Blazer
qui est un peu
programmé
pour construire
une urbaine naturelle
était très appelée.
J'ai écrit
une série de blog
sur les développeurs de web
pour les développeurs de web
en utilisant le web de Blazer.
C'était assez intéressant.
Mais,
comme je vous l'ai dit,
c'est un expériment
et il n'y a pas de commissaire.
Il y a aussi
les compagnons que vous avez
dans les binding de Blazer
qui n'est pas compatible
avec le web.
Donc,
vous n'avez pas de compagnons
que vous avez écrit
dans une application de Blazer
et que vous avez
utilisé dans une app Blazer
qui est en train de
construire un WebAssembly,
par exemple.
Parce que,
ce qui se passe
dans les binding de Blazer
c'est que vous utilisez
le modèle de programmation.
C'est le même style
de faire
le marqueur et tout.
Mais,
ce que ça fait
dans la hood,
c'est que
c'est une technologie
d'informations
pour transmettre ça
dans un élément natif.
Vous pouvez utiliser
le style de CSS,
donc,
si vous êtes un développeur de web,
vous pouvez vraiment
aller en speed avec ça très rapidement,
mais vous ne pouvez pas
transmettre ces compagnons
entre les applications
de la web
et le native.
Mais,
vous pouvez transmettre
toutes vos skills.
Donc, si vous avez appris Blazer,
c'est une très petite chose
pour aller en train de faire
un tour de la course.
Mais,
les versions de web
de compagnons
et la version de Blazer,
au moins,
dans le preview de la .NET 6,
qui va se faire
en desktop,
ces compagnons
doivent être interchangeables,
parce que,
essentiellement,
vous êtes en train
d'avoir un mini web
service
dans l'application de desktop.
Donc,
c'est le même style
que l'électron,
mais ce n'est pas l'électron.
Il utilise
un nouveau contrôle
qui se trouve au web,
mais c'est un contrôle
généreux,
plutôt que
juste un shell
qui est en train
d'appliquer un application
de JavaScript.
Donc, je n'ai pas
eu un grand nombre
de temps à jouer avec ça,
mais,
j'ai juste
un très, très petit look
à ça.
Mais,
comme je vous l'ai dit,
ce sont des compagnons
comparables à la web,
donc,
c'est certainement un moyen
où vous pouvez
faire des choses un peu.
C'est très cool.
Je pense que,
pas seulement avec Blazer,
mais aussi avec .NET MAUI,
et juste la nature de la plateforme
cross-platforme,
qu'est-ce qu'on utilise
.NET MAUI,
des files de somme,
ou des components Blazer.
Je pense que je suis bien,
que vous pouvez
utiliser d'eux,
donc, que vous pouvez les mélanger
dans vos applications.
Je pense que vous pouvez
mettre les components Blazer
dans un application
.NET MAUI.
Oui, je pense que
si vous avez un app MAUI,
vous utilisez ce webwindow,
et vous
utilisez ce contrôle,
où vous voulez être,
entre tous vos
autres contrôles
whatever les contrôles,
et vous allez
mettre votre app
dans cet area.
Donc,
votre app est un component MAUI,
et c'est certainement
ce que vous faites.
Mais comme je vous le dis,
je vais le faire,
je n'ai pas
encore été mis à l'exemple,
donc, je n'ai pas
beaucoup de détails
sur ce que ça fonctionne.
C'est principalement
ce que je pense,
pour moi,
je suis un développeur
je n'ai pas vraiment
fait un desktop,
je n'ai jamais
fait un desktop,
en fait.
Donc, oui,
il y a d'autres bits
que je suis sorti
de l'automne,
mais je pense que
si vous êtes intéressés
dans ça,
je pense que c'est un peu
très intéressant
avec Donnet MAUI.
Oui, c'est certain.
Je pense que
pour vous,
je pense que c'est
juste un webview
d'un webview
d'un MAUI,
et je peux vous dire
que je vous remercie
d'en souvenir
d'un an,
quand Scott Hunter
a fait un talk
sur ce site,
mais je crois
qu'il a dit
que le
component
dans le webview
peut communiquer
avec des components
qui sont juste
Donnet MAUI,
au-delà de l'application.
Ah, oui, oui,
non, je pense que c'est
correct.
Oui, je pense que c'est similaire
quand vous vous rassurez,
parce que vous pouvez aussi
rassurer des components
dans un application
de l'ambient MBC
ou d'un application
de la RAZER,
et vous pouvez utiliser
un aide-tag
qui rassure
un seul component
dans la page de RAZER.
Et, encore,
ça peut communiquer
en bas et en bas.
Donc, je pense que c'est
probablement le même principe
que le MAUI app.
Un temps excitant
pour être un developer.
Oui, c'est très intéressant.
Donc, on devrait probablement
reprendre un peu
parce que avec Blazor,
il y a ce concept
de...
Vous avez mentionné WebAssembly,
mais on a
ce WebAssembly
et le site server Blazor.
Je sais que je n'ai pas
des pensées
sur les deux
que j'ai préférées,
mais on s'en reprendra
et on dirait
qu'ils sont les plus hauts.
Oui, bien sûr, bien sûr.
Donc, la différence
entre Blazor WebAssembly
et Blazor Server
est juste
où ils se rassurent.
Donc, Blazor WebAssembly
se rassurent
complètement dans le client browser
et c'est l'équivalent
d'une application JavaScript-SPA.
Blazor Server
se rassurent
comme le nom s'adresse
sur un service
et c'est plus
akin à
une application MVC
ou une application
de page RAZOR.
Maintenant,
si nous commençons
avec la version WebAssembly,
ce qui se passe
est qu'il y a un temps dotnet
qui est un temps monobase
dotnet-run
et cela se comporte
à WebAssembly.
Maintenant, WebAssembly
est un standard web.
Cela se situe
à l'extérieur de HTML,
CSS et JavaScript.
Cela est soutenu
par tous les gros browsers
et cela a été pour beaucoup d'années.
Ce qui se passe
est que
ce temps dotnet
qui est comparté
à WebAssembly
se fait un bout de frappe
dans le browser
par un petit piece
de JavaScript.
Et puis,
toutes les applications
d'application
sont bloquées
et élevé
en utilisant
comme un interpreter.
Donc,
ce que les gens
qui sont nouveaux
à Blazor WebAssembly
ont fait
c'est qu'ils pensent
qu'ils pensent
qu'ils ont des applications
compilées à WebAssembly,
ce qui n'est pas
à l'époque.
Je dis à l'époque
que c'est quelque chose
qui est venu de dotnet-6.
Il y a quelque chose
qui se trouve
à AOT,
qui est un temps
compilé.
Avec cela,
vous pourrez
compilier votre application
en plein temps
pour WebAssembly.
Cela a un
trait de
l'application
qui est un peu plus
plus grande.
Mais vous avez
un niveau
de performance
de votre app.
C'est quelque chose
de très haut,
comme 5 fois,
de plus en plus de performance.
C'est un grand
délire.
Mais vous avez
à double le
nombre d'applications.
C'est
le site WebAssembly.
Le site
de service
s'execute
sur le service.
Vous êtes
en train de
des services
qui sont
de la surface.
Vous pouvez
faire
des services
accessibles
et tout ça.
Et
ce genre
de sparr
est créé
par un signal
de la connecté
entre le browser
et le service.
Vous pouvez penser
que le service
est similaire
à une application
de client terminal.
Un petit
temps de run
est déploité
sur le browser.
Cela
s'execute
sur le service.
Et
chaque interaction
que l'utilise
a avec l'application
s'est envoyée
sur le connecté
sur le service
où il est
procédé.
Les updates
de la Ui
sont créées
par la action.
Ils sont envoyés
sur le signal
de la connecté
et le petit
temps de run
de la browser
appartient
et appuient
les changements
sur le local
et l'utilise
les changements.
Ce qui est
intéressant
c'est que
beaucoup de gens
vont entendre
sur le service
pour le premier
et
entendre
ce qu'il faut.
la salle
est
petite
c'est
france,
qui se sont faits et des choses comme ça.
Mais ça va aller tout de suite à la serveur.
Ils sont deux des approaches très différents,
mais ils ont fait le même résultat
pour l'utilisateur,
qui est vraiment intéressant.
Je pense que le service Blazer
tend à être glossé plus,
je pense que les gens tendent à être
plus concentrés sur la version de Blazer
mais il y a beaucoup d'usages intéressants
pour le service Blazer.
C'est un modèle de performance
et un modèle de performance,
à l'intérieur de ce que les gens pensent
quand ils ont déjà entendu du service.
Donc, juste le service Blazer
pour ceux qui sont sur votre site,
pas seulement quand les demandes sont venus,
mais il doit être allé pour des ressources
pour chaque single user qui est sur votre site,
on va en parler,
avec un API, il n'est qu'une seule
utilisant l'utilisation,
quand le service Blazer
est allé pour chaque single user
qui est sur votre site,
il doit être allé pour des ressources sur le service.
Oui, essentiellement,
il doit maintenir la connecté pour tous les clients.
Donc, si vous avez un appui
sur le service et que vous avez 100 gens
sur votre site,
il doit maintenir 100 connectés
pour tous ces clients.
Et c'est là où vous avez
un trade-off avec le service Blazer
et le WebAssembly Blazer.
Donc, le service Blazer, en ce moment,
va être un cost grave sur votre infrastructure
parce que ça doit maintenir toutes ces connectés.
Il y a des tests
qui ont été faits,
c'est probablement
18 mois plus tard,
peut-être même 2 ans,
en pensant sur ça,
par le team Blazer
sur comment le service Blazer
s'impacte et ce qui est possible
sur le service Blazer.
Et ils ont fait
que c'était Ram
qui a été détaillé
pour le service Blazer.
Donc, le plus ram que vous avez,
le plus de la mémoire
que vous avez,
le plus de les connectés que vous pouvez maintenir
et de la contrôler.
Donc, si vous utilisez un service Blazer,
vous allez voir la coste cloud
si vous utilisez quelque chose d'un point,
comme Azure, en utilisant un service app,
vous pouvez avoir un service app
peut-être un peu plus de charge.
Mais, le WebAssembly, vous êtes bien sûr,
parce que vous allez probablement
appeler un API,
vous avez plus d'appels traditionnels,
donc vous avez beaucoup plus de service,
et ce qui est bien sur Blazer,
le WebAssembly est que ça peut
réunir sur un service static,
parce que les files sont juste statiques,
quand les apps sont en train de construire,
donc vous pouvez le faire sur les pages,
vous pouvez le faire sur quelque chose d'un Netlify,
vous pouvez le faire sur les apps web
de Azure Static,
tous ces trucs,
vous pouvez le faire sur un S3 bucket,
sur AWS.
Donc, vous pouvez réunir
un WebAssembly app
pour être entièrement libre,
si vous n'avez qu'à se prévoir
pour le début de l'année,
mais vous avez aussi un download
beaucoup plus pour le client
dans le premier place.
les traductions sont là,
selon ce que vous faites.
Quand j'ai joué avec Blazer l'année dernière,
je n'ai pas fait beaucoup avec ça,
j'ai joué avec ça,
j'ai souvent vu un overlay
qui dit que votre connecteur est en train de faire
arrêter le service,
donc avoir cette expérience
d'un utilisateur,
je pense que ça me ferait
de me mettre en train de utiliser le service,
Blazer, je pense.
Oui, c'est certain.
C'est ce qui est un overlay
qui vous permet de faire avec Blazer,
c'est quelque chose
qui met beaucoup de gens en train de faire.
Et, encore,
c'est tout comme tout d'autre,
avec ce que nous faisons,
je pense que c'est le bon travail.
Si vous avez des gens
qui vont être accessés
à l'application,
ils vont être en train de faire
ça d'un connecteur unstable,
puis, le service Blazer
n'est probablement pas le meilleur
car, chaque fois que ce connecteur est perdu,
parce que vous êtes en train
d'accéder à un app rendu,
ou, parce que l'app est en train de faire
le service, c'est en train de faire
le service.
Le moment où la connecteur est perdu,
vous n'avez pas un app anymore,
donc, vous allez avoir
ce overlay beaucoup,
et ça ne va pas être
une très bonne expérience.
Donc, oui,
c'est pour choisir le bon travail.
Si vous êtes en train de faire
un app,
sur un Internet,
sur un Internet corporeal,
par exemple,
sur un app interne,
le service Blazer
peut être une choisi amusante,
parce que c'est un peu plus rapide,
vous avez des connecteurs
et, oui,
vous n'avez pas de risques
d'avoir un API et un client,
vous pouvez juste
construire un app,
et c'est déjà en train de faire le service,
donc, vous pouvez,
vous savez,
aller en train de parler
des B's,
ou des choses qui ont besoin,
et vous pouvez,
vous pouvez construire,
c'est ce que nous avons parlé
de l'efficacité,
vous pouvez construire
quelque chose très rapidement
et très utile.
Si vous vous regardez
les points de débugging,
c'est probablement plus facile
sur le service Blazer.
Oui, je pense que
l'expérience de la service Blazer
n'est essentiellement pas différent
de l'application d'autres.Net,
vous savez,
si vous êtes en train de faire
un studio visual,
par exemple,
vous pouvez faire un 5,
et vous pouvez mettre vos points de break
et arrêter de débugger,
et oui, c'est absolument bien.
La expérience de la service Blazer
de Blazer
de Blazer est assez la même chose.
Il y a un peu plus de
ceci avec le service Blazer,
le WebAssembly,
donc il y a encore
des improvements
qui peuvent être faites.
Mais, vous savez,
encore une fois,
vous pouvez les faire
plus de votre débugging
en un de même manière.
Bien sûr,
WebAssembly,
qui se termine
dans le browser,
vous pouvez toujours
mettre vos points de break
dans le studio visual.
Oui, c'est vraiment
très malade.
C'est bien sur mon niveau
d'intelligence
d'understand exactement
comment tout se passe
sur la surface,
mais,
par mon comprenu,
je suis très enthousiaste
de l'intervention.
C'est essentiellement,
c'est un peu
un peu...
Vous avez votre app,
vous avez le studio visual,
et ça crée un service
de débugging
proxi,
ou quelque chose.
Ça attache
au browser,
et ça relève
par ceci,
au studio visual,
donc vous pouvez
mettre des points de break
et ça va
tricher
par le browser.
Vous pouvez
même,
vous pouvez
mettre des points de break
dans les dev-tools
et mettre des points de break
et vous pouvez
mettre des points de break
dans le browser,
que vous pouvez
travailler
avec ces modes
Ce que je trouve
très bizarre,
c'est que
je suis
créé avec le browser
avant
ce que je l'ai
publié,
j'ai été
très enthousièmement
en utilisant
des langues de console
pour débugging,
je n'ai pas
jamais utilisé
des langues de console,
mes collègues
ont utilisé
les langues de console,
et je suis
en train de
utiliser les langues de console
pour enlever
la ligne de console.
Je me suis immersani
mais ce Bone
est entry
법 mais
ils ont haret
conversations
et
l'angle of view, react stuff. I hate debugging through F12, Chrome DevTools, and it's just not as nice experience.
So that's sold me even more on Blazor if I can do that in the ID.
Yeah, well I think possibly an even bigger sell for you might be the fact that,
because I believe you're a big rider fan, aren't you?
That was going to be my next question.
Yeah, so the latest, I don't know if it's in the latest released version of Rider,
but I think it's definitely in the EAPs at the moment,
is support for debugging Blazor WebAssembly with Rider as well.
So Rider, they've kind of been a bit behind the curve with that,
I think because they were getting the head round how to use this kind of proxy server
and there's quite a lot going on to make this kind of full work,
as I'd say from my understanding of it.
So they've taken a bit longer to catch up with where Visual Studio was,
but they're there now.
And again, I think it's slightly limited, it's only a certain,
I think it's just a Blazor WebAssembly hosted app,
it'll work with or maybe just a standalone one,
I can't remember off top of my head,
but the point is it's there now and hopefully the rest of it will kind of come through quite quickly.
I mean, I'll work predominantly on a Mac,
so I use Rider pretty much exclusively at the moment for debugging.
It works with Visual Studio Code as well,
so if you use Visual Studio Code for development,
you can do debugging from that as well with Blazor WebAssembly,
that all works as well.
So you've got lots of options for that.
Nice.
I'm assuming that Riders offer new things like Blazor and .NET MAUI,
because it's an external company,
it's always going to have to be playing a bit of catch up,
but it's so impressive how they are playing catch up so quickly.
I don't know how much internal communication between Microsoft and JetBrains happens,
there must be quite a bit I guess.
You would think so, wouldn't you?
I mean, I'm not sure obviously what goes on,
but you would think that they probably talk to each other fairly well.
I mean, it's quite impressive what's in Rider.
I think it took me three goes to be honest,
to get comfortable with Rider.
I had to go there, I don't like it.
Then went away, came back,
I don't know,
and then third time round it really stuck,
and I like to say, I use it as my daily IDE now,
and it's amazing what's in there.
But I think in all honesty,
I probably only scratch the surface really of what it's capable of,
but then that's probably the same Visual Studio.
They're both behemoths of IDEs
that are incredibly powerful and incredibly useful,
and it'll be interesting as well with obviously the new VS 2022,
being 64-bit as well.
I think that'll be sort of an interesting one
from Microsoft side about,
that'll address a lot of issues.
I think people have had performance-wise and things like that.
Obviously Rider's already 64-bit,
so it's got a jump on Visual Studio for that one.
So I think it's nice that we've got this choices.net developers
between sort of a couple of really great IDEs,
because I think it then keeps both people on their toes.
I think JetBrains push Microsoft and vice versa,
which I think is always good for us then as developers
that we get the benefit of even better tooling.
And I think the.net ecosystem
and the.net community is lucky that we have such great tools.
I think it's probably one of the strong points of our community,
really, is the quality of our tools
and how productive they are.
So yeah, I think both companies are doing an amazing job with their IDEs.
Yeah, definitely.
And I think the, well, I quote,
New Microsoft is kind of,
they're not saying you have to use Windows
or all you have to use our ID.
I even remember, and this was quite a few years ago now,
at London.net meetups,
Hansmann came over and did the talk.
At the end, in the question time,
someone in the audience asked him,
why don't you just do something so Visual Studio trampos all over Rider,
I can't remember whether it's marketing or whether it's functionality.
And Scott's answer was so good.
A lot of digging up, I think it was recorded.
And it was basically just,
that's not what we were about.
I can't do it justice trying to repeat it,
but it's kind of, it just,
I think everyone in the audience groaned
when that question was asked,
but Scott answers it so well.
Yeah, definitely.
I mean, at the end of the day,
having a single dominant,
anything is never usually good for anybody.
Exactly, yeah.
You want competition to drive things forward.
And apart from anything else,
you just get different approaches.
I guess at the root of it, it's diversity.
You need diversity to different ideas,
to make better solutions and things like that.
So I don't think we would benefit as developers.
I don't think the .net ecosystem would benefit
by having just one IDE that anyone could use.
And, you know, that was the only thing.
And yeah, I think the fact that there are options
is the strength of the community.
It's not, it's definitely not a negative.
Yeah.
And even like with languages, you can see that C-Sharp9
is being more functional and taking ideas
from F-Sharp, Haskell and other languages.
And without these other languages
introducing other paradigms,
then languages wouldn't evolve as well at all.
So I think it's so, so important.
But we have diverged a lot from blazes.
We have, haven't we?
So do you think that if .net developers
are like jumping on this front end stuff
because they can do .net on the front end,
especially when using WebAssembly,
that there might be security implications
where .net developers are used to back-end dev,
forget that this all their code
is going to be running in the browser,
the users have full access to it,
all they can do, whatever they want to it,
they can change it.
Do you think there might be security as well?
We need to be very careful
about how people are educators
in doing blazer development.
I guess it's an interesting one
because it depends whether we're talking about security
as in the end user security versus maybe,
I think maybe more about intellectual property protection,
I think, is maybe more of a potential thing.
I mean, one thing that I've had many questions
on over my time working with Blazer from people is,
oh my god, I've just realized
that all my DLLs are now in the browser.
How do I obfuscate my code
because someone can use it?
And you can obfuscate your code,
there are tools to do that.
I think from my point of view,
I'd probably say that
if it's important enough to do that,
it shouldn't be in the client in the first place.
I'd probably push that stuff behind an API
because if it's that important
that you feel the need to obfuscate it,
and frankly, if someone's determined enough,
they'll find a way to,
I don't think there's, at least, again,
to my knowledge,
there's no obfuscation that's 100%.
Like, if someone is determined enough,
they can get through it,
it's more just putting people off,
making their life harder,
so they don't try.
So I think if you've got something
that's genuinely that important,
the answer there is, well, don't put it
in the client in the first place,
put it behind an API call,
and just call it from your client.
So that's kind of like
the intellectual property side of it.
And I think that's an important thing
for developers who are coming into Blazor
who have maybe been doing pure server development.
That's definitely an important thing
to understand, is that, you know,
this code is now running on the local machine.
It is being downloaded there,
so don't put anything there
that you're not comfortable people
being able to decompile.
From an application security perspective,
I guess there's, I think there's kind of
a lot of, there's kind of built-in
stuff that's going to help you there
in that for the first aid,
that WebAssembly applications running
the same security sandbox
as JavaScript applications doing the browser.
So you can't go and reach out
to the user's machine.
You can't suddenly write some code
that goes and accesses their file system
and deletes their program files folder.
Like, you just can't do that.
You can't create files on the fly.
You can't do any of that stuff.
So while you are running a .NET runtime,
you're running a restricted .NET runtime
based on where it's running.
So, like I say, if you try and do those
kind of file-based operations
and things, you're just going to get
a platform, not a support exception,
it's not going to work.
So I think from that security kind of aspect,
you kind of can't really go wrong there
as such, because, like I say,
you're already in a sandbox.
I guess I was kind of thinking about
a third scenario where,
for example, if a developer
just isn't used to web development at all,
so I think a web developer
that's used to doing Angular or React
on the front end or Vue
and writing APIs on the back end
will have no trouble, but someone
that's just coming into the web world
and say, for example,
they're writing a bit of code
that calls out to a database
or Azure Storage has connection strings
as part of that code,
and they're just putting it into the
web assembly code without thinking about it.
That is obviously going to be on the client side.
Yeah, no, that's a really good point,
actually, yeah.
And again, I think you're right on that one.
There's definitely a bit of learning there
for developers coming into this
but you can't do what you do with an MBC app
and just, like you say, have a database
connection string sitting in your
app settings JSON file,
because that file does get downloaded
to the browser and if you've got
secure keys in there or anything like that,
that is now visible in the browser.
Although, obviously, downloading a connection
string into your browser is not going to get you
very far because it's not like you can reach out
from your browser and connect to a DB directly anyway.
Or I suppose you could,
but that'd be a really bad idea.
Yeah, there's definitely a learning curve
I guess in that perspective.
And I think it's going to be an interesting thing
to see how that develops really, because
I think with Blazor, I've certainly noticed
at least a lot of developers who are like
oh, I've stayed away from web development
because the chaos of JavaScript
I didn't want to get involved in it
and now I can use C sharp, I'm
really interested in building
some web apps.
I think what I'd say even probably
before people are doing that is
if you're coming into building web apps
with Blazor and you've only ever built
desktop apps or that kind of
thing, I would probably really
set aside some time to just learn about
the web in the first place.
I've had quite a lot of conversations
with developers who ask me how do I do this
or how do I do that
with not understanding, for example,
styling with CSS.
How do I get this layout to work?
Well, okay, we need to use Flexbox.
Well, what's Flexbox?
It's sort of a tool within CSS
that you use to control layout.
Oh, well, CSS, I don't want to have to
learn CSS. Well, the web runs with CSS.
Like, you've got, you know,
if you're going to come to this area
of app development, you have to accept
there's some things that have to be
learned that are part of that
development style and CSS is one of those
things. It's something that you, you know,
you can use frameworks and things to
get around a lot of it and that's
definitely something, you know, that
is worth doing. But I think for anybody
who's just coming into web development
brand new and thinking that Blazor will allow
them to just not have to learn the web,
that's not the right attitude.
That's not going to, you probably
will be out of build stuff, but you're
still going to just feel like everything's
hard work at sort of pushing a boulder
uphill. So yeah, I think anyone
who's coming into it has got a, has got
a bit of upskilling to do around those
areas and that stuff you've mentioned
especially around connection strings and
bits is a good example of where people
need to be aware of what's going on
exactly.
Yeah, I think the key thing is if you're doing
web assembly, it's just like a normal
spire up, it works with the same
paradigm. If you're going to talk
to a database, you still need a web
API at the back end or some API at the
back end to go through. So that's
don't need to be server-side.
Yeah, yeah, definitely.
You mentioned about like web technology,
so obviously we're doing front end
stuff, you've got these concepts of
bundling and minification and not just
your, like your actual code, like Blazor
code, but CSS, JavaScript
as well. How does, how does that pipeline
work? Like what tooling is there around
doing that?
Yeah, so again
this is, I guess, again
a very opinionated
answer is I
still tend to use
NPM tools for certain
things because frankly they're really
really good. I know
we in .NET sometimes really
kind of look down on these tools
and I get why. I mean, I've
had plenty of bad experiences
with NPM and
kind of some JavaScript libraries
that have really not played balls
or totally sympathetic. But there are
sort of some things that just are
really really good. And because I have
done client-side development in
JavaScript for a long time as well, I
know them and so for me personally
I'm just like well I know how to do
this so I can just do it. So you can
use things like webpack to bundle
minify your JavaScript in your
CSS and things like that.
You can use tools like Grunt and
Gulp to do things like that as well
if you know those. And there's also
other tools like post-CSS
and things like that.
So they'll work really well
with Blazor. The nice
thing about Blazor is again
sort of coming back to what you said
about how Microsoft are nowadays,
you know, it's all been built to
interrope with those tools and even
interrope with JavaScript, you know,
we can call JavaScript and
JavaScript can call C sharp in Blazor.
So you know, it doesn't
kind of put you in a box, you can
still reach out to these other bits
of the wider front end ecosystem
and take advantage of the battle
tested packages that are available
that do work really well.
I really liked your, when you did
your talk at .NET Oxford and you
demoed this with chart.js
and just showed like really nice
looking charts, which were JavaScript,
but you componentised it so you
abstracted the way the JavaScript
so it felt like you're working
with a Blazor component. Going back
to what you were saying before
about productivity, it didn't take
very long when it wasn't a lot of
code and it just looked really nice
when you switched over to the browser.
Yeah, exactly. And you know,
that's a really great example of
where I don't think being
like, I guess, purist for what
that can be a limiting view, because
as .NET people, we're new to this
world, essentially, because
we've been living on the server
for however long and now
we've got access to the browser
and we can do stuff in the browser
and our packages and our tooling
just aren't at the same level yet
because we're expanding into this
and don't get me wrong, there is
some amazing work being done by
the community to create better
tools that are completely native
.NET tools for doing things like
bundling and minification and native
Blazor components for doing
things like charting and all
this kind of stuff. But even so
these are still, these are new
packages, you know, at best, Blazor
has been around for three,
three and a half years from like
the get go. So at best
these packages are going to be
a year or two old versus some
of these packages that have been
around for five, ten years, something
like that. So the level of use
is very, very different. Therefore
the battle-tested-ness of it
is very, very different.
So that talk that you mentioned
that was using Chart.js, which is
a very popular library used by
millions of people all over the
world, it's really, really solid
and that's why I put that bit
into that talk, is to show
people, you could find a package
that someone's created that maybe
is pure C-sharp to do this.
But actually, there's not a huge
amount of work involved in wrapping
the JavaScript one and you're
getting all the benefit of this
really rich, feature rich library
that's really well battle-tested
and like you say, you can
extract all that JavaScript stuff
away and then if you do find a
native C-sharp.net package that
does the same thing, you're happy
with it, well because it's all
abstracted away, you can just
remove the lower level bits that
call the JavaScript and replace
that with the C-sharp stuff and
off you go and you don't have to
worry about changing too much of
your higher level application
code as well.
So there's lots of ways you can
manage this and I think everyone
needs to make the decision based
on what their particular needs are
as a business and all this kind
of stuff, but I think I just urge
people to not maybe dismiss
stuff out of, you know, just
maybe give it a little consideration
sometimes as to whether actually
better just using that existing
thing rather than trying to create
something new as well, I see a
lot of people going, well I'll
just build this in .NET and it's
like, well that's a really big
complicated thing, it's taking
a lot of people a lot of years to
build that, I don't think you're
going to whip it up in a
weekend, so I'd say I think the
more time it goes by, the more
native .NET technologies there
will be to do these things and
like I say, there's already
packages out there that you can
use that will do bundling
and minification for CSS and
JavaScript that don't involve you
having to deal directly with
NPM, although it's quite ironic
that most of them actually under
the hood use NPM, but you don't
have to, so if you don't want to
touch it at all, you can use a
package that uses it for you.
I must admit I don't mind NPM
it's quite, as you say, there's
so many great packages out there,
there's a lot of rubbish packages
as well, so you've got to look at
what you're installing, but
things like webpack, if you're
doing it yourself, the configuration
it can get very complicated and
people hate it, even if using
React, there's a tool called
createreactapp, which just
scaffolds all this for you, so
you just don't have to deal with
it, I guess maybe because I've
done web development quite a while,
that doesn't scare me off, but
I can picture someone that's just
not used to web at all, thinking
that if they think the blaze is
just going to mean they don't need
to understand any of the web world
then that might be a shock to
the system. Yeah, definitely,
I totally sympathise, if you're
someone who hasn't had the
experience using javascript
frameworks and the tooling
ecosystem, I totally understand
why you don't want to get involved
in it, it's something that I said
at the start, hence why I said
it's my opinionated answer,
because with my experience, I'm
happy to play around with those
things, but if you didn't have
that experience, I totally get
why you wouldn't want to even
try, it is daunting, it is,
like say, have you ever read the
webpack docs to set up the
configuration, like, yeah, no,
just walk away. It's not
like bedtime reading, I don't
think. It's not, is it? It's
not pleasant, it's one of the
things, you read the first page
of it and then you go, okay,
cool, I'll read that five more
times and then I might know a
little bit about what they're
talking about. So yeah, but like
I say, there are, every day
there's more packages coming out
for blazer, more and more people
are getting on board with it,
I mean, it's skyrocketing in
terms of the whole dotnet kind of
family, I think at the moment,
so these tools are going to be
there, like, tarts back to
what I said earlier, really, in
the dotnet world, we're really
lucky to have amazing tooling
and stuff like that, so I've no
doubt that there'll be really,
really good stuff for all this
that will be totally out of the
JavaScript world and 100% in
the dotnet world and people can
take advantage of those things
and I'll probably will, to be
honest, as well. And yeah, so
yeah, there's something for
everyone, I think, that's
probably the ultimate sound bite,
there's something for everyone
with whatever you're comfortable
with.
Nice. I remember when Blazer
very first started being
announced and spoken about, at
the start I was thinking, is
this just a fad and gimmicky
is kind of like running C sharp
in the front end, but now it's
super popular, so this is
something for my projects from
now on, this is going to be my
go to, like web assembly version
so it's basically taking over
where I would have used React or
Angular, definitely Blazer.
One thing I really like, and
I think you pointed this out as
one of your pros in your talk,
was using shared DTOs, like
at the moment if I'm doing like
an Angular or React app and
I've got a ASP.net web API at
the back end, I've got DTOs in
.net, which is serialized in
the response, then it goes to the
web front end and I've got to
replicate that in like an
Angular interface or class.
To be able to use, I'm assuming
you can just use a shared assembly
and share that between the server
and pull that down into your
web assembly, front end stuff.
Yeah, exactly right. Yeah, I
mean, that's it kind of again
it's back to this kind of thing
about productivity again.
If you're using .net on your
back end, running Blazer as your
front end, just becomes really
easy. You can do exactly what
you said, you just take a .net
class library, you put your
shared models or any shared
whatever that needs to be.
It could be DTOs, you could want
some simple, I don't know, say
like even, I don't know, some
extensions for example.
You've got some custom string
extensions or things like that.
Yeah, validation, you put
all of that into this shared
library, reference it from your
server project and your client
project and off you go, they're
just there and sort of no more
if you've got to worry about
keeping typescript models in sync
with C-Sharp models or maybe
you're using some code to
dynamically generate typescript
from C-Sharp at build time and
all this kind of stuff, you know,
you can get rid of all that and
you can just use one set of models
or DTOs and just get on with it
and that's a, it's another nice
little quality of life upgrade I
think when you're using .net
throughout the whole stack because
I think like I mentioned in that
talk I've been a bit more than
once with stuff getting out of
sync and then you could always
end up when that happens because
it is two different technologies
two different worlds, you don't
have to try to work out where has it gone wrong
and you're using one set of tooling
debug through your React app
or your Angular app or whatever
and then you're like ok well I can't
find it here and then you're ok we'll
swap over to .net and change the tooling
and now I'm going to check through
here and oh it doesn't seem to make
sense whereas like I say when
you're using .net for everything
everything just harmonises and you
can like I said be debugging go straight
through the whole stack and things like
that and using those shared projects
really well is a really
useful tool
and it's another good way of
separating as well maybe you've got
things that you want shared between
multiple front end apps but you don't
want them available on the back end
so you can just have those referenced
and things like that you can share
stuff between on there so you've got
backend packages only you can just reference
the server can just reference that
so there's plenty of ways there of
changing about what goes where and who
can see what and all that so
yeah it's a very useful thing
and something really obvious when
you first kind of say it but actually
it's such a really big selling point of
using Blazor. Yeah definitely
and even on the front end using the
HTTP client that we all know quite well
for like rather than having to use
like and this is probably me just
not knowing like the HTTP clients
that come with Angular and react and stuff
that well because my strength is
.net it's not in Angular even though I can use them but
the idea of being able to just use that
in the front end to make the API calls
just sounds brilliant. What does
things like if you want to access
browser based stuff like local storage
or session storage
what does that look like does Blazor
come with like functionality
to do that natively?
No so it doesn't so this is where
the kind of JavaScript interop
APIs come into play so Blazor's got
a set of APIs for dealing with
calling into JavaScript and for
JavaScript to call back into
the application and that's how
you can access these browser features
so things like local storage, session
storage all that kind of stuff you can
you can just call through using these
JavaScript APIs but this is an example
where the community steps in
so you don't necessarily have to worry
about that so and I'm going to do a
shameless plug for myself here now and go
I knew this was coming. I feel like
you've teed this one up for me.
So yeah literally the first
open source package I've ever created
was Blazor local storage so
what that does is it allows you to inject
a high local storage service into
your components and that will deal
with all of the interop to the browser
APIs for you so you don't have to
worry about it you're just dealing with a regular
C sharp interface you don't have to
worry about the fact that under the hood
it's making JavaScript calls and
I also have the same one for session storage
so there's Blazor local storage and Blazor
session storage so they both handle those
things so you can install those packages and you don't
again you just don't have to worry about
that stuff and there's
other obviously there's lots of other browser
APIs that are available and there's lots of packages
available that kind of deal
those and you can again just install
those and someone's already done the work
of wrapping those those
JavaScript calls for you in C sharp
So while you've mentioned your library
Blazor or I'll say library
a set of libraries and components
and just looking at the GitHub
thing now and there's like things like
Fluent Validation support which I think
you spoke about in your talk
Toast popups and menus
and various things
There's more on there than I sometimes
remember I kind of go on there
sometimes go on there when I'm like
triageing issues and bits and it's like
you see the list and it's like oh there's
quite a few there now
and it's probably as really important to mention
as well like not all of them are authored by me
so I've been able to sort of host a few packages
for people who wanted to
sort of create a package but they maybe
wanted somewhere to put it
I've helped with maybe doing the devop side of it
and building out there
CI pipelines and things like that
but they're the ones who are actually maintaining
the packages themselves
so Michael Washington who's
someone who's quite prominent in the Blazor community
he's got a package on there, a text editor
that he's done on there
there's a Gitter client that was done
by a guy who's known in the community
Mr.Magu
so he kind of looks after that one
and does some bits on there
and there's another one on there as well
which I forget the name now
I think it's a form extensions library
so like I say
I try to help out others
where I can with that stuff
so I'd like to mention
that like I say not everything is purely done by me there
My next question
is probably your answer might be
that it's a community component
but we're talking about productivity before
and webforms
one of the things I found productive with webforms
is out of the box
things like a grid
a data grid was built in
and there's lots of these different building components
and I know in your talk you showed
the built in forms component
is there anything for things like
grids and tables
because I find in a lot of my applications
one of the first components I need to create
is actually a data grid
so the sure answer is no
so there's the form stuff
that we talked about
but that's sort of it
in terms of that kind of stuff
there's no tables, no grids
I don't know if Microsoft
would ever release that themselves
I guess they've got a lot of partners
who are building really great UI libraries
so companies like Telerik
and Syncfusion
and Grape City
and DevExpress
c'est un autre un
donc il y a beaucoup de grandes entreprises
qui ont des grandes frameworks
et des components
donc je ne sais pas si c'est un peu de trading
sur leurs oeufs
parce que si Microsoft a créé un truc
les gens ont toujours de la gravité
à ce que l'on arrive
donc ça peut faire un peu de compétition
qui serait bien
et je pense
qu'à l'aise de Microsoft
leur valeur ad est probablement
et c'est un truc qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui est très important
et qui a raison
et qui a raison
Et Aventure
ot
dans votre propre code pour faire tout ce qui est réusable et modulé.
C'est évidemment la direction que beaucoup de frontiers de JavaScript ont réagi,
ils sont très, très componentisés.
C'est presque un principe de responsabilité single pour le développement de frontiers,
comme tout ce qui est componenté avec une responsabilité.
Oui, les compagnons sont amusant.
C'est probablement bien mentionné que Blaz a été très influencé par React.
C'est une des influences plus grandes sur le framework.
Et comme vous l'avez dit, React est une base de component UI,
une base de framework UI, et la même vue anglaise, ils sont tous component.
Les compagnons sont juste très bonnes,
et ils travaillent vraiment bien avec...
Quand vous étiez en place des pages web,
par exemple, on enregistre ça avec Zencaster,
et vous regardez le UI de Zencaster,
et vous regardez, et vous avez ce bar à la dessus,
et ça peut être un component,
vous avez le bar à la droite, ça peut être un component,
vous avez le centre de vue avec le vidéo, ça peut être un component.
Les compagnons web se dévouent vraiment bien pour les compagnons,
vous pouvez les mettre en place vraiment bien.
Et puis vous pouvez avoir une utilisation de l'utilisation,
vous pouvez avoir des...
Je ne sais pas, vous avez des boutons de seconde et primaire,
dans un design de application,
vous pouvez créer un component de seconde et primaire,
et vous pouvez mettre tout le styling dans les deux components,
et puis vous pouvez référer les components où vous avez besoin,
et vous pouvez avoir de plus sur votre app,
et puis vous pouvez...
Vous avez une compagnie de rebrand,
et vous avez besoin de changer de couleur de votre bouton primaire,
vous pouvez juste mettre le component de bouton primaire,
changer de couleur dans le style,
ce qui est nécessaire,
et puis, c'est tout de suite,
vous avez un bouton primaire,
et votre app est maintenant updaté avec le nouveau style.
Donc, ça s'attende bien à la partie productivité,
que je pense que les compagnons permettent de faire mieux de la productivité.
Je pense que, pour beaucoup de choses,
ça peut être abusé,
je pense que pas tout le monde doit être un component,
j'ai eu des chansons intéressantes dans le passé,
où le vue que tout le monde doit être un component,
et qu'il n'y ait pas de visibles HTML,
ce n'est pas le bon moyen d'aller,
il y a une balance qui est restée ici,
et les choses,
et surtout avec ces frameworks,
parce que les compagnons,
il y a un certain overhead pour maintenir un component,
et pour les compagnons,
on peut continuer de la maintenir,
donc, quand vous avez des compagnons de très largement,
comme des centaines de compagnons,
vous pouvez descendre le app,
et je me souviens,
en bas de mes jours anglais,
il y avait un limit très très bien connu
sur le nombre de compagnons que vous avez visible,
parce que l'anglais ne pouvait pas passer par ça,
et ça serait très étrange,
et ça serait une expérience très dure,
il y a une balance qui est restée,
mais je ne pense pas,
je ne pense pas d'une building web-based,
ou en bas de la base,
sans des compagnons maintenant,
mais quand vous vous entrez dans le mindset,
il y a un moyen de faire ça,
c'est comme si c'était le seul moyen de faire ça,
vraiment.
Oui, c'est certain.
Je crois que dans .NET 6,
il y aura un support pour la reloadation hot.
Oui,
vous pouvez déjà tenir compte de ça,
mais je pense que c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
et c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
mais c'est un peu plus important,
On se concentre sur le négatif aussi, quand je pense que, généralement, à la fois,
tout le monde est vraiment positive sur ce que quelqu'un fait quand vous vous faites ça comme ça.
Si vous vous essayez de vous donner un peu de réveil à la communauté et de partager un peu de connaissance,
à la fois, la plupart des gens sont de l'aide.
Et oui, c'est toujours sympa quand les gens sont sympas.
C'est un bon quote, c'est vrai.
Je vais le mettre à l'écran.
Oui, je me sens bien.
Mais je vais définitivement inclure un lien à ce vidéo dans les notes de la show.
Et je vous recommande de regarder le vidéo pour les listeners si vous êtes intéressés en Blazer.
Et si vous avez fait ça depuis le moment où je pense que vous êtes probablement.
Et vous aussi, en fait, vous avez aussi un mot, une action de Blazer.
Oui, je suis là.
Oui, c'est.
Je suis maintenant en chute de chute 8.
C'est difficile de faire.
Je ne vais pas le faire.
Je ne suis pas un writer naturel.
C'est une des choses que j'ai en train de faire.
C'est un peu comme un challenge personnel, vraiment.
C'est un investissement grand.
Je vais en faire pour une année.
Et en termes de ce que ça ressemble,
c'est comme si quelqu'un est intéressé,
c'est en fait de se mettre à 4h00,
chaque matin et de faire une journée de 2,5, 3 heures
avant de commencer ma journée.
Et en faisant ça 6 jours par semaine,
c'est ce que ça me semble.
Maintenant, évidemment, il y a des break-ins
entre ça ici et là pour plusieurs raisons,
mais essentiellement, ça tend à être ce que mon jour est.
Et c'est un expérience vraiment intéressant
parce que la writer naturel
vous fait penser
beaucoup plus profondement sur un sujet.
Donc, c'est été un expérience de ma manière de apprendre.
De cette perspective,
les livres ont été dans un couple de rounds
des révues maintenant
parce que le manning a un processus très grand.
Et le book a été réveillé
trois fois avant de sortir.
C'est un groupe de reviewers de manning
qui ont des très bons books critiques
et des choses comme ça.
Donc, on a juste fini le deuxième de ceux
pour les deux-thirds de la façon qui a été réveillé.
Et ça a été vraiment positif.
Donc, c'est toujours sympa de l'entendre
que les gens ont apprécié.
Donc, c'est juste la dernière fois maintenant,
juste de la dernière,
c'est-à-dire, les cinq chapters,
je pense que c'est les deux qu'on a en train.
Et notre objectif est de les préparer
pour la publication physique
et la chieure
juste après la 6e partie.
Le plan original était que ça devrait être en printemps maintenant.
Mais, comme je pense, avec tout le book,
c'était trop ambitieux.
Je me disais, oui, je vais en faire une semaine.
Ça va être bien.
Je vais en faire 12 chapters en année.
C'est tout.
Ce n'est pas la façon dont ça fonctionne.
Donc, notre plan est
que nous ne voulions pas relier le book
deux ou trois mois avant le .NET 6.
Parce que c'est évidemment avec le book printemps.
Vous avez toujours une sorte de snapshot
de temps.
Ce n'est pas comme un contenu online.
Vous pouvez toujours en faire des updates.
Donc, nous avons chatté
et nous avons décidé
que nous serions tous en train de faire le .NET 5.
Et puis, dès que nous sommes plus près
à novembre,
quand les previews de .NET 6
étaient plus stabiles
ou que nous allions commencer
à faire des contenus
qui étaient rélevants à ce point.
Ce qui est vraiment bonne news
est que, à l'honneur,
il n'y a pas vraiment de changement
que ce soit avec Blazer,
avec le .NET,
qui a un peu plus de fonctionnalité.
Mais ce qui est déjà là
n'est pas vraiment déçue,
ce qui est quelque chose
que Microsoft a été
bien bien récemment
de ne pas avoir des changements
entre les releases.
Il y a bien sûr que ça a été
beaucoup avec Blazer
pendant que c'était initialement développé.
Je veux dire qu'il va être là
mais évidemment,
quand c'est encore en preview,
vous ne pouvez pas l'exprimer.
Mais,
en fonction des releases ou des releases,
c'est été relativement painé.
Donc,
oui, en termes de ce que l'on a
de la date dans le book
pour le .NET 6,
c'est relativement petit,
ce qui est bon.
Mais,
j'espère que
le book va être
une bonne introduction
pour quelqu'un qui veut
le dire à Blazer.
Donc,
on a aimé
quelqu'un qui
a un .NET expérience,
a un web expérience,
mais
il n'a évidemment pas utilisé
Blazer avant.
Il vous fait
commencer à finir
avec
la toute la frame.
Et along the way,
je me suis décidé de
faire un modèle
pour construire un app
pour le go model.
Donc,
par les chapitres de l'enquête,
vous buildez une application
appelée Blazing Trail,
qui est
comme une app pour le hiking.
Ça vous permet
d'impliquer les trails
que vous pouvez faire
en marchant et tout.
Donc,
vous pourrez construire
une vraie app
pour le go.
Donc,
je pense
que je l'ai bien aimé
cette approche
dans un livre que j'ai lu
parce que j'ai aimé
le fait
que vous venez de l'application
avec un application de travail.
Et puis,
j'ai trouvé en référence
cette application de travail
quand j'ai été étranger
plutôt que de aller
plâmer au book
pour trouver
la page
qui était
par rapport à quelque chose
que je pouvais
juste rembourser
la code
et puis
revenir.
Donc,
je pensais
que je vais
avec ça
comme un modèle
pour le livre.
Et donc,
j'espère que ce sont les gens
qui sont utiles
plutôt que de
avoir un exemple random
par chapitre,
qui,
je pense,
fonctionne très bien
pour certains
sujets,
mais pas peut-être.
Donc,
je pense que le base de l'UI
est toujours
sympa
d'avoir quelque chose
consistant
que vous êtes
travaillant
par-dessus.
oui,
c'est ce que vous faites
à l'un des deux.
Et,
2
garden
G
3
4
4
c'est le livre physique ou le livre élevé.
Donc, on va le vérifier.
Mais pour quelqu'un qui veut entrer dans le drawer,
basically, faire un tweet, mentionner le podcast,
donc, utilisez le hashtag UnhandledException,
mentionner Chris' livre Blazor in Action,
et mentionner Manning,
puis on va prendre un en random.
Faites-vous bien que vous inclurez le hashtag UnhandledException
parce que c'est de la façon dont on va trouver les tweets.
Et ils ont aussi eu un discount de 35% permanent
pour tous leurs produits en tous les formats,
et c'est PodUnhandled21.
Donc, ça va donner à l'un des listeners
de 35% de tous leurs produits,
ce qui est très bon.
Oui, Manning est vraiment bien
avec ses produits promotionnels.
Oui, ils sont vraiment bons.
Cool.
Donc, on va faire des tips de défi ?
Oui.
Donc...
Ah !
C'est drôle.
Je vous l'ai dit par surprise, non ?
Oui, je sais que c'est venu.
Je pense que, à l'heure,
avant de dire ça,
j'étais vraiment content de dire que mon défi était
de la compétition simple.
Non, c'est un bon défi.
Mais je ne sais pas si c'est trop simple pour un défi.
Je pense que c'est probablement l'un des plus importants
des défi desquels il y a.
Oui, c'est un peu...
Je pensais que je pensais à des loads,
j'ai eu une petite session de brainstorming
quelques jours plus tard où je l'ai écrit un peu de temps,
et je me dis que juste 10, 15 minutes
pour les gens à l'idée.
Je me dis que c'est vraiment bien,
c'est vraiment bien convaincu.
Je me dis que c'est le plus grand chose qui m'a aidé à mon carrière,
c'est de la compétition simple.
C'est un bon moment, je trouve que
je vois beaucoup de codes où les gens tentent de être
très clairs.
Et je ne parle pas de
utiliser le syntaxe de la langue,
parce que parfois ça peut
faire ça simple.
Je parle de choses comme
utiliser 5 millions
de laissons d'abstraction
ou quelque chose.
En fait, ce type de défi
serait beaucoup plus petit
sans tenter d'utiliser
tout ce design de la patte.
Oui, c'est la classique,
les niveaux de abstraction ridicule de la DB.
Parce que je ne veux pas changer mon DB.
Parce que ça ne s'est pas passé.
Je sais que ça a été passé,
mais je pense que
dans les scénarios,
si quelqu'un a des choses
qui ne peuvent pas faire ça,
même avec les abstractures,
ça ne peut pas normalement
fonctionner.
Donc, c'est juste de la
chose de rien.
Mais oui.
Je pense que l'une est bien.
Je ne m'en souviens pas
d'une patte de la laissons.
Si nous nous gardons simple,
c'est quand
on a 5 millions de patteurs
sur le top de la laissons,
et ça se passe.
Je me souviens,
il y avait un projet
qu'on avait travaillé sur.
Et quand j'ai commencé
les entreprises,
le projet était déjà
là-bas et sur la table.
Mais pour ajouter un nouveau point de terminus,
il serait prendre
une demi-définie à un jour,
juste pour ajouter un nouveau point de terminus,
qui, en fait,
était juste appelé à la DB.
Parce qu'il y avait
tant de
zones de projet
qu'on avait à faire.
Je me souviens d'un projet
parce que c'était
un patteur de laissons,
c'était un patteur de laissons.
Et il y avait
5 patteurs de laissons.
Donc, chaque fois que vous étiez un patteur,
vous avez ensuite
pris
probablement 2 ou 3 heures
en travaillant
sur
où il a été
inspiré,
où vous avez vécu
cet entier bon point.
Il a ensuite été inspiré
en dessous,
et vous avez dû
essayer de travailler
à l'aise où vous étiez.
Vous étiez ensuite
un autre patteur,
et ça va le faire encore.
Et c'est...
Je pense que nous avons travaillé
sur le même projet.
Oui.
C'est possible.
Donc, mon tip de la dév
est une extension de code VS
appelée REST Client.
Je ne sais pas si vous l'avez entendu.
Oui, je l'ai.
Je pense que j'ai utilisé
un peu de temps, en fait.
Ah, c'est vraiment bon.
C'est un peu trop bon.
Donc, le meilleur moyen de décrire ceci
est de comparer avec Postman,
dont je suis sûr que beaucoup de nos
listeners ne l'ont pas.
Donc, c'est le même
chose que Postman.
Vous pouvez créer des réquests
et les sauver,
et venir les ensuite,
et envoyer ces réquests
à un API,
et voir la réponse,
et ça visualise
bien.
Ce REST Client fait le même.
Mais c'est un extension de code VS.
Donc, ça permet de vous envoyer
des réquests de code HP,
et de voir la réponse
directement dans le code VS.
Et la grande chose que j'aime
de cette question
c'est le fait que
ces sont juste des textes
d'HTTP.
Donc, vous pouvez le mettre
dans le gât à l'extérieur de vos APIs.
Donc, ce que j'ai pu faire,
si je fais un changement
à un API,
dans le même commit
ou un PR,
je ferai un changement de match
dans le file de HTTP,
juste pour les garder en sync.
Et puis, quand vous ouvrez
ce file de HTTP dans le code VS,
chaque réquest
a presque un
code l'en style hyperlink
à l'arrivée,
et juste dire
envoyer un réquest,
et puis vous pouvez cliquer
sur le code VS
et faire un réquest.
Et puis,
le code VS
crée un panneau
sur le droit
avec la date de réponse.
Et vous pouvez même
récuperer
si vous allez dans vos tools de browser,
vous savez quand vous cliquez
et dites « copy as curl »
vous pouvez couper
le curl directement
et envoyer un réquest
en utilisant le curl
et le format de HTTP.
Oui, c'est vraiment cool.
Oui, je le trouve super utile.
Parce que le gât
j'aime bien le postman,
à l'heure de l'hôpital,
et oui, c'est vraiment
très handy, c'est gratuit.
Donc, je vais vous en mettre dans les notes de la show.
Oui, ça me semble vraiment cool.
Oui, vraiment bien.
Cool.
Donc, avant que vous vous réveillez,
est-ce que vous avez rien à faire
ou pas?
Je suis sûr que vous avez
couvert tout à la chambre
à la sink, je pense,
mais est-ce que vous avez rien à faire
ou pas?
Oh, Dieu.
Possiblement, mais je ne peux pas le dire.
Je suis sûr que vous pouvez
parler de l'après-midi.
Mais oui,
je pense que nous avons couvert
beaucoup de choses.
J'espère que c'est intéressant
pour les gens,
pas moi ramblant trop.
Je suis sûr que ce n'est pas le cas.
Donc, si les gens ont des questions extraires,
où est-ce que c'est le meilleur endroit
pour les gens à vous acheter?
Je vais probablement
me piquer sur Twitter.
Mes DMs sont élevés,
donc c'est
chriss underscore Saintie.
Et puis, si vous voulez
trouver quelque chose de ce que je fais,
ce que je fais,
j'ai mon blog,
c'est chrissaintie.com,
donc j'ai un tab-signal
qui est sorti,
je vais essayer de vous
parler de l'enquête
que j'ai.
Et puis, je suis utile
de poser un blog post chaque week
jusqu'à ce que je commence
à écrire ce livre.
Et, oui,
alors, quand le livre est terminé,
il y aura un annonceur
là-dedans,
que le livre est prêt à aller.
Et puis, j'espère que je vais
retourner
dans le swing de faire un blog post
encore,
et de faire des choses
dans le monde, aussi.
Donc, oui, vous pouvez trouver
des liens à n'importe quel de mon
truc, c'est tout sur mon blog,
pour que vous puissiez
aller dans le blog,
et tout ça.
Je ne pense pas que j'ai écrit
un blog post
depuis le temps de ce podcast.
Je pensais que je serais
négulais de pouvoir
faire un blog post
pendant ce livre.
Je vais dire pourquoi,
parce que je vois
Andrew Lott
qui a écrit son livre
pour Manning,
et il a réussi à continuer
à faire un blog post
chaque semaine sans fail.
Et, évidemment,
son blog post est
incroyable.
Et je pensais,
oui, oui, je peux faire ça,
je peux faire ça.
Non.
Je veux dire, cet homme est superhuman.
Je n'ai pas de clous
de comment Andrew
met le contenu de qualité
et la régulière,
c'est délicieux.
Donc, oui,
je me suis rapidement
donné cette idée.
Je pense que je suis réussi
à faire trois blogs en un an.
Et votre prochain blog post
peut être tout sur votre livre?
Exactement, oui.
C'est ce que nous faisons.
Et puis, on va faire un blog post
pour que je ne le fasse pas
et puis, je vais probablement
laisser ça pendant 12 mois.
C'est plutôt un peu
standard pour le blog, je pense.
Et puis, vous allez commencer
votre prochain livre.
Et puis, je vais commencer
mon prochain livre.
Oh, mon Dieu,
pas tout de suite.
Je vais vous dire ça.
C'est intéressant de le voir,
parce que j'ai considéré
faire un livre.
Et c'est comme,
alors que cet épisode
me sort de blazer,
je ne vais pas
vendre un livre.
Oui,
je suis probablement
un mauvais homme,
je dois bien sûr
que je dois probablement
faire un livre.
Je me suis dit,
je vais faire un livre.
C'est bien.
C'est bien.
Mais, j'espère que
ça va tout de même
faire sens, à la fin.
Il y a beaucoup de gens
très bons en manning,
qui sont en train de
faire sure que je ne le fais pas.
C'est bien.
C'est bien.
C'est bien.
je me suis rendu compte
que je vais faire ça pendant
une fois,
donc, je vais probablement
faire ça.
Merci beaucoup, Chris,
pour vous joindre.
C'est bien,
c'est bien de vous avoir
regardé.
C'est un plaisir.
Merci beaucoup,
c'est un plaisir.
Merci beaucoup,
et à la prochaine.
Merci.
Merci beaucoup.
Merci beaucoup.
Merci beaucoup.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Mark Rendle's Stream of Consciousness