Fermer

août 21, 2020

Comment travailler avec Blazor côté client


Vous avez probablement entendu parler de Blazor Wasm, mais qu'est-ce que c'est et comment pouvez-vous l'utiliser pour créer rapidement vos applications Web?

En bref, Blazor côté client (Blazor Wasm) apporte C # au navigateur.

Nous connaissons tous l'idée d'écrire du JavaScript, qui fonctionne dans le navigateur, mais maintenant nous avons une autre option: écrire C # et l'exécuter aussi dans le navigateur.

Cela fonctionne grâce à quelque chose appelé WebAssembly.

WebAssembly (Wasm) représente un changement important dans le développement d'applications Web: ouvrir la porte à la possibilité de compiler des ensembles binaires et de les expédier au navigateur (comme alternative à l'envoi de code JavaScript sous forme de texte).

Maintenant, vous pouvez pensez, exécuter du code binaire dans le navigateur semble compliqué. Mais, heureusement, nous n'avons pas à nous soucier des détails d'implémentation de niveau inférieur, car Microsoft a pris soin d'eux, nous permettant de nous concentrer sur la partie amusante: créer des applications Web à l'aide du modèle de composant de Blazor.

Explorez Blazor: gratuit guide de démarrage rapide de la productivité avec Blazor. Obtenez notre ebook Guide du débutant

Créez votre application, un composant à la fois

Vous pouvez lancer un nouveau projet Blazor Wasm dans votre IDE (Visual Studio, Jetbrains Rider, etc.) ou via la ligne de commande.

 ] dotnet nouveau blazorwasm

Lorsque vous le faites, vous vous retrouverez à regarder le projet Blazor Wasm standard.

 Blazor WASM "blank" project "title =" Blazor WASM "blank" project "data-displaymode =" Original " /></p data-recalc-dims=

Tout dans Blazor est un composant et vous trouverez quelques exemples dans le dossier Pages

 Blazor example components "title =" Blazor example components "data-displaymode = "Original" /></p data-recalc-dims=

Ces composants (qu'ils soient les vôtres ou que vous avez importés via une bibliothèque de composants telle que l'interface utilisateur de Telerik pour Blazor) forment les blocs de construction de vos applications Blazor.

Voici un exemple:

Greeting.razor

 < h1 >  Bonjour, @Name  </  h1 > 

@code {
    [Parameter]
    chaîne publique Name {get; ensemble; }
}

Nous pouvons maintenant rendre ce composant où nous voulons, en passant une valeur pour le paramètre Name

  < Greeting   Name  =  " Gurdeep "   /> 

Les composants de Blazor sont référencés par nom de fichier, donc notre composant Greeting est défini dans un fichier appelé Greeting.razor et nous pouvons l'inclure ailleurs dans notre application en utilisant son nom: ].

Réutiliser ces composants

Si vous êtes habitué à une approche plus traditionnelle «basée sur la page» pour créer des applications Web, cette approche basée sur les composants peut sembler un peu étrange au début, mais ses points forts bientôt

Par exemple, imaginez que vous ayez besoin d'afficher un bouton "J'aime" dans votre application.

Naturellement, ce type de "widget" d'interface utilisateur peut apparaître à plusieurs endroits: messages, réponses, commentaires, etc.

] Avec Blazor, vous définiriez cela comme un composant, consistant en un balisage d'interface utilisateur écrit à l'aide de Razor…

LikeButton.razor

 @if (_liked)
{
 < span >  A aimé!  </  span > 
}
autre
{
 < bouton   @onclick  =  " HandleLikeClicked "  > 
Comme!
Bouton  </  > 
}

… et la logique d'interface utilisateur écrite en C #.

 @code  {

	 [ Parameter ] 
	 public  EventCallback OnLiked  {  get [19659019];   set ;  } 

	 bool  _liked  {  get ;   set ;  } 

	 protected   void   HandleLikeClicked  ()   {
_liked  =   true ; 
OnLiked .  InvokeAsync  ( EventArgs .  Empty ) ; 
	} 
} 

Certes, cela nécessite un peu de CSS et probablement un graphique ou deux pour le rendre meilleur. Mais, à part l'apparence, nous avons un simple bouton «J'aime».

Lorsque vous cliquez sur le bouton, l'indicateur booléen privé _liked est défini sur true et Blazor sera de nouveau rendu l'interface utilisateur pour afficher le texte «Aimé» au lieu du bouton.

En même temps, le rappel d'événement OnLiked sera appelé.

Cela signifie, où que vous décidiez d'utiliser votre nouveau Comme le composant vous pouvez transmettre le comportement que vous souhaitez déclencher lorsque l'utilisateur «aime» la chose (quelle qu'elle soit).

 @foreach (var post in Posts)
{
     < h2 >  @ post.Title  </  h2 > 
     < LikeButton   OnLiked  =  " () => HandleLiked (post) "   /> 
}

Ceci boucle sur une liste d'objets Post et affiche un bouton J'aime pour chacun.

Lorsque l'utilisateur clique sur le bouton J'aime (à l'intérieur du composant LikeButton ), ] OnLiked est invoqué, transmettant le message spécifique à la méthode HandleLiked .

 @code  {
     private  List  < Post >  Messages  {  get ;   set ;  } 
    
     protected   void   HandleLiked  ( Post poste ) 
     {
        Console .  WriteLine  ( "A aimé ce message:"   +  post .  Title ) ; 
    } 
} 

Vous avez maintenant les moyens de maintenir la cohérence de vos boutons "J'aime" (en apparence et en comportement) dans toute votre application, tout en effectuant des actions différentes selon l'endroit où le bouton est rendu et ce qui devrait se passer lorsque vous cliquez dessus.

Différences entre côté serveur et côté client

Vous avez peut-être entendu parler de Blazor Server et de Blazor WebAssembly (ou Blazor Wasm).

Ce sont deux modèles d'hébergement différents pour vos applications Blazor.

En pratique, vous Je vais créer votre application en utilisant le même modèle de composant (voir ci-dessus), mais en ce qui concerne l'hébergement, vous pouvez soit tout conserver sur le serveur (Blazor Server), soit expédier votre application vers le navigateur (Blazor WebAssembly).

Avec Blazor Wasm votre code est compilé dans un certain nombre de fichiers DLL qui sont récupérés par le navigateur (lorsque quelqu'un visite votre site).

Le navigateur télécharge ces fichiers DLL plus le runtime .NET, et exécute votre application via WebAssembly.

Avec Blazor Server le navigateur ouvre une connexion au serveur qui conserve les fichiers DLL et exécute votre application en utilisant le runtime .NET (sur le serveur).

Fondamentalement, comment vous construisez et déboguez votre l'application reste largement cohérente entre les deux modèles d'hébergement.

Dans les deux cas, vous allez créer vos applications à l'aide du modèle de composant de Blazor.

Les principales différences concernent la manière dont votre application va évoluer et gérer les échecs (comme la perte de réseau) .

Blazor Server

  • Pas de téléchargement initial du framework
  • Dépend d'une connexion ouverte au serveur
    • Les performances sont directement affectées par la latence (la connexion entre le navigateur et le serveur)
    • Vous obtiendrez une erreur si la connexion au serveur est perdue

Blazor Wasm

  • Téléchargement initial du framework (le la première fois que vous accédez à un site Blazor Wasm, mais une fois que vous l'avez, vous l'avez!)
  • Votre application s'exécute dans le navigateur et n'est donc pas affectée par la latence du réseau
  • Pas besoin de maintenir une connexion au serveur (mais peut faites toujours des appels HTTP à une API backend)

Essayez Kendo UI pour Vue – Bibliothèque complète de composants d'interface utilisateur pour les applications Web. Essai gratuit

Déboguer le Blazor côté client

Tôt ou tard, vous aurez besoin de voir ce que font vos composants: vérifier votre logique ou diagnostiquer un problème.

Si vous avez récemment écrit du code JavaScript , J'imagine que vous avez adopté l'une des options suivantes pour diagnostiquer un comportement inattendu dans votre code:

  • Frénétiquement ajouté autant d'instructions console.log que possible jusqu'à ce que vous compreniez ce qui se passe sur terre!
  • Comment déboguer votre code JavaScript (soit dans le navigateur, soit via une intégration avec votre IDE / éditeur de code)

Je sais lequel j'ai utilisé le plus souvent…

Heureusement, avec la sortie officielle de Blazor Wasm, vous pouvez résister à la tentation de jeter votre code avec Console .WriteLine (l'équivalent C # de console.log ) et, à la place, déboguez le code de votre application dans votre éditeur préféré.

Débogage dans Visual Studio

Tant que vous disposez d'un fichier récent version de Visual Studio 2019 installée, vous pouvez simplement définir un point d'arrêt dans votre code et appuyer sur F5 pour déboguer votre application Blazor Wasm.

 Débogage de Blazor WASM Visual Studio "title =" Débogage de Blazor WASM Visual Studio "data-displaymode = "Original" /></p data-recalc-dims=

Débogage dans VS Code

Visual Studio Code requiert un littl

Conformément à la documentation officielle vous aurez besoin de l'extension C # et de l'extension JavaScript Debugger (Nightly) .

Une fois installés, accédez aux paramètres des extensions Javascript Debugger (Nightly) (via le petit rouage dans la liste des extensions).

 Javascript Debugger Extension Settings "title =" Javascript Debugger Extension Settings "data- displaymode = "Original" /></p data-recalc-dims=

Puis cochez la case à côté de Debug> Javascript: Use Preview .

 Enable preview in javascript debugger extension "title =" Activer l'aperçu dans le débogueur javascript extension "data-displaymode =" Original "/></p data-recalc-dims=

Une fois tout cela fait, lorsque vous ouvrez par la suite un dossier de projet Blazor Wasm dans VS Code, vous serez invité à« ajouter les éléments requis ».

 Invite à ajouter les ressources requises pour déboguer le projet Blazor WASM dans VS Code "title =" Invite à ajouter les ressources requises à déboguez le projet Blazor WASM dans VS Code "data-displaymode =" Original "/></p data-recalc-dims=

Cliquez sur" Oui ", définissez un point d'arrêt, puis appuyez sur F5 pour démarrer avec la prise en charge du débogage activée (ou dirigez-vous vers l'onglet Exécuter et exécuter la configuration Lancement et débogage ).

 Un point d'arrêt suspendu dans VS Code "title =" Un point d'arrêt interrompu dans VS Code "data-displaymode = "Original" /></p data-recalc-dims=

Allez plus vite avec une bibliothèque de composants

L'un des grands avantages de la création de votre application à l'aide de composants est que vous n'avez pas à créer vous-même chaque composant.

Après tout, la valeur de votre application est généralement dans sa logique et son intelligence uniques et spécifiques au domaine, et non dans le sélecteur de date spécifique ou dans la fenêtre contextuelle modale que vous devez implémenter pour que tout fonctionne.

Si vous cherchez à créer rapidement vos applications Web en utilisant des composants d'interface utilisateur éprouvés, vous pouvez gagner beaucoup de temps en adoptant une bibliothèque de composants Blazor. [19659003] Telerik UI for Blazor est l'une de ces bibliothèques et fonctionne à la fois avec Blazor Server et Blazor Wasm, vous pouvez donc utiliser le modèle d'hébergement Blazor qui convient à votre cas d'utilisation et créer vos applications exactement de la même manière quoi qu'il en soit.

Essayez l'interface utilisateur Telerik pour Blazor: composants natifs pour la création d'applications Web avec C #. Essai gratuit

En résumé

Blazor Wasm est enfin là, et son modèle de composants vous permet de créer votre application, un composant à la fois.

Vous pouvez facilement déboguer votre code à l'aide de Visual Studio, ou VS Code, et vous pouvez profiter de l'interface utilisateur de Telerik pour Blazor pour créer rapidement votre application tout en conservant la possibilité de l'exécuter via Blazor Server ou Blazor Wasm.





Source link