Share via


Vue d'ensemble du précompilation de projet d'application Web ASP.NET

Par défaut, les fichiers de code d'un projet d'application Web sont précompilés dans un assembly unique à l'aide de Microsoft Build Engine (MSBuild). Les pages Web ASP.NET (.aspx), les contrôles utilisateur (.ascx) et les vues Razor MVC (.cshtml et .vbhtml) sont compilés dynamiquement sur le serveur par le compilateur ASP.NET. Vous pouvez éventuellement précompiler des pages Web, des contrôles utilisateur et des vues Razor.

Notes

Cette rubrique s'applique uniquement aux projets d'application Web.Pour plus d'informations sur la différence entre les projets d'application Web et les projets de site Web, consultez Projets d'application Web et projets de site Web dans Visual Studio.Pour plus d'informations sur la précompilation de projets de site Web, consultez ASP.NET Web Site Project Precompilation Overview.

Modèle de compilation

Tous les fichiers de code (fichiers autonomes, code-behind et de classe de concepteur) du projet sont précompilés dans un assembly unique. Par défaut, cet assembly est généré et conservé dans le dossier Bin. Ce modèle de compilation permettant de créer un assembly unique, vous pouvez spécifier des attributs, tels le nom de l'assembly et la version. Vous pouvez également spécifier l'emplacement de l'assembly de sortie. Pour modifier l'emplacement de l'assembly de sortie, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, cliquez sur Propriétés, puis sur l'onglet Générer. L'onglet Générer comporte un champ nommé Chemin de sortie, dans lequel vous pouvez spécifier le chemin d'accès à l'assembly de sortie.

Un projet d'application Web est défini par un fichier projet et non par un dossier de projet, comme pour un projet de site Web. Le fichier projet fait référence aux fichiers qui sont inclus dans le projet, et inclut les références d'assembly ainsi que d'autres paramètres de métadonnées du projet. Les fichiers situés dans le dossier du projet qui ne sont pas définis dans le fichier projet ne sont pas compilés dans le cadre du projet d'application Web. Les paramètres du projet qui sont ajoutés et modifiés via Visual Studio ou Visual Web Developer Express sont référencés dans le fichier projet (.*proj) qui est généré pour chaque projet.

Pour exécuter et déboguer des pages, vous devez compiler le projet d'application Web complet. Cependant, la génération du projet d'application Web complet peut être rapide, car Visual Studio et Visual Web Developer Express utilisent un modèle de génération incrémentiel qui génère uniquement les fichiers qui ont été modifiés.

Pour plus d'informations, consultez Web Application Projects Overview.

Aa983464.collapse_all(fr-fr,VS.110).gifCompilation de fichiers de classe

Les projets d'application Web utilisent MSBuild pour compiler les fichiers de classe. Ces fichiers de classe sont compilés dans un assembly unique. Par défaut, ils sont placés dans le dossier Bin. Vous pouvez étendre et personnaliser le processus de compilation à l'aide des règles d'extensibilité MSBuild standard. Pour plus d'informations, consultez MSBuild.

Le tableau suivant décrit les types de fichiers de classe du projet d'application Web qui sont compilés en un seul assembly.

Type de fichier de classe

Description

Autonome

Fichiers de classe que vous pouvez créer et ajouter au dossier Bin.

Code-behind

Code défini par l'utilisateur, qui définit l'affichage et d'autres comportement dans les pages Web ASP.NET.

Concepteur

Code qui est généré automatiquement. Vous ne devriez pas modifier le fichier .designer.

Aa983464.collapse_all(fr-fr,VS.110).gifPersonnalisation des options de compilation

Vous pouvez spécifier le nom, la version et d'autres informations de l'assembly de sortie en utilisant les éléments de la page de propriétés Application de la fenêtre Concepteur de projets. Utilisez la page Générer de la fenêtre Concepteur de projets pour spécifier la configuration de build du projet. Par exemple, vous pouvez spécifier la méthode de gestion des erreurs et d'autres informations sur la sortie d'assembly. En outre, vous pouvez ajouter des étapes avant et après génération à exécuter pendant la compilation en définissant des valeurs dans la page de propriétés Événements de build. Pour plus d'informations sur les pages de propriétés, consultez Référence de l'interface utilisateur du Concepteur de projets.

Définition de la propriété Action de génération

Par défaut, MSBuild compile uniquement les fichiers de classe de projets d'application Web lorsque la propriété Action de génération a la valeur Compiler. Toutefois, si un projet d'application Web inclut des fichiers de classe dans le dossier App_Code, ces fichiers de classe sont également compilés par ASP.NET. Ce principe s'applique même si l'action de génération n'a pas explicitement la valeur Compiler.

Notes

Le dossier App_Code existe pour les projets de site Web.Ce dossier n'est en général pas inclus dans les projets d'application Web.Pour plus d'informations sur le dossier App_Code, consultez Shared Code Folders in ASP.NET Web Sites.

Compilation Dynamique

Bien que les fichiers de code du projet soient précompilés dans un assembly unique à l'aide de MSBuild, les pages Web ASP.NET (.aspx), les contrôles utilisateur (.ascx) et les vues Razor MVC (.cshtml et .vbhtml) d'un projet d'application Web sont compilés de manière dynamique sur le serveur par le compilateur ASP.NET. Cela signifie que vous pouvez apporter des modifications restreintes aux pages Web ASP.NET, aux contrôles utilisateur et aux vues Razor de votre site après leur compilation et déploiement. Par exemple, vous pouvez modifier la disposition des contrôles, les couleurs, les polices et les autres aspects d'apparence des pages. Lorsque le site reçoit une première requête pour une page une fois que vous avez apporté une telle modification, ASP.NET recompile les fichiers modifiés.

Vous pouvez définir un contrôle dans le fichier code-behind, à condition que vous le déclariez public ou protégé. Étant donné que la page .aspx hérite du fichier code-behind, la page utilise ce contrôle. Le déplacement de la définition d'un contrôle vers le fichier code-behind est utile dans les situations suivantes :

  • Lorsque le type du contrôle doit être dérivé d'un type ASP.NET intégré.

  • Lorsque vous souhaitez que la portée du contrôle soit différente de la portée par défaut. La portée fait référence au niveau d'accessibilité, tel que public, private, internal, protected et protected internal.

  • Lorsque vous souhaitez ajouter des attributs de métadonnées à la déclaration du contrôle.

  • Lorsque vous souhaitez écrire des commentaires de code XML pour la déclaration du contrôle.

Pour plus d'informations sur l'ajout de contrôles, consultez How to: Add Controls to an ASP.NET Web Page Programmatically.

Déploiement

Par défaut, tous les fichiers de classe sont compilés dans un assembly unique, ce qui signifie que seul cet assembly doit être déployé, avec les fichiers .aspx, .ascx, .cshtml et .vbhtml et les fichiers de contenu statique. Dans ce scénario, le balisage des fichiers .aspx, .ascx, .cshtml et .vbhtml n'est pas compilé dans un code exécutable jusqu'à ce que la page soit demandée par le navigateur.

Toutefois, vous pouvez spécifier d'autres options de compilation et de fusion. Par exemple, vous pouvez précompiler les fichiers precompile.aspx ou vous pouvez spécifier que plusieurs assemblys doivent être créés au lieu d'un. Pour plus d'informations sur les options de compilation et de fusion de projet d'application Web et comment les spécifier, consultez les ressources suivantes :

Pour plus d'informations sur les méthodes de déploiement des projets d'application Web, consultez Organigramme des informations relatives au déploiement Web pour Visual Studio et ASP.NET.

Voir aussi

Concepts

Organigramme des informations relatives au déploiement Web pour Visual Studio et ASP.NET

Projets d'application Web et projets de site Web dans Visual Studio

Autres ressources

MSBuild