Partager via


Présentation de Blazor pour les développeurs Web Forms ASP.NET

Conseil / Astuce

Ce contenu est un extrait du livre électronique, Blazor pour les développeurs ASP NET Web Forms pour Azure, disponible sur .NET Docs ou en tant que PDF téléchargeable gratuitement qui peut être lu hors connexion.

Blazor-for-ASP-NET-Web -Forms-Developers miniature de couverture du livre électronique.

Le framework ASP.NET Web Forms est un élément essentiel du développement web .NET depuis la première livraison du .NET Framework en 2002. De retour lorsque le Web était encore en grande partie dans sa petite enfance, ASP.NET Web Forms a rendu la création d’applications web simples et productives en adoptant de nombreux modèles utilisés pour le développement de bureau. Dans ASP.NET Web Forms, les pages web peuvent être rapidement composées à partir de contrôles d’interface utilisateur réutilisables. Les interactions utilisateur sont gérées naturellement en tant qu’événements. Il existe un écosystème riche de contrôles d’interface utilisateur Web Forms fournis par Microsoft et des fournisseurs de contrôle. Les contrôles facilitent les efforts de connexion aux sources de données et d’affichage de visualisations de données enrichies. Pour ceux qui privilégient les aspects visuels, le designer Web Forms offre une interface simple de glisser-déposer pour gérer les éléments de contrôle.

Au fil des ans, Microsoft a introduit de nouvelles infrastructures web basées sur ASP.NET afin de suivre les tendances du développement web. Certaines infrastructures web de ce type incluent ASP.NET MVC, ASP.NET pages web, et plus récemment ASP.NET Core. Avec chaque nouveau framework, certains ont prédit le déclin imminent de ASP.NET Web Forms et l’ont critiqué comme un framework obsolète dans le domaine du web suranné. Malgré ces prédictions, de nombreux développeurs web .NET continuent de trouver ASP.NET Web Forms un moyen simple, stable et productif d’accomplir leur travail.

Au moment de l’écriture, près d’un demi-million de développeurs web utilisent ASP.NET Web Forms chaque mois. L’infrastructure ASP.NET Web Forms est stable au point que les documents, les exemples, les livres et les billets de blog d’il y a dix ans restent utiles et pertinents. Pour de nombreux développeurs web .NET, « ASP.NET » est toujours synonyme de « ASP.NET Web Forms », car c’était quand .NET a été conçu pour la première fois. Les arguments sur les avantages et les inconvénients des ASP.NET Web Forms par rapport aux autres nouveaux frameworks web .NET peuvent se poursuivre. ASP.NET Web Forms reste une infrastructure populaire pour la création d’applications web.

Même si, les innovations dans le développement de logiciels ne ralentissent pas. Tous les développeurs de logiciels doivent rester au courant des nouvelles technologies et tendances. Deux tendances en particulier méritent d’être envisagées :

  1. Passage à open source et multiplateforme
  2. Déplacement de la logique d’application vers le client

Un .NET open source et multiplateforme

Lorsque .NET et ASP.NET Web Forms ont été lancés à l'origine, l'écosystème de la plateforme était très différent de ce qu'il est aujourd'hui. Les marchés des ordinateurs de bureau et des serveurs ont été dominés par Windows. D’autres plateformes comme macOS et Linux ont toujours eu du mal à gagner en traction. ASP.NET Web Forms est fourni avec le .NET Framework en tant que composant Windows uniquement, ce qui signifie que ASP.NET applications Web Forms ne peuvent s’exécuter que sur des ordinateurs Windows Server. De nombreux environnements modernes utilisent désormais différents types de plateformes pour les serveurs et les machines de développement, de sorte que la prise en charge multiplateforme pour de nombreux utilisateurs est une exigence absolue.

La plupart des frameworks web modernes sont désormais également open source, ce qui offre un certain nombre d’avantages. Les utilisateurs ne dépendent pas d'un seul propriétaire de projet pour corriger les bogues et ajouter des fonctionnalités. Les projets open source offrent une transparence améliorée sur la progression du développement et les modifications à venir. Les projets open source bénéficient de contributions provenant d’une communauté entière et favorisent un écosystème open source de soutien. Malgré les risques liés à l’open source, de nombreux consommateurs et contributeurs ont trouvé des atténuations appropriées qui leur permettent de profiter des avantages d’un écosystème open source de manière sûre et raisonnable. Parmi ces atténuations, citons les contrats de licence de contributeur, les licences conviviales, les analyses de pedigree et les fondations de soutien.

La communauté .NET a adopté à la fois la prise en charge multiplateforme et l’open source. .NET Core est une implémentation open source et multiplateforme de .NET qui s’exécute sur une multitude de plateformes, notamment Windows, macOS et diverses distributions Linux. Mono est une version open source de .NET qui s’exécute sur Android, iOS et divers autres facteurs de forme, notamment les montres et les téléviseurs intelligents. En 2020, Microsoft a publié .NET 5 qui a réconcilié .NET Core et Mono en « un seul runtime et framework .NET qui peut être utilisé partout et qui a des comportements d’exécution uniformes et des expériences de développement ».

ASP.NET Web Forms bénéficieront-ils du passage au support open source et multiplateforme ? La réponse, malheureusement, est non, ou du moins, pas dans la même mesure que le reste de la plateforme. L’équipe .NET a clairement indiqué que ASP.NET Web Forms ne sera pas porté vers .NET Core ou .NET 8. Pourquoi ?

Des efforts ont été déployés au début du .NET Core pour porter ASP.NET Web Forms. Le nombre de changements perturbateurs requis ont été trouvés trop radicaux. Il y a également une admission ici que même pour Microsoft, il existe une limite au nombre de frameworks web qu’il peut prendre en charge simultanément. Peut-être que quelqu’un de la communauté prendra la cause de la création d’une version open source et multiplateforme de ASP.NET Web Forms. Le code source de ASP.NET Web Forms a été rendu disponible publiquement sous forme de référence. Mais pour le moment, il semble ASP.NET Web Forms restera Windows uniquement et sans modèle de contribution open source. Si la prise en charge multiplateforme ou l’open source deviennent importantes pour vos scénarios, vous devez rechercher quelque chose de nouveau.

Cela signifie-t-il que ASP.NET Web Forms est mort et ne doit plus être utilisé ? Bien sûr que non! Tant que le .NET Framework est fourni dans le cadre de Windows, ASP.NET Web Forms sera un framework pris en charge. Pour de nombreux développeurs Web Forms, l’absence de prise en charge multiplateforme et open source n’est pas un problème. Si vous n’avez pas besoin d’une prise en charge multiplateforme, d’open source ou d’une des autres nouvelles fonctionnalités de .NET Core ou .NET 8, vous pouvez utiliser ASP.NET Web Forms sur Windows. ASP.NET Web Forms continuera d’être un moyen productif d’écrire des applications web pendant de nombreuses années.

Mais il y a une autre tendance à prendre en compte, et c’est le changement vers le client.

Développement web côté client

Toutes les infrastructures web basées sur .NET, y compris ASP.NET Web Forms, ont historiquement eu une chose en commun : elles sont rendues par le serveur. Dans les applications web rendues par le serveur, le navigateur envoie une demande au serveur, qui exécute du code (code .NET dans ASP.NET applications) pour produire une réponse. Cette réponse est renvoyée au navigateur pour gérer. Dans ce modèle, le navigateur est utilisé comme un moteur de rendu léger. Le travail difficile de produire l’interface utilisateur, d’exécuter la logique métier et de gérer l’état se produit sur le serveur.

Toutefois, les navigateurs sont devenus des plateformes polyvalentes. Ils implémentent un nombre toujours croissant de normes web ouvertes qui accordent l’accès aux fonctionnalités de l’ordinateur de l’utilisateur. Pourquoi ne pas tirer parti de la puissance de calcul, du stockage, de la mémoire et d’autres ressources de l’appareil client ? Les interactions de l’interface utilisateur en particulier peuvent bénéficier d’une sensation plus riche et plus interactive lorsqu’elles sont gérées au moins partiellement ou complètement côté client. La logique et les données qui doivent être gérées sur le serveur peuvent toujours être gérées côté serveur. Les appels d’API web ou même les protocoles en temps réel, tels que WebSockets, peuvent être utilisés. Ces avantages sont disponibles gratuitement pour les développeurs web s’ils sont prêts à écrire JavaScript. Les infrastructures d’interface utilisateur côté client, telles que Angular, React et Vue, simplifient le développement web côté client et ont augmenté en popularité. Les développeurs ASP.NET Web Forms peuvent également tirer parti du client et même bénéficier d’un support immédiat avec des frameworks JavaScript intégrés comme ASP.NET AJAX.

Mais relier deux plateformes et écosystèmes différents (.NET et JavaScript) comporte un coût. L’expertise est requise dans deux mondes parallèles avec différents langages, infrastructures et outils. Le code et la logique ne peuvent pas être facilement partagés entre le client et le serveur, ce qui entraîne une surcharge de duplication et d’ingénierie. Il peut également être difficile de suivre l’écosystème JavaScript, qui a une histoire d’évolution à une vitesse vertigineuse. Les préférences de cadre front-end et d'outil de build changent rapidement. L’industrie a observé la progression de Grunt à Gulp à Webpack, et ainsi de suite. La même activité sans repos s’est produite avec des frameworks frontaux tels que jQuery, Knockout, Angular, React et Vue. Mais étant donné le monopole du navigateur de JavaScript, il y avait peu de choix dans la question. C’est-à-dire jusqu’à ce que la communauté web se soit réunie et a provoqué un miracle  !

WebAssembly répond à un besoin

En 2015, les principaux fournisseurs de navigateurs ont joint leurs forces dans un groupe communautaire W3C pour créer une norme web ouverte appelée WebAssembly. WebAssembly est un code d’octet pour le web. Si vous pouvez compiler votre code sur WebAssembly, il peut ensuite s’exécuter sur n’importe quel navigateur sur n’importe quelle plateforme à une vitesse quasi native. Les efforts initiaux se sont concentrés sur C/C++. Le résultat a été une démonstration spectaculaire de l’exécution de moteurs graphiques 3D natifs directement dans le navigateur sans plug-ins. WebAssembly a depuis été standardisé et implémenté par tous les navigateurs principaux.

Des travaux sur l’exécution de .NET sur WebAssembly ont été annoncés fin 2017 et publiés en 2020, avec prise en charge dans .NET 5 et ultérieur. Le fait de pouvoir exécuter du code .NET directement dans le navigateur permet le développement web full-stack avec .NET.

Blazor: Développement Web full-stack avec .NET

En soi, la possibilité d’exécuter du code .NET dans un navigateur ne fournit pas d’expérience de bout en bout pour la création d’applications web côté client. C'est là que Blazor intervient. Blazor est une infrastructure d’interface utilisateur web côté client basée sur C# au lieu de JavaScript. Blazor peut s’exécuter directement dans le navigateur via WebAssembly. Aucun plug-in de navigateur n’est requis. Blazor Les applications peuvent également exécuter côté serveur sur .NET et gérer toutes les interactions utilisateur sur une connexion en temps réel avec le navigateur.

Blazor bénéficie d'un excellent support d'outillage dans Visual Studio et Visual Studio Code. L’infrastructure inclut également un modèle de composant d’interface utilisateur complet et dispose d’installations intégrées pour :

  • Formulaires et validation
  • Injection de dépendances
  • Routage côté client
  • Dispositions
  • Débogage dans le navigateur
  • Interopérabilité JavaScript

Blazor a beaucoup en commun avec ASP.NET Web Forms. Les deux frameworks offrent des modèles de programmation d’interface utilisateur basés sur des composants, pilotés par des événements et avec état. La principale différence architecturale est que ASP.NET Web Forms s’exécute uniquement sur le serveur. Blazor peut s’exécuter sur le client dans le navigateur. Mais si vous avez une expérience des Web Forms d'ASP.NET, vous trouverez beaucoup d'éléments dans Blazor qui vous sembleront familiers. Blazor est une solution naturelle pour ASP.NET développeurs Web Forms qui cherchent un moyen de tirer parti du développement côté client et de l’avenir multiplateforme open source de .NET.

Ce livre fournit une présentation de Blazor qui s’adresse spécialement aux développeurs ASP.NET Web Forms. Chaque Blazor concept est présenté dans le contexte des fonctionnalités et pratiques analogues des Web Forms ASP.NET. À la fin de ce livre, vous aurez une compréhension des points suivants :

  • Comment créer des applications Blazor.
  • Comment fonctionne Blazor.
  • Comment Blazor se rapporte à .NET.
  • Stratégies raisonnables pour la migration d'applications ASP.NET Web Forms existantes vers Blazor le cas échéant.

Commencer avec Blazor

Commencer avec Blazor est facile. Accédez à https://blazor.net et suivez les liens pour installer le Kit de développement logiciel (SDK) .NET et Blazor les modèles de projet appropriés. Vous trouverez également des instructions pour configurer les Blazor outils dans Visual Studio ou Visual Studio Code.