Blazor WebAssembly 3.2.0 Preview 3

blazor wasm

Comme vous l’avez probablement lu dans mon item sur Blazor WebAssembly, je crois que nous sommes près d’un produit stable pour sa première version. Il y a quelques limitations encore, mais les efforts sont en place pour livrer un produit fiable d’ici peu. Donc lorsque j’ai vu que Blazor WebAssembly 3.2.0 Preview 3 était disponible, je l’ai installé et j’ai testé les nouvelles fonctionnalités. Voici un survol de ce que j’ai constaté.

The debugging

J’en parlais dans mon article, le debugging pour Blazor WebAssembly était compliqué, ce qui le rendait moins fonctionnel et intéressant. Cette version nous amène donc la possibilité de le faire dans Visual Studio. J’ai donc démarré le projet de notre site web et mis un breakpoint sur la fonction qui affiche les vidéos dans une fenêtre modale. J’ai démarré le site, je suis évidemment allé cliquer sur un vidéo et ceci est arrivé:

debug avec blazor webassembly 3.2.0 preview 3

On est à la première version du debugging, donc il y a présentement certaines limitations. Par exemple dans l’image ci-haut, je ne pouvais pas voir la valeur de selectedVideoId qui est un membre de la classe. J’ai aussi dû désactiver les iframe YouTube qui causent problème à cause du debugger proxy lorsque mono n’est pas dans le contexte de navigation. Il reste qu’au final, c’était plutôt agréable de finalement pouvoir se servir de Visual Studio pour debugger mon application.

Auto-rebuild

La prochaine fonctionnalité ajoutée est tout aussi intéressante que le debugging, il y a maintenant une recompilation automatique. Précédemment, on devait arrêter et repartir l’application pour chaque changement qu’on fait. Malgré que ce n’est pas un irritant majeur, ça reste quelque chose qui se fait automatiquement en Angular par exemple.

J’ai donc fait le test, toujours avec notre site, que j’ai redémarré sans debugger (Ctrl+F5) et en utilisant IISExpress. J’ai modifié une section pour ajouter une balise HTML. Ensuite j’ai simplement sauvegardé puis rafraîchi la page. Le changement était visible, sans que j’aie eu à recompiler, ce qui sauve énormément de temps en cours de développement. J’ai fait un test similaire avec le code d’une méthode et le résultat était tout aussi génial.

Fichier de configuration

Il est maintenant possible d’ajouter un fichier appSettings.json dans le dossier wwwroot du projet client, au même titre que dans le projet serveur. Ce fichier peut aussi avoir certaines valeurs écrasées selon l’environnement avec par exemple un fichier appSettings.Development.json. Ceci nous permet donc de définir des options de configuration et de les utiliser dans nos composantes. Il faut seulement injecter une instance de IConfiguration et nous avons accès aux options du fichier de configuration. Comme ce fichier de configuration sera directement accessible dans le navigateur, il faut faire attention de ne pas y storer de données sensibles. Tout ce qui concerne des mots de passe devrait plutôt être du côté serveur.

Nouvelles méthodes pour le JSON

Les méthodes de sérialisation et désérialisation utilisant System.Text.Json sont maintenant disponibles en version preview. Il est donc possible dès maintenant de les tester en faisant le changement de l’extension utilisée. Par exemple, GetJsonAsync peut être remplacée par GetFromJsonAsync. La classe JsonContent a aussi été ajoutée pour envoyer du JSON sérialisé.

Un pas de plus vers la production

Avec Blazor WebAssembly 3.2.0 Preview 3, un grand pas a été fait pour être encore plus près d’une version prête pour la production. Pour plus de détails sur certaines des limitations, ou pour voir les étapes de migration pour passer à cette version, je vous invite à consulter l’item du blog d’ASP.NET qui contient tous les détails. Si vous avez expérimenté avec certaines de ces fonctionnalités, laissez-nous vos impressions dans les commentaires!

Bruno

Author: Bruno

By day, I am a developer, team leader and co-host of the Bracket Show. By evening, I am a husband and the father of two wonderful children. The time I have left after all of this I spend trying to get moving, playing and writing video game reviews, as well as preparing material for the Bracket Show recordings and for this blog. Through it all, I am also passionate about music and microbreweries.