Bibliothèques de classes portables

Le projet Bibliothèque de classes portable vous permet d'écrire et de générer des assemblys managés qui fonctionnent sur plusieurs plateformes .NET Framework. Vous pouvez créer les classes qui contiennent le code que vous souhaitez partager entre de nombreux projets, tels que la logique métier partagée, puis référencer ces classes à partir de différents types de projets.

À l'aide du projet Bibliothèque de classes portable, vous pouvez générer des assemblys portables qui fonctionnent sans modification sur le .NET Framework, Silverlight, Windows Phone 7 ou des plateformes XNA 360. Sans le projet Bibliothèque de classes portable, vous devez cibler une plateforme unique, puis retravailler manuellement la bibliothèque de classes pour d'autres plateformes. Le projet Bibliothèque de classes portable prend en charge un sous-ensemble d'assemblys à partir de ces plateformes et fournit un modèle Visual Studio qui permet de générer des assemblys qui s'exécutent sans modification sur ces plateformes.

Composants requis

Pour créer un projet Bibliothèque de classes portable, vous devez installer ces composants dans l'ordre suivant :

  1. Visual Studio 2010 Service Pack 1 (SP1)

  2. Portable Library Tools

Assemblys

Les assemblys suivants sont disponibles dans un projet Bibliothèque de classes portable :

  • mscorlib.dll

  • System.dll

  • System.Core.dll

  • System.Xml.dll

  • System.ComponentModel.Composition.dll

  • System.Net.dll

  • System.Runtime.Serialization.dll

  • System.ServiceModel.dll

  • System.Xml.Serialization.dll

  • System.Windows.dll (de Silverlight)

Toutefois, tous ces assemblys ne sont pas pris en charge sur toutes les plateformes. Dans un projet Bibliothèque de classes portable, vous spécifiez les plateformes que vous souhaitez cibler et seuls les assemblys pris en charge pour ces plateformes sont référencés dans votre projet. Si vous essayez de référencer un assembly qui n'est pas pris en charge pour les plateformes que vous avez ciblées, Visual Studio vous signale l'incompatibilité. Les assemblys principaux (mscorlib.dll, System.dll, System.Core.dll et System.Xml.dll) sont pris en charge sur toutes les plateformes.

Le tableau suivant indique les assemblys qui sont pris en charge sur les plateformes disponibles.

Fonctionnalité

Assemblys

.NET Framework 4

Silverlight

Windows Phone 7

Xbox 360

Fondamentaux

mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll

Oui

Oui

Oui

Oui

Managed Extensibility Framework (MEF)

System.ComponentModel.Composition.dll

Oui

Oui

Non

Non

Bibliothèque de classes de réseau (NCL)

System.Net.dll

Oui

Oui

Oui

Non

Sérialisation

System.Runtime.Serialization.dll

Oui

Oui

Oui

Non

Windows Communication Foundation (WCF)

System.ServiceModel.dll

Oui

Oui

Oui

Non

Sérialisation XML

System.Xml.Serialization.dll

Oui

Oui

Oui

Non

Prise en charge du modèle Vue

System.Windows.dll (de Silverlight)

Non

Oui

Oui

Non

Les projets Bibliothèque de classes portable ciblent une combinaison de plateformes. Le tableau suivant indique les fonctionnalités prises en charge pour les combinaisons de plateforme.

Plateformes

Prise en charge

Silverlight et Windows Phone 7

Tout sauf MEF

.NET Framework 4 et Silverlight

Tout sauf la prise en charge du modèle Vue

.NET Framework 4 et Windows Phone 7

Tout sauf la prise en charge du modèle Vue et MEF

.NET Framework 4, Silverlight et Windows Phone 7

Tout sauf la prise en charge du modèle Vue et MEF

Xbox 360 et n'importe quelle autre plateforme

Noyau uniquement

Recherche des membres pris en charge dans la documentation de référence

Vous pouvez chercher les membres pris en charge par le projet Bibliothèque de classes portable dans les rubriques de référence pour .NET Framework Class Library. Dans la table des membres pour une classe, l'icône Bibliothèque de classes portable suivante s'affiche en regard des membres pris en charge.

Pris en charge par la bibliothèque portable

Vous pouvez également effectuer une recherche dans la section Informations sur la version d'une rubrique de référence une remarque qui indique qu'un type ou membre est pris en charge dans le projet Bibliothèque de classes portable.

Prise en charge du motif de modèle Vue

Lorsque vous ciblez Silverlight et Windows Phone 7, vous pouvez implémenter le motif de modèle de vue dans votre solution. Les classes pour implémenter ce modèle se trouvent dans l'assembly System.Windows.dll de Silverlight. L'assembly System.Windows.dll n'est pas pris en charge lorsque vous créez un projet Bibliothèque de classes portable qui cible le .NET framework 4 ou Xbox 360.

Les classes de cet assembly incluent les éléments suivants :

Le .NET Framework 4 contient également ces classes, mais elles sont implémentées dans des assemblys autres que System.Windows.dll. Pour utiliser ces classes avec un projet Bibliothèque de classes portable, vous devez référencer System.Windows.dll et non les assemblys répertoriés dans la documentation du .NET Framework 4.

Création d'un projet Bibliothèque de classes portable

Pour créer un projet Bibliothèque de classes portable, vous créez un projet dans Visual Studio 2010 et sélectionnez le modèle Bibliothèque de classes portable sous Visual C# ou Visual Basic. Si vous ne voyez pas le modèle, assurez-vous que vous avez installé Portable Library Tools.

Sélectionner un projet de bibliothèque portable

Sélection des plateformes à cibler

Par défaut, le projet Bibliothèque de classes portable cible les plateformes suivantes :

  • .NET Framework 4

  • Silverlight 4

  • Silverlight pour Windows Phone 7

Le projet référence seulement les assemblys pris en charge par ces plateformes. Pour sélectionner les plateformes à cibler, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet Bibliothèque de classes portable, puis sélectionnez Propriétés.

La page de propriétés du projet spécifie les plateformes ciblées actuellement.

Propriétés de projet

Pour ajouter ou supprimer des plateformes cibles, cliquez sur Modifier.

Modifier la cible

Lorsque vous modifiez les plateformes cibles, les assemblys référencés dans le projet changent pour correspondre à l'ensemble des assemblys pris en charge pour votre sélection. Si votre projet référence des assemblys qui ne sont pas pris en charge par une des plateformes sélectionnées, vous devez supprimer la référence à l'assembly ou modifier les plateformes cibles. Dans l'Explorateur de solutions, les assemblys qui ne sont pas pris en charge sont signalés par un point d'exclamation (!). L'illustration suivante montre un avertissement pour les assemblys qui ne sont pas pris en charge lorsque la plateforme Xbox 360 est ajoutée aux plateformes ciblées.

Avertissement

À l'aide de Bibliothèque de classes portable

Après avoir généré votre projet Bibliothèque de classes portable, ajoutez simplement une référence à celui-ci à partir des autres projets qui dépendent du projet Bibliothèque de classes portable. Vous pouvez référencer le projet ou des assemblys spécifiques qui contiennent les classes auxquelles vous souhaitez accéder.

Création d'une dépendance

Pour exécuter une application Bibliothèque de classes portable, une mise à jour pour le .NET Framework 4 doit être installée sur votre ordinateur. Cette mise à jour est installée automatiquement avec le Visual Studio 2010 SP1, de sorte que vous pouvez exécuter l'application Bibliothèque de classes portable sans modification supplémentaire sur l'ordinateur que vous avez utilisé pour développer l'application. Pour exécuter l'application sur un autre ordinateur, vous pouvez installer la mise à jour manuellement.

Lorsque vous déployez une application de .NET Framework 4 qui référence un assembly Bibliothèque de classes portable, vous devez spécifier une dépendance sur la mise à jour de 4 .NET Framework. En spécifiant cette dépendance, vous êtes assuré que la mise à jour est installée avec votre application.

  • Pour créer une dépendance avec un déploiement ClickOnce : dans l'Explorateur de solutions, cliquez sur le nœud du projet pour le projet que vous souhaitez publier. (Il s'agit du projet qui référence le projet Bibliothèque de classes portable.) Dans le menu Projet, cliquez sur Propriétés, puis sur l'onglet Publier. Dans la page Publier, cliquez sur le bouton Composants requis. Sélectionnez la mise à jour de .NET Framework 4 comme composant requis.

  • Pour créer une dépendance avec un projet d'installation : dans l'Explorateur de solutions, cliquez sur le projet d'installation. Dans le menu Projet, cliquez sur Propriétés, puis sur l'onglet Composants requis. Sélectionnez la mise à jour de .NET Framework 4 comme composant requis.

Pour plus d'informations sur le déploiement des application du .NET Framework, consultez Guide de déploiement du .NET Framework pour les développeurs.

Déploiement avec Silverlight

Lorsque vous déployez un assembly Bibliothèque de classes portable avec une application Silverlight, vous devez vous assurer que la version minimale du runtime obligatoire pour l'application est définie à la version 4.0.60129.0 ou ultérieure. Vous définissez la valeur du paramètre minRuntimeVersion en incluant <param name="minRuntimeVersion" value="4.0.60129.0" /> dans la page Web qui héberge l'application Silverlight.

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
           type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.60129.0" />
    <param name="autoUpgrade" value="true" />
    <a href="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=https://go.microsoft.com/fwlink/?LinkId=161376
             alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
  </object>
   <iframe id="_sl_historyFrame" 
              style="visibility:hidden;height:0px;width:0px;border:0px">
   </iframe>
</div>

Différences d'API dans le Bibliothèque de classes portable

Pour rendre des assemblys Bibliothèque de classes portable compatibles entre toutes les plateformes prises en charge, certains membres ont été légèrement modifiés dans le Bibliothèque de classes portable. Pour plus d'informations sur les membres modifiés et comment ils l'ont été, consultez Differences API dans la bibliothèque de classes portable.

Voir aussi

Autres ressources

Differences API dans la bibliothèque de classes portable

Historique des modifications

Date

Historique

Motif

Mai 2011

Des informations sur la prise en charge du motif de modèle de vue et la création des dépendances ont été ajoutées.

Améliorations apportées aux informations.

Mars 2011

Ajout d'une rubrique.

Améliorations apportées aux informations.