Ciblage du .NET Framework pour des sites Web

Mise à jour : novembre 2007

La fonctionnalité de multi-ciblage de Visual Studio 2008 vous permet de spécifier la version du .NET Framework que votre site Web ou service Web doit cibler. Cela vous permet d'utiliser Visual Studio 2008 pour modifier des projets Web Visual Studio 2008 existants et nouveaux sans créer involontairement de dépendances d'assembly dans vos projets. Visual Studio 2008 vous permet de générer un site Web qui peut être déployé sur .NET Framework 2.0, .NET Framework version 3.0 ou .NET Framework version 3.5 Service Pack 1. Pour cela, il s'assure que votre projet utilise uniquement les fonctionnalités disponibles dans la version du .NET Framework spécifiée pour le projet.

Cette rubrique contient des informations sur :

Scénarios

Le multi-ciblage de Visual Studio 2008 vous permet cibler un site Web selon une version spécifique du .NET Framework. Par exemple, vous pouvez créer une application Web ASP.NET qui utilise les fonctions de sécurité prises en charge par Windows Communication Foundation (WCF). Si l'application ne requiert pas la prise en charge de LINQ (Language Integrated Query), vous pouvez cibler le .NET Framework version 3.0.

Retour au début

Fonctionnalités de multi-ciblage

Les fonctionnalités de multi-ciblage de Visual Studio 2008 comprennent les éléments suivants :

  • Vous pouvez sélectionner la version du .NET Framework lorsque vous créez un site Web.

  • Visual Studio peut détecter la version du .NET Framework lorsque vous ouvrez un site Web.

    Lorsque Visual Studio détecte qu'un site Web utilise le .NET Framework version 2.0, Visual Studio vous donne la possibilité de cibler le .NET Framework version 3.5 Service Pack 1.

  • Visual Studio filtre les fonctionnalités qui ne s'appliquent pas à la version actuellement ciblée du .NET Framework. Cela inclut des options de menu, des objets Boîte à outils, des processus de compilation et des références d'assembly.

  • Vous pouvez utiliser des propriétés de projet pour choisir une version cible du .NET Framework.

.Bibliothèques .NET Framework

Visual Studio vous permet de cibler les versions suivantes du .NET Framework :

  • .NET Framework version 2.0 La version du .NET Framework incluse avec Microsoft Visual Studio 2005.

  • **.NET Framework version 3.0 **La version du .NET Framework incluse avec le système d'exploitation . Cette version du .NET Framework comprend la prise en charge de Windows Presentation Foundation (WPF), de Windows Communication Foundation (WCF), de Windows CardSpace et de Windows Workflow Foundation.

  • **.NET Framework version 3.5 **La version du .NET Framework incluse par défaut pour Visual Studio. Cette version de .NET Framework prend en charge ASP.NET AJAX et LINQ (Language-Integrated Query).

Retour au début

Contexte

Visual Studio 2008 vous permet de cibler plusieurs versions du .NET Framework depuis un même environnement de développement. Visual Studio 2005 et versions antérieures ciblaient une seule version du .NET Framework. Les développeurs qui souhaitaient écrire des applications pour différentes versions du .NET Framework arrivaient à leurs fins en exécutant plusieurs versions de Visual Studio. Les dépendances du runtime et la compatibilité descendante constituaient des préoccupations clés en matière de multi-ciblage.

Dans Visual Studio 2008, vous pouvez ouvrir un site Web Visual Studio 2005 sans aucune modification apportée à votre code. Toutefois, le fichier projet du site Web sera modifié. Par défaut, les projets Visual Studio 2005 continueront à cibler le .NET Framework 2.0. Cependant, vous pouvez passer à une autre version cible de .NET Framework pour un projet existant afin de tirer parti des nouvelles fonctionnalités proposées dans une version ultérieure du .NET Framework.

Les fonctionnalités du .NET Framework les plus récentes sont incluses dans de nouveaux assemblys. Les assemblys pour les versions antérieures du .NET Framework ne sont pas modifiés.

Création d'un nouveau site Web

Lorsque vous créez un site Web, vous pouvez spécifier la version du .NET Framework à cibler pour votre projet. Les nouveaux projets Visual Studio ciblent automatiquement la version la plus récente du .NET Framework.

La procédure suivante explique comment créer un site Web qui cible une version particulière du .NET Framework.

Pour créer un site Web et spécifier la cible .NET Framework

  1. Dans Visual Studio, dans le menu Fichier, cliquez sur Nouveau site Web.

    La boîte de dialogue Nouveau site Web s'affiche.

  2. Dans la liste des versions, sélectionnez la version du .NET Framework que votre projet doit cibler.

    La liste des modèles affichée dans la boîte de dialogue est filtrée selon le framework sélectionné.

  3. Sous Modèles Visual Studio installés, sélectionnez un type de site Web, tel que Site Web ASP.NET.

  4. Cliquez sur OK.

Ouverture d'un site Web Visual Studio 2005 existant

Visual Studio 2008 vous permet d'ouvrir des projets ou des sites Web créés dans des versions antérieures de Visual Studio sans mettre à jour les projets avec une version plus récente du .NET Framework. Vous pouvez modifier, compiler, générer, déboguer et sauvegarder des projets Visual Studio 2005.

Vous pouvez ouvrir un projet Visual Studio 2005 existant sans cibler une version ultérieure du .NET Framework. À la première ouverture de l'application Web dans Visual Studio 2008, vous serez invité à cibler le site Web pour .NET Framework version 3.5 Service Pack 1. Si vous ne souhaitez pas modifier la version cible de .NET Framework, cliquez sur Non.

Remarque :

Lorsque vous ouvrez un site Web distant, Visual Studio 2008 n'essaie pas de filtrer les versions disponibles selon les versions du .NET Framework installées sur le serveur distant.

Mise à niveau ou rétrogradation de la version cible du .NET Framework pour un site Web existant

La procédure suivante explique comment modifier la version du .NET Framework d'un projet existant afin de cibler une version plus récente ou plus ancienne.

La mise à niveau vers une version plus récente du .NET Framework vous permet de tirer profit de nouvelles fonctionnalités. Rétrograder une application Web vers une version différente du .NET Framework vous permet de cibler la version du .NET Framework installée sur un autre serveur Web.

Si vous rétrogradez un projet, vous devez vous assurer que le projet fonctionne avec la version antérieure du .NET Framework. Cela requiert souvent que vous apportiez manuellement des modifications dans le projet.

Remarque :

Au delà des différentes fonctionnalités disponibles pour chaque version du .NET Framework, lorsque vous modifiez la version du .NET Framework d'une application Web, les différences principales se situent dans le fichier Web.config.

Pour mettre à niveau ou rétrograder la version du .NET Framework pour un site Web

  1. Dans Visual Studio 2008, ouvrez le site Web que vous souhaitez mettre à niveau ou rétrograder.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet puis cliquez sur Pages de propriétés.

    Remarque :

    Pour les projets d'application Web, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés.

  3. Sur la page Propriétés du projet, cliquez sur l'onglet Génération.

    Remarque :

    Pour les projets d'application Web qui utilisent C#, cliquez sur l'onglet Application de la page Propriétés du projet. Pour les projets d'application Web qui utilisent Visual Basic, cliquez sur l'onglet Compilateur de la page Propriétés du projet et cliquez sur Paramètres avancés du compilateur.

  4. Dans la liste déroulante .NET Framework, sélectionnez un numéro de version à cibler.

    Remarque :

    Pour les projets d'application Web, le projet est déchargé puis rechargé dans Visual Studio.

  5. Si vous avez rétrogradé un projet, procédez comme suit.

    1. Supprimez manuellement les références aux composants qui ne font pas partie de la version du .NET Framework ciblée.

      Remarque :

      Vous pourrez voir des erreurs de référence dans votre code à cause de références des assemblys qui ne fonctionnent plus avec la version plus ancienne de .NET Framework. Dans ce cas, vous devez remplacer manuellement toutes les références d'assembly manquantes.

    2. Si le projet contient des références de service, supprimez-les en cliquant avec le bouton droit sur la référence de service puis en cliquant sur Supprimer.

Références d'assembly

Visual Studio vous aide à ajouter des références aux projets Web sans devoir mettre à niveau automatiquement .NET Framework en une version différente.

Lorsque vous ajoutez une référence à un assembly, la boîte de dialogue Ajouter une référence affiche uniquement les assemblys système qui appartiennent à la version cible du .NET Framework. Cela vous empêche d'ajouter involontairement des références à des assemblys qui ne sont pas dans la version cible de .NET Framework.

Remarque :

Vous pouvez modifier manuellement votre fichier projet pour y inclure des références qui appartiennent à une version cible du .NET Framework ultérieure à celle du projet actuel. Toutefois, des avertissements seront générés à la compilation.

Vous pouvez ajouter une référence d'assembly utilisateur à votre projet qui ensuite référence des assemblys système qui ne font pas partie de la version cible de .NET Framework. Dans ce cas, Visual Studio affiche un avertissement. Si vous ignorez cet avertissement, il s'affiche à nouveau au moment de la génération.

Retour au début

Différences entre projets lors du ciblage d'une version du .NET Framework

Cette section s'intéresse aux différences entre projets Web qui ciblent différentes versions du .NET Framework. Ces différences concernent la compilation, la prise en charge d'assemblys et la prise en charge de fonctionnalités. Certaines fonctionnalités de Visual Studio, comme IntelliSense et le déploiement, ne prennent pas en charge le multi-ciblage.

Pour les nouveaux sites Web, la version du .NET Framework que vous sélectionnez détermine les paramètres suivants :

  • les assemblys référencés par défaut ;

  • les espaces de noms inclus par défaut dans les pages Web ASP.NET ainsi que les fichiers de classe ;

  • la version du compilateur utilisé par ASP.NET au moment de l'exécution et à au moment du design pour la compilation dynamique ;

  • les options qui peuvent être sélectionnées dans Visual Studio, tels que les objets, les nouveaux éléments, les références d'assembly, les références Web et les références de service.

Lorsque vous ouvrez un site Web existant, Visual Studio essaie de détecter la version du .NET Framework et de définir le .NET Framework cible des projets. Visual Studio détermine la version du .NET Framework sur les critères suivants.

  • Si des références à des assemblys .NET Framework 3.0 existent, le projet Web cible la version .NET Framework 3.0 au minimum. (Selon d'autres conditions, la cible peut être une version ultérieure.)

  • Si une section compilers du fichier Web.config est mappée à une version de compilateur "v3.5" pour C# ou Visual Basic, le site Web cible .NET Framework 3.5.

  • Si des références à des assemblys .NET Framework 3.5 existent, le site Web cible .NET Framework 3.5.

  • Si le site Web ne répond pas aux critères précédents, il cible .NET Framework version 2.0.

    Remarque :

    Si le projet a été ouvert précédemment ou a été créé par Visual Studio, le numéro de version cible sera déjà stocké dans le projet. Dans ce cas, Visual Studio utilise le numéro de version stocké. Il n'essaie pas de détecter une incompatibilité entre le numéro de version stocké et la version détectée des références et compilateurs.

Sélection d'un modèle de projet

Visual Studio affiche uniquement les modèles de projet qui s'appliquent à la version du .NET Framework actuellement ciblée. Lorsque vous créez un site Web, Visual Studio cible automatiquement le numéro de la version la plus récente du .NET Framework pour permettre l'utilisation des fonctionnalités les plus récentes. Vous pouvez également sélectionner une version cible lorsque vous créez le projet.

Le contenu par défaut du fichier Web.config pour un nouveau site Web est basé sur la version sélectionnée du .NET Framework. Les assemblys référencés par défaut sont spécifiés dans la section assemblies et la version de compilateur est spécifiée dans la section compilers.

Ajout d'objets depuis la Boîte à outils

Visual Studio désactive les éléments de la Boîte à outils qui ne correspondent pas à la version actuellement ciblée du .NET Framework. Le comportement de multi-ciblage de la Boîte à outils suppose que les composants pour une version spécifique du .NET Framework peuvent être utilisés dans les projets de cette version ou de versions ultérieures. Par exemple, les contrôles du .NET Framework 2.0 peuvent être utilisés dans .NET Framework 2.0, .NET Framework version 3.0ou .NET Framework version 3.5 Service Pack 1.

Ajout de nouveaux éléments

Visual Studio filtre les éléments affichés dans la boîte de dialogue Ajouter un nouvel élément selon la version actuellement ciblée du .NET Framework.

Remarque :

Si vous ajoutez un élément existant à un projet, Visual Studio ne vérifie pas que les références et les importations de cet élément correspondent à la version actuellement ciblée du .NET Framework. Aucun avertissement n'est généré. Cependant, si ces références ne peuvent être résolues dans le projet, vous verrez une erreur lorsque vous générerez et exécuterez le projet.

Ajout de références d'assembly

Lorsque vous ouvrez la boîte de dialogue Ajouter une référence, Visual Studio vérifie la version actuellement ciblée de la version du .NET Framework et n'énumère que les assemblys disponibles pour cette version. Les assemblys qui correspondent à une version cible de .NET Framework ultérieure sont visibles, mais désactivés.

Le titre de la boîte de dialogue Ajouter une référence inclut la version cible actuelle du .NET Framework. La boîte de dialogue affichant la version du .NET Framework de chaque assembly, vous pouvez déterminer la version du .NET Framework requise pour ajouter la référence. La boîte de dialogue Ajouter une référence affiche également des informations à propos de l'assembly dans une info-bulle lorsque vous maintenez le pointeur de la souris sur un assembly non disponible.

Remarque :

Si vous ajoutez une référence de système manuellement (sans utiliser la boîte de dialogue Ajouter une référence ), Visual Studio ne vérifie pas la référence. Vous verrez peut-être des avertissements au moment du design ou de la génération indiquant que la référence d'assembly ne fait pas partie de la version actuellement ciblée du .NET Framework.

Ajout de références de service

La boîte de dialogue Ajouter une référence de service est uniquement disponible pour les sites Web qui ciblent .NET Framework 3.5 et dans les projets d'applications Web qui ciblent .NET Framework 3.0 ou .NET Framework 3.5. Si vous souhaitez ajouter une référence de service à un site Web qui cible .NET Framework 3.0, vous pouvez ajouter la référence de service à un projet Bibliothèque de classes. Vous pouvez alors référencer le projet Bibliothèque de classes depuis le projet de site Web.

Remarque :

Les bibliothèques de classes ne peuvent pas être ajoutées à un projet dans Visual Web Developer.

Utilisation de la fonctionnalité IntelliSense

Les services de langage dans Visual Studio 2008 ne ciblent pas de versions spécifiques du .NET Framework. Par conséquent, l'éditeur fournit toujours IntelliSense pour les versions les plus récentes de C# et de Visual Basic.

Les projets Web exposent IntelliSense pour toutes les versions du .NET Framework, quelle que soit celle que cible le projet. Lorsque vous ciblez le .NET Framework version 2.0 ou .NET Framework 3.0, tout code qui référence des fonctionnalités du .NET Framework version 3.5 entraîne des erreurs de compilation.

JScript IntelliSense est indépendant de la version du .NET Framework ciblée par le projet.

Déploiement d'un projet

Les outils Web Publier et Copier de Visual Studio 2008 ne ciblent pas de versions spécifiques du .NET Framework. Visual Studio ne vérifie pas la version du .NET Framework qui s'exécute sur le serveur distant. Ces outils ne peuvent pas vous avertir si vous publiez un projet sur un serveur cible qui contient une version du .NET Framework antérieure à celle que cible votre projet. Dans ce cas, un projet qui cible une version ultérieure du .NET Framework ne s'exécutera pas.

Retour au début

Voir aussi

Concepts

Nouveautés dans ASP.NET et le développement Web

Référence

Retour au début

Autres ressources

Ciblage d'un .NET Framework spécifique