Introduction aux pages Web ASP.NET
Mise à jour : novembre 2007
Les pages Web ASP.NET vous permettent de créer du contenu dynamique pour votre site Web. Avec une page HTML statique (fichier .htm ou .html), le serveur remplit une demande Web en lisant le fichier et en l'envoyant tel quel au navigateur. En revanche, lorsqu'une personne demande une page Web ASP.NET (fichier .aspx), la page s'exécute en tant que programme du serveur Web. Pendant son exécution, la page peut effectuer toutes les tâches requises par votre site Web, notamment le calcul des valeurs, la lecture ou l'écriture des informations de base de données ou l'appel d'autres programmes. Comme sortie, la page génère de manière dynamique un balisage (éléments au format HTML ou un autre langage de balisage) et envoie cette sortie dynamique au navigateur.
Cette rubrique présente les caractéristiques fondamentales du mode de fonctionnement des pages Web ASP.NET dans les applications Web.
Publications et aller-retour
Les pages ASP.NET s'exécutent comme du code sur le serveur. Par conséquent, pour que la page soit traitée, elle est configurée de façon à être envoyée au serveur lorsque les utilisateurs cliquent sur un bouton (ou, autre possibilité, lorsqu'ils sélectionnent une case à cocher ou interagissent avec d'autres contrôles de la page). Chaque fois, la page est renvoyée à elle-même afin qu'elle puisse exécuter son code serveur et rendre une nouvelle version à l'utilisateur.
Le cycle de traitement d'une page Web ASP.NET est le suivant :
L'utilisateur demande la page. (La page est demandée à l'aide d'une méthode HTTP GET.) La page s'exécute pour la première fois en effectuant un traitement préliminaire si vous l'avez programmée ainsi.
La page affiche de manière dynamique le balisage sur le navigateur, que l'utilisateur voit comme une page Web similaire à n'importe quelle autre page.
L'utilisateur entre les informations ou les choisit dans une liste, puis clique sur un bouton. Si les utilisateurs cliquent sur un lien plutôt que sur un bouton, la page peut simplement passer à une autre, et aucun traitement supplémentaire n'a lieu sur la première page.
La page est publiée sur le serveur Web. (Le navigateur exécute une méthode HTTP POST, laquelle dans ASP.NET est connue sous le nom de publication.) Spécifiquement, la page est renvoyée vers elle-même. Par exemple, si l'utilisateur utilise la page Default.aspx et qu'il clique sur un bouton de celle-ci, la page est publiée sur le serveur avec Default.aspx comme cible.
La page s'exécute à nouveau sur le serveur Web. Les informations que l'utilisateur a entrées ou sélectionnées sont disponibles sur la page.
La page effectue le traitement que vous avez programmé.
La page s'affiche à nouveau sur le navigateur.
Ce cycle continue aussi longtemps que l'utilisateur utilise la page. Chaque fois que l'utilisateur clique sur un bouton, les informations de la page sont publiées sur le serveur Web et la page s'exécute à nouveau. Chaque cycle est connu sous le nom d'aller-retour. Étant donné que le traitement de la page s'effectue sur le serveur Web, toutes les actions pouvant être effectuées par la page nécessitent un aller-retour vers le serveur.
Remarque : |
---|
Une page Web ASP.NET peut exécuter un script client, ce qui ne requiert pas d'aller-retour vers le serveur et qui est utile pour la validation des entrées d'utilisateur et pour certains types de programmation d'interface utilisateur. Pour plus d'informations, consultez Script client dans les pages Web ASP.NET. |
Publication sur plusieurs pages
Dans certaines circonstances, vous souhaitez qu'une page soit publiée sur une autre, et non sur elle-même. Cette opération est connue sous le nom de publication sur plusieurs pages. Par exemple, vous pouvez créer une série de pages qui traitent une commande d'un client. Chaque page peut être publiée sur la suivante dans la séquence. Pour plus d'informations, consultez Publication entre pages dans des pages Web ASP.NET.
Durée de vie de la page
Contrairement aux formulaires des applications bureautiques, une page Web ASP.NET ne démarre pas, s'exécute lorsque l'utilisateur utilise le formulaire et ne se décharge que si l'utilisateur clique sur un bouton Fermer. Il en est ainsi parce que le Web est, par nature, déconnecté. Lorsqu'un navigateur demande une page d'un serveur Web, il n'est connecté au serveur que pour la durée nécessaire au traitement de la demande. Une fois que le serveur Web a affiché une page sur le navigateur, la connexion prend fin. Si le navigateur effectue une autre demande sur le même serveur Web, voire pour la même page, cette demande est traitée comme une nouvelle demande.
La nature déconnectée du Web dicte le mode d'exécution d'une page ASP.NET. Lorsqu'un utilisateur demande une page Web ASP.NET, une nouvelle instance de la page est créée. La page effectue son traitement, affiche le balisage sur le navigateur, puis est ignorée. Si l'utilisateur clique sur un bouton pour effectuer une publication, une nouvelle instance de la page est créée, la page effectue son traitement et est ignorée à nouveau. Ainsi, chaque publication et chaque aller-retour créent une instance de la page.
Pour plus d'informations, consultez Création de pages Web ASP.NET.
Persistance de l'état de la page
Dans un protocole HTTP normal, les seules informations concernant une page dont le serveur dispose sont celles qui sont spécifiées par l'utilisateur à l'aide des contrôles de la page, car le navigateur n'envoie ces informations au serveur que lorsque la page est publiée. Les autres informations, comme les valeurs des variables et les paramètres de propriété, ne sont pas conservées. ASP.NET aide à conserver d'autres informations sur les pages de plusieurs façons :
ASP.NET enregistre les paramètres (propriétés) des contrôles entre deux aller-retour ; cette opération est appelée enregistrement de l'état du contrôle.
ASP.NET fournit des fonctions de gestion d'état afin que vous puissiez enregistrer vos propres variables et informations spécifiques à l'application ou à la session entre deux aller-retour.
ASP.NET peut détecter lorsqu'une page est demandée pour la première fois et lorsqu'elle est publiée, ce qui vous permet d'écrire le programme en conséquence. Par exemple, vous pouvez souhaiter lire les informations d'une base de données quand une page est affichée pour la première fois, mais pas à chaque publication.
Remarque : Il est possible de configurer le serveur pour placer les informations de la page dans le cache afin d'optimiser les pages, mais pour des raisons liées à la programmation des applications, il est plus simple de considérer qu'elles sont supprimées aussitôt que le serveur a fini de les traiter.
Pour plus d'informations, consultez Vue d'ensemble de la gestion d'état ASP.NET.
Programmation de pages Web ASP.NET
Vous pouvez créer le code serveur de vos pages Web ASP.NET en utilisant divers langages du .NET Framework, comme Visual Basic, C# et J#. Les pages Web ASP.NET peuvent contenir un script client qui s'exécute dans le navigateur. Certaines fonctions ASP.NET génèrent le script client et l'injectent dans la page. Dans ce cas, ASP.NET génère toujours ECMAScript (JScript, JavaScript) pour une meilleure fonctionnalité sur plusieurs navigateurs. En outre, vous pouvez ajouter votre propre script client pour une fonctionnalité personnalisée. Ainsi, vous pouvez utiliser n'importe quel langage de script client compatible avec les navigateurs que vous ciblez.
Contrôles serveur
Comme toute page Web, les pages Web ASP.NET peuvent contenir du texte statique. Toutefois, le plus souvent, vous ajouterez des contrôles à la page, comme des zones de texte, des cases à cocher et des boutons. Ces contrôles permettent à l'utilisateur d'interagir avec la page et d'envoyer des informations au serveur lorsque la page est publiée.
ASP.NET fournit une collection de contrôles connus sous le nom de contrôles serveur Web. Les contrôles serveur ASP.NET peuvent être similaires aux éléments de formulaire HTML correspondants. Par exemple, le contrôle ASP.NET TextBox est similaire à une balise <input type="text"> HTML. Toutefois, les contrôles serveur ASP.NET offrent une expérience en programmation plus riche que les éléments HTML. Il existe également des contrôles serveur ASP.NET pour un éventail de fonctions plus large que celui qui est offert par les éléments HTML. Parmi les contrôles serveur que vous pouvez utiliser sur une page Web ASP.NET figurent le contrôle de calendrier, les contrôles liés aux données qui affichent des listes ou des grilles, un contrôle d'ouverture de session pour ajouter une sécurité à votre site, etc.
Pour plus d'informations, consultez Vue d'ensemble des contrôles serveur Web ASP.NET.
Page et événements de contrôle serveur
Une page Web ASP.NET et ses contrôles prennent en charge un modèle d'événement similaire à celui trouvé dans les Windows Forms. Par exemple, lorsque les utilisateurs cliquent sur un contrôle serveur Button d'une page Web ASP.NET, la page est republiée sur le serveur, la page est recréée, et un événement Click est déclenché. Vous pouvez ajouter le code à la page qui répond à cet événement Click.
La page elle-même déclenche des événements de cycle de vie lorsqu'elle est initialisée (événements Page_Init et Page_Load, par exemple), ce qui vous donne la possibilité d'exécuter le code au démarrage de la page. N'oubliez pas que la page est créée et réinitialisée avec chaque aller-retour. Les contrôles individuels peuvent déclencher leurs propres événements. Les contrôles de bouton déclenchent un événement Click, les contrôles de case à cocher et de case d'option déclenchent un événement CheckedChanged et les contrôles de zone de liste et de liste déroulante déclenchent un événement SelectedIndexChanged. Quelques contrôles, comme le contrôle Calendar, déclenchent des événements qui sont plus abstraits que de simples événements Click. Par exemple, le contrôle Calendar déclenche un événement VisibleMonthChanged lorsque les utilisateurs passent à un autre mois.
La plupart des contrôles serveur ASP.NET ne prennent en charge qu'un nombre limité d'événements que vous pouvez gérer dans du code serveur. Pour traiter un événement, la page doit exécuter un aller-retour afin que le choix de l'utilisateur puisse être envoyé à la page pour être traité. Les contrôles serveur n'exposent pas des événements à haute fréquence comme onmouseover, parce que chaque fois qu'un tel événement est déclenché, il se produit un nouvel aller-retour vers le serveur, ce qui affecterait considérablement le temps de réponse de la page. Toutefois, vous pouvez configurer les contrôles serveur ASP.NET pour qu'ils déclenchent des événements côté client comme onmouseover. Dans ce cas, les contrôles ne sont pas publiés sur le serveur et vous créez un script client pour répondre aux événements.
Pour plus d'informations sur la création et l'utilisation d'événements et de gestionnaires d'événements, consultez Gestion des événements serveur dans les pages Web ASP.NET.
Compatibilité des navigateurs
Étant donné que le traitement des pages Web ASP.NET s'effectue sur le serveur Web, les pages Web ASP.NET sont compatibles avec tous les navigateurs ou périphériques mobiles. Une page Web affiche automatiquement les fonctionnalités du balisage conforme au navigateur correct (XHTML ou autre langage de balisage), par exemple les styles et la disposition. Vous pouvez également créer des pages Web dotées de contrôles spécifiquement conçus pour afficher la sortie des périphériques spécifiques, par exemple les périphériques mobiles. Pour plus d'informations, consultez Création de pages Web mobiles ASP.NET.