Conversion de solutions Web et de fichiers de projets

Mise à jour : novembre 2007

Visual Studio 2005 modifie le modèle de projet Web à bien des égards. Par exemple, un fichier projet n'est plus nécessaire, car tous les fichiers du dossier d'application Web sont considérés comme partie intégrante du projet Web.

Le nouveau modèle de projet Web affecte la conversion des fichiers tels que les pages Web Forms ASP.NET (fichiers .aspx), les contrôles utilisateur ASP.NET (fichiers .asxc), le fichier Global.asax et le fichier Web.config. Les modifications exactes apportées à ces fichiers dépendent du langage de programmation du projet converti.

Visual Studio 2005 modifie le modèle code-behind afin qu'il utilise des classes partielles, ce qui permet à une classe de couvrir plusieurs fichiers. Dans le modèle code-behind précédent, le fichier .aspx hérite d'un fichier de classe compilé créé à partir du fichier code-behind correspondant (.aspx.vb ou .aspx.cs). Dans le nouveau modèle code-behind, le fichier .aspx hérite d'une classe compilée qui se compose de son fichier .aspx.vb ou .aspx.cs correspondant, et d'un fichier stub qui est généré à partir du fichier .aspx et qui définit les déclarations de champs pour les contrôles utilisés dans le fichier .aspx. Cette modification permet au code généré automatiquement d'être séparé du code de l'utilisateur. Les contrôles utilisateur (.ascx) et les fichiers code-behind des contrôles utilisateur sont traités de la même façon. Pour plus d'informations sur le modèle code-behind, consultez Modèle de code des pages Web ASP.NET.

Visual Studio 2005 permet au modèle de compilation de produire non plus un assembly, mais de nombreux assemblys. Chaque page Web et contrôle utilisateur ASP.NET peuvent être compilés dans leur propre assembly. Cette modification permet plus de scénarios de déploiement, tels que la publication de votre code source sur le serveur et la compilation dynamique de parties de votre application Web par ce code, si nécessaire.

Fichiers code-behind

Les modifications suivantes sont apportées aux pages Web ASP.NET et aux contrôles utilisateur pendant la conversion au nouveau modèle code-behind de la version 2.0 d'ASP.NET :

  • L'attribut CodeBehind de la directive @ Page est remplacé par un attribut CodeFile.

  • Un attribut Inherits est ajouté à la directive @ Page pointant vers le fichier de classe associé avec lequel réaliser la compilation.

  • Toutes les définitions de classe code-behind sont modifiées pour implémenter le mot clé Partial.

  • Les déclarations de membre pour les contrôles utilisateur sont supprimées de la page code-behind. Dans le modèle avec lequel réaliser la compilation, les instances des contrôles utilisateur sont créées automatiquement à partir du code déclaratif.

  • Les événements sont liés aux contrôles à l'aide de la syntaxe déclarative. Par exemple, l'événement Click d'un contrôle Button est lié au contrôle en ajoutant un attribut OnClick à l'élément asp:button dans le code déclaratif. Les délégués et le mot clé Handles de Visual Basic sont supprimés dans les méthodes. Les délégués ne sont pas supprimés pour les membres qui ne sont pas représentés dans le code déclaratif, tels que les délégués des contrôles créés dynamiquement.

  • Les déclarations de membre dans les fichiers de classe (mais pas dans les classes de page) qui sont marquées comme Friend ou Internal sont transformées en Public.

  • Les points d'arrêt de débogueur ne sont pas convertis et ils n'apparaîtront pas dans les fichiers convertis.

    Remarque :

    Si une page Web ou un contrôle utilisateur ne dispose pas d'attribut CodeBehind dans la directive @ Page, il n'est pas converti. De la même façon, les pages Web ou les contrôles qui contiennent un attribut Src restent intacts.

Fichiers de code autonomes

Les modifications suivantes sont apportées aux fichiers de code autonomes :

  • Les fichiers de code autonomes sont déplacés vers le répertoire App_Code.

  • Les déclarations de membres marquées Friend ou Internal ont été modifiées en Public. Cette modification est nécessaire, car en présence de plusieurs assemblys, le niveau d'accès doit permettre aux membres d'être visibles à partir d'assemblys autres que celui qui contient le fichier de code autonome compilé.

  • Les appels à la méthode Type.GetType sont modifiés pour utiliser la méthode BuildManager.GetType. La méthode BuildManager.GetType recherche des types dans des assemblys de niveau supérieur.

  • Les points d'arrêt de débogueur ne sont pas convertis et ils n'apparaîtront pas dans les fichiers convertis.

Paramètres du concepteur

Les paramètres d'une page qui s'appliquent au concepteur sont gérés de différentes façons pendant la conversion :

  • L'attribut MS_POSITIONING (mise en page fluide ou présentation grille) est laissé en place et Visual Studio conserve ce paramètre avec les attributs de positionnement absolu des contrôles individuels. Toutefois, par défaut, les nouvelles pages de Visual Studio utilisent la mise en page fluide et n'incluent pas l'attribut MS_POSITIONING.

  • La balise <meta> du langage de script client par défaut reste intacte.

Fichier Global.asax

Lorsque le fichier Global.asax est converti, son fichier code-behind est déplacé vers le répertoire App_Code. Le processus de conversion apporte les modifications suivantes :

  • Les attributs CodeBehind et Inherits sont supprimés de la directive @ Application - Global.asax.

  • Un attribut Language est ajouté à la directive @ Page, s'il n'y est pas déjà spécifié.

  • Pour Visual Basic, une instruction Namespace est ajoutée au fichier de classe. L'espace de noms est défini sous l'espace de noms racine du projet Web.

Fichier Web.config

Dans Visual Studio 2005, le fichier Web.config prend en charge une plus grande diversité d'éléments que dans Visual Studio .NET. Par exemple, les paramètres de projet qui s'appliquent encore à Visual Studio sont souvent convertis en fichier Web.config. Pour plus d'informations, consultez Conversion de paramètres de projet Web.

Voir aussi

Concepts

Vue d'ensemble des projets d'application Web

Conversion d'un projet Web de Visual Studio .NET

Conversion de paramètres de projet Web

Autres ressources

Syntaxe du fichier Global.asax

Paramètres de configuration ASP.NET

Fichiers de configuration ASP.NET

Syntaxe du fichier Global.asax