Qu’est-ce que web Forms ?

ASP.NET Web Forms fait partie de l’infrastructure d’application web ASP.NET et est inclus dans Visual Studio. Il s’agit de l’un des quatre modèles de programmation que vous pouvez utiliser pour créer des applications web ASP.NET, les autres sont ASP.NET MVC, ASP.NET pages web et ASP.NET applications monopage.

Les formulaires web sont des pages que vos utilisateurs demandent à l’aide de leur navigateur. Ces pages peuvent être écrites à l’aide d’une combinaison de code HTML, de script client, de contrôles serveur et de code serveur. Lorsque les utilisateurs demandent une page, elle est compilée et exécutée sur le serveur par l’infrastructure, puis l’infrastructure génère le balisage HTML que le navigateur peut afficher. Une page ASP.NET Web Forms présente des informations à l’utilisateur dans n’importe quel navigateur ou appareil client.

À l’aide de Visual Studio, vous pouvez créer ASP.NET Web Forms. L’environnement de développement intégré (IDE) Visual Studio vous permet de faire glisser et déposer des contrôles serveur pour disposer votre page de formulaires Web. Vous pouvez ensuite définir facilement des propriétés, des méthodes et des événements pour les contrôles de la page ou pour la page elle-même. Ces propriétés, méthodes et événements sont utilisés pour définir le comportement de la page web, l’apparence, et ainsi de suite. Pour écrire du code serveur pour gérer la logique de la page, vous pouvez utiliser un langage .NET tel que Visual Basic ou C#.

Note

la documentation ASP.NET et Visual Studio s’étend sur plusieurs versions. Les rubriques qui mettent en évidence les fonctionnalités des versions précédentes peuvent être utiles pour vos tâches et scénarios actuels à l’aide des dernières versions.

ASP.NET Web Forms sont les suivants :

  • En fonction de la technologie microsoft ASP.NET, dans laquelle le code qui s’exécute sur le serveur génère dynamiquement la sortie de la page Web sur le navigateur ou l’appareil client.
  • Compatible avec n’importe quel navigateur ou appareil mobile. Une page web ASP.NET affiche automatiquement le code HTML conforme au navigateur approprié pour les fonctionnalités telles que les styles, la disposition, etc.
  • Compatible avec n’importe quel langage pris en charge par le Common Language Runtime .NET, tel que Microsoft Visual Basic et Microsoft Visual C#.
  • Basé sur Microsoft .NET Framework. Cela offre tous les avantages du framework, notamment un environnement géré, une sécurité de type et un héritage.
  • Flexible, car vous pouvez y ajouter des contrôles créés par l’utilisateur et tiers.

Les Web Forms ASP.NET offrent :

  • Séparation du code HTML et d’autres codes d’interface utilisateur de la logique d’application.
  • Suite enrichie de contrôles serveur pour les tâches courantes, y compris l’accès aux données.
  • Liaison de données puissante, avec une excellente prise en charge des outils.
  • Prise en charge des scripts côté client qui s’exécutent dans le navigateur.
  • Prise en charge de diverses autres fonctionnalités, notamment le routage, la sécurité, les performances, l’internationalisation, les tests, le débogage, la gestion des erreurs et la gestion de l’état.

ASP.NET Web Forms vous aide à surmonter les défis

La programmation d’applications web présente des défis qui ne surviennent généralement pas lors de la programmation d’applications clientes traditionnelles. Parmi les défis sont les suivants :

  • Implémentation d’une interface utilisateur web riche : il peut être difficile et fastidieux de concevoir et d’implémenter une interface utilisateur à l’aide d’installations HTML de base, en particulier si la page a une disposition complexe, une grande quantité de contenu dynamique et des objets interactifs utilisateur complets.
  • Séparation du client et du serveur : dans une application web, le client (navigateur) et le serveur sont des programmes différents qui s’exécutent souvent sur différents ordinateurs (et même sur différents systèmes d’exploitation). Par conséquent, les deux moitiés de l’application partagent très peu d’informations ; ils peuvent communiquer, mais en général échanger uniquement de petits morceaux d’informations simples.
  • Exécution sans état : lorsqu’un serveur Web reçoit une demande pour une page, il recherche la page, la traite, l’envoie au navigateur, puis ignore toutes les informations de page. Si l’utilisateur demande à nouveau la même page, le serveur répète toute la séquence, en retraiteant la page à partir de zéro. Autrement dit, un serveur n’a pas de mémoire des pages qu’il a traitées : les pages sont sans état. Par conséquent, si une application doit conserver des informations sur une page, son caractère sans état peut devenir un problème.
  • Fonctionnalités clientes inconnues : dans de nombreux cas, les applications web sont accessibles à de nombreux utilisateurs utilisant différents navigateurs. Les navigateurs ont des fonctionnalités différentes, ce qui rend difficile la création d’une application qui s’exécutera de manière égale sur toutes ces fonctionnalités.
  • Complications liées à l’accès aux données : la lecture et l’écriture dans une source de données dans les applications web traditionnelles peuvent être complexes et gourmandes en ressources.
  • Complications avec scalabilité : dans de nombreux cas, les applications web conçues avec des méthodes existantes ne répondent pas aux objectifs d’évolutivité en raison de l’absence de compatibilité entre les différents composants de l’application. Il s’agit souvent d’un point d’échec courant pour les applications sous un cycle de croissance lourd.

Répondre à ces défis pour les applications web peut nécessiter beaucoup de temps et d’efforts. ASP.NET Web Forms et le framework de ASP.NET répondent à ces défis de la manière suivante :

  • Modèle objet intuitif et cohérent : l’infrastructure de page ASP.NET présente un modèle objet qui vous permet de considérer vos formulaires comme une unité, et non comme des éléments client et serveur distincts. Dans ce modèle, vous pouvez programmer la page de manière plus intuitive que dans les applications web traditionnelles, notamment la possibilité de définir des propriétés pour les éléments de page et de répondre aux événements. En outre, ASP.NET contrôles serveur sont une abstraction du contenu physique d’une page HTML et de l’interaction directe entre le navigateur et le serveur. En général, vous pouvez utiliser des contrôles serveur de la façon dont vous pouvez utiliser des contrôles dans une application cliente et ne pas avoir à réfléchir à la façon de créer le code HTML pour présenter et traiter les contrôles et leur contenu.
  • Modèle de programmation piloté par les événements : ASP.NET Web Forms apportent aux applications web le modèle familier d’écriture de gestionnaires d’événements pour les événements qui se produisent sur le client ou le serveur. L’infrastructure de page ASP.NET extrait ce modèle de telle façon que le mécanisme sous-jacent de capture d’un événement sur le client, le transmettant au serveur et l’appel de la méthode appropriée est automatique et invisible pour vous. Le résultat est une structure de code claire et facilement écrite qui prend en charge le développement piloté par les événements.
  • Gestion intuitive de l’état : l’infrastructure de page ASP.NET gère automatiquement la tâche de maintenir l’état de votre page et de ses contrôles, et vous offre des moyens explicites de maintenir l’état des informations spécifiques à l’application. Cela s’effectue sans utilisation intensive des ressources serveur et peut être implémenté avec ou sans envoyer de cookies au navigateur.
  • Applications indépendantes du navigateur : l’infrastructure de page ASP.NET vous permet de créer toute la logique d’application sur le serveur, ce qui élimine la nécessité de coder explicitement les différences dans les navigateurs. Toutefois, il vous permet toujours de tirer parti des fonctionnalités spécifiques au navigateur en écrivant du code côté client pour fournir des performances améliorées et une expérience client plus riche.
  • Prise en charge du Common Language Runtime .NET Framework - le framework de pages ASP.NET est basé sur le .NET Framework, donc l'intégralité du framework est disponible pour n’importe quelle application ASP.NET. Vos applications peuvent être écrites dans n’importe quel langage compatible avec le runtime. En outre, l’accès aux données est simplifié à l’aide de l’infrastructure d’accès aux données fournie par le .NET Framework, y compris ADO.NET.
  • Performances évolutives du serveur .NET Framework : l’infrastructure de page ASP.NET vous permet de mettre à l’échelle votre application web à partir d’un seul ordinateur avec un seul processeur vers une batterie de serveurs web multi-ordinateurs et sans modifications complexes de la logique de l’application.

Fonctionnalités de ASP.NET Web Forms

  • Commandes de serveur - Les contrôles de serveur Web ASP.NET sont des objets sur les pages Web ASP.NET qui s'exécutent lorsque la page est demandée et qui affichent le code HTML dans le navigateur. De nombreux contrôles serveur web sont similaires aux éléments HTML familiers, tels que les boutons et les zones de texte. D’autres contrôles englobent un comportement complexe, tel qu’un contrôle de calendrier, et des contrôles que vous pouvez utiliser pour vous connecter à des sources de données et afficher des données.
  • Pages maîtres : ASP.NET pages maîtres vous permettent de créer une mise en page cohérente pour les pages de votre application. Une page maître unique définit l’apparence et le comportement standard souhaités pour toutes les pages (ou un groupe de pages) dans votre application. Vous pouvez ensuite créer des pages de contenu individuelles qui contiennent le contenu que vous souhaitez afficher. Lorsque les utilisateurs demandent les pages de contenu, ils fusionnent avec la page maître pour produire une sortie qui combine la mise en page maître avec le contenu de la page de contenu.
  • L’utilisation de Data- ASP.NET offre de nombreuses options pour le stockage, la récupération et l’affichage des données. Dans une application web Forms ASP.NET, vous utilisez des contrôles liés aux données pour automatiser la présentation ou l’entrée de données dans des éléments d’interface utilisateur de page web, tels que des tables et des zones de texte et des listes déroulantes.
  • Appartenance - ASP.NET Identity stocke les informations d’identification de vos utilisateurs dans une base de données créée par l’application. Lorsque vos utilisateurs se connectent, l’application valide ses informations d’identification en lisant la base de données. Le dossier Compte de votre projet contient les fichiers qui implémentent les différentes parties de l’appartenance : inscription, connexion, modification d’un mot de passe et autorisation de l’accès. En outre, ASP.NET Web Forms prend en charge OAuth et OpenID. Ces améliorations d’authentification permettent aux utilisateurs de se connecter à votre site à l’aide d’informations d’identification existantes, à partir de comptes tels que Facebook, Twitter, Windows Live et Google. Par défaut, le modèle crée une base de données d’appartenance à l’aide d’un nom de base de données par défaut sur une instance de SQL Server Express LocalDB, le serveur de base de données de développement fourni avec Visual Studio Express 2013 pour Web.
  • Scripts et cadres clients : vous pouvez améliorer les fonctionnalités basées sur le serveur d'ASP.NET en incluant les fonctionnalités de script client dans les pages de formulaire Web ASP.NET. Vous pouvez utiliser le script client pour fournir une interface utilisateur plus riche et plus réactive aux utilisateurs. Vous pouvez également utiliser le script client pour effectuer des appels asynchrones au serveur Web pendant qu’une page est en cours d’exécution dans le navigateur.
  • Routage : le routage d’URL vous permet de configurer une application pour accepter les URL de requête qui ne correspondent pas aux fichiers physiques. Une URL de requête est simplement l’URL que l’utilisateur entre dans son navigateur pour rechercher une page sur votre site web. Vous utilisez le routage pour définir des URL qui sont sémantiquement significatives pour les utilisateurs et qui peuvent vous aider à optimiser le moteur de recherche (SEO).
  • Gestion de l’état - ASP.NET Web Forms inclut plusieurs options qui vous aident à conserver les données à la fois par page et à l’échelle de l’application.
  • Sécurité : une partie importante du développement d’une application plus sécurisée consiste à comprendre les menaces qui y sont associées. Microsoft a développé un moyen de catégoriser les menaces : usurpation, falsification, répudiation, divulgation d’informations, déni de service, élévation de privilège (STRIDE). Dans ASP.NET Web Forms, vous pouvez ajouter des points d’extensibilité et des options de configuration qui vous permettent de personnaliser différents comportements de sécurité dans ASP.NET Web Forms.
  • Performances : les performances peuvent être un facteur clé dans un site web ou un projet réussi. ASP.NET Web Forms vous permet de modifier les performances liées au traitement des contrôles de page et de serveur, à la gestion de l’état, à l’accès aux données, à la configuration et au chargement des applications et aux pratiques de codage efficaces.
  • L’internationalisation - ASP.NET Web Forms vous permet de créer des pages web qui peuvent obtenir du contenu et d’autres données en fonction du paramètre de langue préféré pour le navigateur ou en fonction du choix explicite de langue de l’utilisateur. Le contenu et d’autres données sont appelés ressources et ces données peuvent être stockées dans des fichiers de ressources ou d’autres sources. Dans une page ASP.NET Web Forms, vous configurez des contrôles pour obtenir leurs valeurs de propriété à partir de ressources. Au moment de l’exécution, les expressions de ressource sont remplacées par des ressources à partir du fichier de ressources localisé approprié.
  • Débogage et gestion des erreurs - ASP.NET inclut des fonctionnalités pour vous aider à diagnostiquer les problèmes qui peuvent survenir dans votre application Web Forms. Le débogage et la gestion des erreurs sont bien pris en charge dans ASP.NET Web Forms afin que vos applications compilent et s’exécutent efficacement.
  • Déploiement et hébergement - Visual Studio, ASP.NET, Azure et IIS fournissent des outils qui vous aident à déployer et à héberger votre application Web Forms.

Décider quand créer une application Web Forms

Vous devez prendre en compte soigneusement s’il faut implémenter une application web à l’aide du modèle ASP.NET Web Forms ou d’un autre modèle, tel que l’infrastructure MVC ASP.NET. L’infrastructure MVC ne remplace pas le modèle Web Forms ; vous pouvez utiliser l’une ou l’autre infrastructure pour les applications web. Avant de décider d’utiliser le modèle Web Forms ou l’infrastructure MVC pour un site Web spécifique, pesez les avantages de chaque approche.

Avantages d'une application web basée sur des formulaires

L’infrastructure basée sur Web Forms offre les avantages suivants :

  • Il prend en charge un modèle d’événement qui conserve l’état sur HTTP, ce qui apporte des avantages au développement d'applications web métier. L'application basée sur Web Forms fournit des dizaines d'événements pris en charge dans des centaines de contrôles serveur.
  • Il utilise un modèle de contrôleur de page qui ajoute des fonctionnalités à des pages individuelles. Pour plus d’informations, consultez Le contrôleur de page.
  • Il utilise des formulaires basés sur l’état d’affichage ou sur le serveur, ce qui permet de faciliter la gestion des informations d’état.
  • Il fonctionne bien pour les petites équipes de développeurs et de concepteurs web qui souhaitent tirer parti du grand nombre de composants disponibles pour le développement rapide d’applications.
  • En général, il est moins complexe pour le développement d’applications, car les composants (la classe Page , les contrôles, et ainsi de suite) sont étroitement intégrés et nécessitent généralement moins de code que le modèle MVC.

Avantages d’une application web MVC-Based

L’infrastructure MVC ASP.NET offre les avantages suivants :

  • Il facilite la gestion de la complexité en divisant une application en modèle, en mode et en contrôleur.
  • Il n’utilise pas l’état d’affichage ou les formulaires basés sur le serveur. Cela rend l’infrastructure MVC idéale pour les développeurs qui veulent un contrôle total sur le comportement d’une application.
  • Il utilise un modèle de contrôleur frontal qui traite les demandes d’application web via un seul contrôleur. Cela vous permet de concevoir une application qui prend en charge une infrastructure de routage enrichie. Pour plus d’informations, consultez Front Controller.
  • Il offre une meilleure prise en charge du développement piloté par les tests (TDD).
  • Il fonctionne bien pour les applications web qui sont prises en charge par de grandes équipes de développeurs et de concepteurs web qui ont besoin d’un haut degré de contrôle sur le comportement de l’application.