Sharpening your .NET applications

En détail

Migration WebForms vers Blazor

Migration WebForms vers Blazor

En 2019, le couperet tombe

Lors de la conférence .NET Conf 2019, Microsoft a officiellement confirmé que WebForms ne serait pas porté vers .NET Core. Même si sa durée de vie reste corrélée à celle du framework 4.8, qui lui-même est lié à celle de Windows, cela donne un signal clair qu’il est temps d’investir dans une nouvelle technologie. À ce moment-là, j’avais écrit un site web marchand, étroitement intégré à un ERP et fondé sur WebForms.

Le choix de Blazor

Durant l’automne 2020, le choix de Blazor est arrêté. Je le perçois comme un « bon » successeur de WebForms : il utilise des composants razor qui fusionnent le code HTML et le code C# (logique) dans un même fichier, à l'image des anciens fichiers .aspx et .aspx.cs. Il constitue alors la toute dernière technologie web proposée par Microsoft. A cette époque, on sent pourtant que l'on s'engage dans quelque chose de nouveau, voire de révolutionnaire, qui n’est pas du tout largement adopté.

Un changement complet de mindset

Dans la pratique, un temps certain a été nécessaire pour adopter les bons principes qui sous-tendent la programmation Blazor. Le découpage est bien différent : le développeur doit avoir une vision « composant » et non plus « page ». Plus ce composant est petit, au plus il est aisé de le mettre au point et de le réutiliser.

L’abandon quasi-total de la logique « ce qui se fait dans le navigateur se fait en javascript » s’impose aussi. Blazor offre un système ultra-performant pour envoyer dans la page web vue par l’internaute les modifications nécessaires, pilotées depuis le code (C#) s’exécutant sur le serveur. Adieu Ajax, au revoir JavaScript !

Une migration finalement tout en souplesse

Finalement, le changement majeur concerne « le décor », la page HTML, la difficulté résidant essentiellement dans la réécriture de l'interface utilisateur. Le reste se migre facilement depuis l’ancien code WebForms. Le site web appelle les moteurs de l’ERP (créer une commande, ajouter un article, valider une commande) : aucun changement ne s’applique à ces endroits. De même, toutes les requêtes SQL et la syntaxe qui les entoure demeurent identiques.

Le résultat

Le résultat est bluffant : un site web qui fonctionne comme une « single page application », dans lequel il n’y a donc plus aucun rafraîchissement de postback. Et l’équipe de développement qui utilise pratiquement exclusivement ce qu’elle maîtrise le mieux : C#. La porte est grande ouverte pour de nouvelles évolutions, tant technologiques que fonctionnelles.

Cette migration montre qu’un changement technologique majeur ne signifie pas nécessairement repartir de zéro. En conservant les moteurs métier et les fondations éprouvées de l’application, tout en reconstruisant son interface avec une technologie moderne, il a été possible de faire évoluer profondément le produit sans renier son histoire. WebForms a laissé place à Blazor, mais l’essentiel est resté : le métier, le C# et des années de code qui continuaient à avoir toute leur valeur.

Précédente Suivante
Tous les produits, technologies et noms de sociétés mentionnés sur ce site sont des marques déposées de leurs propriétaires respectifs. Les produits Microsoft cités (SQL Server, Windows, MAUI, Xamarin, .NET, Blazor, ...) sont des marques de Microsoft Corporation. Ubuntu est une marque déposée de Canonical Ltd.
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.