Partage de code de projets partagés

Les projets partagés vous permettent d’écrire du code commun référencé par un certain nombre de projets d’application différents. Le code est compilé dans chacun des projets qui le référencent et peut inclure des directives de compilateur permettant d’incorporer des fonctionnalités propres à la plateforme dans la base de code partagée.

Les projets partagés (parfois appelés projets de ressources partagées) vous permettent d’écrire du code partagé entre plusieurs projets cibles, y compris des applications Xamarin.

Ils prennent en charge les directives du compilateur afin que vous puissiez inclure de manière conditionnelle du code spécifique à la plateforme à compiler dans un sous-ensemble des projets qui font référence au projet partagé. Il existe également la prise en charge de l’IDE pour vous aider à gérer les directives du compilateur et à visualiser l’apparence du code dans chaque application.

Si vous avez utilisé la liaison de fichiers dans le passé pour partager du code entre des projets, les projets partagés fonctionnent de la même manière, mais avec une prise en charge de l’IDE beaucoup plus améliorée.

Qu’est-ce qu’un projet partagé ?

Contrairement à la plupart des autres types de projet, un projet partagé n’a pas de sortie (au format DLL), au lieu de cela, le code est compilé dans chaque projet qui le référence. Cela est illustré dans le diagramme ci-dessous : conceptuellement, tout le contenu du projet partagé est « copié dans » chaque projet référençant et compilé comme s’il en faisait partie.

Architecture de projet partagé

Le code d’un projet partagé peut contenir des directives de compilateur qui activent ou désactivent des sections de code en fonction du projet d’application qui utilise le code, ce qui est suggéré par les zones de plateforme colorées du diagramme.

Un projet partagé n’est pas compilé seul. Il existe uniquement sous la forme d’un regroupement de fichiers de code source pouvant être inclus dans d’autres projets. Lorsqu’il est référencé par un autre projet, le code est efficacement compilé dans le cadre de ce projet. Les projets partagés ne peuvent référencer aucun autre type de projet (y compris d’autres projets partagés).

Notez que les projets d’application Android ne peuvent pas référencer d’autres projets d’application Android. Par exemple, un projet de test unitaire Android ne peut pas référencer un projet d’application Android. Pour plus d’informations sur le projet partagé.

Procédure pas à pas Visual Studio pour Mac

Cette section explique comment créer et utiliser un projet partagé à l’aide de Visual Studio pour Mac. Pour obtenir un exemple complet, reportez-vous à la section Exemple de projet partagé .

Création d’un projet partagé

Pour créer un projet partagé, accédez à Fichier > nouvelle solution... (ou cliquez avec le bouton droit sur une solution existante et choisissez Ajouter > un nouveau projet...) :

solutionNouvelle

Dans l’écran suivant, choisissez le nom du projet, puis cliquez sur Créer.

Un nouveau projet partagé s’affiche ci-dessous . Notez qu’il n’existe aucun nœud références ou composants ; ils ne sont pas pris en charge pour les projets partagés.

Projet partagé vide

Pour qu’un projet partagé soit utile, il doit être référencé par au moins un projet pouvant être généré (par exemple, une bibliothèque ou une application iOS ou Android, ou un projet PCL). Un projet partagé n’est pas compilé lorsqu’il n’a rien de référence. Par conséquent, les erreurs de syntaxe (ou toute autre) ne sont pas mises en surbrillance tant qu’elles n’ont pas été référencées par autre chose.

L’ajout d’une référence à un projet partagé s’effectue de la même façon que le référencement d’un projet de bibliothèque standard. Cette capture d’écran montre un projet Xamarin.iOS faisant référence à un projet partagé.

Référence de projet à Projet partagé

Une fois que le projet partagé est référencé par une autre bibliothèque ou application, vous pouvez générer la solution et afficher les erreurs éventuelles dans le code. Lorsque le projet partagé est référencé par deux ou plusieurs autres projets, un menu s’affiche en haut à gauche de l’éditeur de code source qui indique les projets qui font référence à ce fichier.

Options de projet partagé

Lorsque vous cliquez avec le bouton droit sur un projet partagé et choisissez Options , il y a moins de paramètres que d’autres types de projets. Étant donné que les projets partagés ne sont pas compilés (seuls), vous ne pouvez pas définir les options de sortie ou de compilateur, les configurations de projet, la signature d’assembly ou les commandes personnalisées. Le code d’un projet partagé hérite efficacement de ces valeurs de ce qui les référence.

L’écran Options s’affiche ci-dessous . Le nom du projet et l’espace de noms par défaut sont les deux seuls paramètres que vous allez généralement modifier.

Options de projet partagé

Exemple de projet partagé

L’exemple Tasky utilise un projet partagé pour contenir le code commun utilisé par les applications iOS, Android et Windows Phone. Les fichiers de SQLite.cs code source et TaskRepository.cs utilisent des directives du compilateur (par exemple #if __ANDROID__) pour produire une sortie différente pour chacune des applications qui les référencent.

La structure complète de la solution est illustrée ci-dessous (respectivement dans Visual Studio pour Mac et Visual Studio) :

Le projet Windows Phone peut être parcouru à partir de Visual Studio pour Mac, même si ce type de projet n’est pas pris en charge pour la compilation dans Visual Studio pour Mac.

Les applications en cours d’exécution sont illustrées ci-dessous :

Exemples iOS, Android Windows Phone

Résumé

Ce document décrit le fonctionnement des projets partagés, la façon dont ils peuvent être créés et utilisés à la fois dans Visual Studio pour Mac et Visual Studio, et a présenté un exemple d’application simple qui illustre un projet partagé en action.