Vue d'ensemble de la classe de page ASP.NET

Mise à jour : novembre 2007

Lorsqu'une page ASP.NET est demandée et qu'elle restitue la balise à un navigateur, le code qui s'exécute ne correspond pas uniquement au code que vous avez créé pour votre page. Au moment de l'exécution, ASP.NET génère et compile une ou plusieurs classes qui exécutent en réalité les tâches requises pour exécuter la page. Cette rubrique fournit une vue d'ensemble du code généré au moment de l'exécution.

Génération et exécution du code de la classe de page

Une page ASP.NET s'exécute en tant qu'unité, en associant les éléments côté serveur d'une page, par exemple les contrôles, au code de gestion d'événements que vous avez écrit. Il n'est pas nécessaire de précompiler les pages dans des assemblys. ASP.NET compile dynamiquement les pages et les exécute à la première demande d'un utilisateur. Si des modifications sont apportées à la page ou aux ressources dont dépend la page, la page est recompilée automatiquement. La ou les classes créées par le compilateur dépendent du fait que la page utilise le modèle à fichier unique ou le modèle code-behind.

ASP.NET prend aussi en charge la précompilation d'un site Web pour améliorer les performances, contrôler les erreurs et prendre en charge le déploiement de site. Pour plus d'informations, consultez Vue d'ensemble de la précompilation du site Web ASP.NET. La précompilation fonctionne pour les modèles de page à fichier unique ou à code-behind, et la sortie du compilateur est identique pour les deux modèles.

Pages à fichier unique

Dans une page à fichier unique, la balise, les éléments côté serveur et le code de gestion d'événements sont tous contenus dans un fichier .aspx unique. Lorsque la page est compilée, le compilateur génère et compile une nouvelle classe dérivée de la classe Page de base ou une classe de base personnalisée définie avec l'attribut Inherits de la directive @ Page. Par exemple, si vous créez une nouvelle page Web ASP.NET nommée SamplePage1 dans le répertoire racine de votre application, une nouvelle classe nommée ASP.SamplePage1_aspx est dérivée de la classe Page. Pour les pages des sous-dossiers d'application, le nom du sous-dossier est intégré à la classe générée. La classe générée contient les déclarations des contrôles de la page .aspx, ainsi que vos gestionnaires d'événements et autre code personnalisé.

Après la génération de la page, la classe générée est compilée dans un assembly, puis l'assembly est chargé dans le domaine d'application, et la classe de page est instanciée et exécutée pour restituer la sortie dans le navigateur. Si vous apportez des modifications à la page qui affectent la classe générée – en ajoutant des contrôles ou en modifiant le code – le code de la classe compilée est invalidé et une nouvelle classe est générée. Pour plus d'informations sur la compilation dans ASP.NET, consultez Vue d'ensemble de la compilation ASP.NET.

L'illustration suivante présente le modèle d'héritage pour la classe de page dans une page Web ASP.NET à fichier unique :

Pages code-behind

Dans le modèle code-behind, le balisage de la page et les éléments côté serveur, y compris les déclarations de contrôle, figurent dans un fichier .aspx, tandis que le code de votre page se trouve dans un fichier de code distinct. Ce fichier de code contient une classe partielle,autrement dit une déclaration de classe contenant le mot clé partial (Partial en Visual Basic) qui indique que ce fichier contient uniquement une partie du code qui compose la classe complète de la page. Dans la classe partielle, vous ajoutez le code requis par votre application pour la page. Cela inclut généralement les gestionnaires d'événements, mais également les méthodes ou les propriétés dont vous avez besoin.

Le modèle d'héritage pour les pages code-behind est un peu plus complexe que pour les pages à fichier unique. Il se présente comme suit :

  1. Le fichier code-behind contient une classe partielle qui hérite d'une classe de page de base. La classe de page de base peut être la classe Page, ou une autre classe dérivée de Page.

  2. Le fichier .aspx contient un attribut Inherits dans la directive @ Page qui pointe sur la classe partielle code-behind.

  3. Lorsque la page est compilée, ASP.NET génère une classe partielle basée sur le fichier .aspx ; cette classe est une classe partielle du fichier de classe code-behind. Le fichier de classe partielle généré contient des déclarations pour les contrôles de la page. Cette classe partielle permet d'utiliser votre fichier code-behind dans le cadre d'une classe complète sans qu'il soit nécessaire de déclarer explicitement les contrôles.

  4. Enfin, ASP.NET génère une autre classe qui hérite de la classe générée au cours de l'étape 3. Cette seconde classe générée contient le code requis pour générer la page. La seconde classe générée et la classe code-behind sont compilées dans un assembly qui s'exécute pour restituer la sortie dans le navigateur.

L'illustration suivante présente le modèle d'héritage pour la classe de page dans une page Web ASP.NET code-behind :

Voir aussi

Concepts

Modèle de code des pages Web ASP.NET