Qu’est-ce que Web Forms
ASP.NET Web Forms fait partie de l’infrastructure d’applications 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, pages Web ASP.NET et ASP.NET applications monopage.
Web Forms 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, celle-ci 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 des ASP.NET Web Forms. L’environnement de développement intégré (IDE) Visual Studio vous permet de glisser-déplacer des contrôles serveur pour disposer votre page Web Forms. Vous pouvez ensuite facilement définir des propriétés, des méthodes et des événements pour les contrôles sur 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, l’apparence et l’apparence de la page web, etc. Pour écrire du code serveur afin de gérer la logique de la page, vous pouvez utiliser un langage .NET comme Visual Basic ou C#.
Notes
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 utilisant les 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 page Web vers 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, comme Microsoft Visual Basic et Microsoft Visual C#.
- Basé sur Microsoft .NET Framework. Cela offre tous les avantages de l’infrastructure, y compris un environnement managé, la sécurité de type et l’héritage.
- Flexible, car vous pouvez y ajouter des contrôles créés par l’utilisateur et tiers.
ASP.NET Web Forms offre :
- Séparation du code HTML et d’autres codes de l’interface utilisateur de la logique d’application.
- Suite riche 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, le test, 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 se présentent généralement pas lors de la programmation d’applications clientes traditionnelles. Voici quelques-uns des défis à relever :
- 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 des fonctionnalités HTML de base, en particulier si la page a une mise en page complexe, une grande quantité de contenu dynamique et des objets interactifs 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 n’échangent généralement que 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 l’intégralité de la séquence, retraitent 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, sa nature sans état peut devenir un problème.
- Fonctionnalités clientes inconnues : dans de nombreux cas, les applications web sont accessibles à de nombreux utilisateurs à l’aide de 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 également sur tous.
- Complications de l’accès aux données : la lecture à partir d’une source de données et l’écriture dans une source de données dans les applications web traditionnelles peuvent être compliquées et gourmandes en ressources.
- Complications de la scalabilité : dans de nombreux cas, les applications web conçues avec des méthodes existantes ne parviennent pas à atteindre les objectifs de scalabilité en raison du manque de compatibilité entre les différents composants de l’application. Il s’agit souvent d’un point d’échec courant pour les applications dans un cycle de croissance lourd.
Relever ces défis pour les applications web peut nécessiter beaucoup de temps et d’efforts. ASP.NET Web Forms et l’infrastructure 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 les 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 apporter 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 manière à ce que le mécanisme sous-jacent de la capture d’un événement sur le client, de sa transmission au serveur et de l’appel de la méthode appropriée soit automatique et invisible pour vous. Le résultat est une structure de code claire et facile à écrire 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 maintenance de l’état de votre page et de ses contrôles, et vous fournit des moyens explicites de maintenir l’état des informations spécifiques à l’application. Cela s’effectue sans utilisation intensive des ressources du serveur et peut être implémenté avec ou sans l’envoi 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, éliminant ainsi la nécessité de coder explicitement les différences entre les navigateurs. Toutefois, il vous permet toujours de tirer parti des fonctionnalités propres 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 : l’infrastructure de page ASP.NET est basée sur le .NET Framework, de sorte que l’ensemble de l’infrastructure 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 .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 d’un ordinateur avec un seul processeur à une batterie de serveurs Web multi-ordinateurs proprement et sans modifier la logique de l’application.
Fonctionnalités de ASP.NET Web Forms
- Contrôles serveur : les contrôles serveur web ASP.NET sont des objets sur ASP.NET pages Web qui s’exécutent lorsque la page est demandée et qui affichent le balisage 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 des comportements complexes, tels 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 master pages vous permettent de créer une mise en page cohérente pour les pages de votre application. Une seule page maître définit la présentation et le comportement standard voulus pour toutes les pages (ou un groupe de pages) dans votre application. Vous pouvez ensuite créer des pages de contenu individuelles avec le contenu que vous souhaitez afficher. Lorsque les utilisateurs demandent les pages de contenu, ils fusionnent avec la page master pour produire une sortie qui combine la disposition de la page master avec le contenu de la page de contenu.
- L’utilisation des données ASP.NET offre de nombreuses options pour stocker, récupérer et afficher des données. Dans une application ASP.NET Web Forms, vous utilisez des contrôles liés aux données pour automatiser la présentation ou la saisie de données dans des éléments d’interface utilisateur de page web, tels que des tableaux, 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 leurs 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 d’accès. En outre, ASP.NET Web Forms prend en charge OAuth et OpenID. Ces améliorations de l’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 un instance de SQL Server Express LocalDB, le serveur de base de données de développement fourni avec Visual Studio Express 2013 pour le web.
- Script client et infrastructures clientes : vous pouvez améliorer les fonctionnalités basées sur le serveur de ASP.NET en incluant des fonctionnalités de script client dans ASP.NET pages de formulaire web. Vous pouvez utiliser un script client pour fournir une interface utilisateur plus riche et plus réactive aux utilisateurs. Vous pouvez également utiliser un 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 sont pas mappées à des fichiers physiques. Une URL de requête est simplement l’URL qu’un utilisateur entre dans son navigateur pour trouver 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 aider à l’optimisation des moteurs de recherche (SEO).
- Gestion de l’état - ASP.NET Web Forms comprend plusieurs options qui vous aident à préserver 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 pèsent sur celle-ci. 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èges (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 la réussite d’un site web ou d’un projet. ASP.NET Web Forms vous permet de modifier les performances liées au traitement du contrôle des pages et du serveur, à la gestion de l’état, à l’accès aux données, à la configuration et au chargement des applications, ainsi qu’aux pratiques de codage efficaces.
- 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 du choix explicite de la 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 du fichier de ressources localisé approprié.
- Débogage et gestion des erreurs : ASP.NET comprend 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 se 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 déterminer 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 des infrastructures 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, évaluez les avantages de chaque approche.
Avantages d'une application Web basée sur des Web Forms
L'infrastructure basée sur des Web Forms offre les avantages suivants :
- Elle prend en charge un modèle d'événement permettant la conservation de l'état via HTTP, mécanisme qui s'avère particulièrement utile pour le développement d'applications Web métier. L'application basée sur des Web Forms fournit des dizaines d'événements pris en charge dans des centaines de contrôles serveur.
- Elle utilise un modèle de contrôleur de pages qui ajoute des fonctionnalités aux pages individuelles. Pour plus d’informations, consultez Contrôleur de page.
- Il utilise des formulaires d’état d’affichage ou basés sur un serveur, ce qui peut faciliter la gestion des informations d’état.
- Elle est parfaitement adaptée aux petites équipes de concepteurs et de développeurs Web qui souhaitent tirer parti des nombreux 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 (classe Page , contrôles, etc.) sont étroitement intégrés et nécessitent généralement moins de code que le modèle MVC.
Avantages d'une application Web basée sur MVC
L'infrastructure ASP.NET MVC offre les avantages suivants :
- Elle permet de gérer plus facilement la complexité en décomposant une application en modèle, vue et contrôleur.
- Elle n'utilise pas l'état d'affichage ni les formulaires serveur. L'infrastructure MVC s'avère par conséquent idéale pour les développeurs souhaitant contrôler totalement le comportement d'une application.
- Elle utilise un modèle de contrôleur frontal qui traite les requêtes de l'application Web par le biais d'un contrôleur unique. De cette façon, vous pouvez concevoir une application prenant en charge une infrastructure de routage complète. Pour plus d’informations, consultez Contrôleur frontal.
- Elle offre une meilleure prise en charge du développement axé sur des tests.
- 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.