Quelle est la différence entre un projet partagé et une bibliothèque de classe dans Visual Studio 2015?

je regardais les nouvelles fonctionnalités pour Visual Studio 2015 et le projet partagé est venu beaucoup, mais je ne comprends pas comment il est différent d'utiliser une bibliothèque de classe ou une bibliothèque de classe Portable. Quelqu'un peut-il m'expliquer?

Edit: projet partagé est une nouvelle fonctionnalité dans Visual Studio 2015 et est différent d'une bibliothèque de classe Portable. Je comprends ce qu'est une bibliothèque de classe Portable. Ce que j'essaie de comprendre, c'est comment un Projet Partagé diffère d'un La Bibliothèque De La Classe. Voir le lien ci-dessous.

http://www.c-sharpcorner.com/UploadFile/7ca517/shared-project-an-impressive-features-of-visual-studio-201 /

202
demandé sur Indy411 2015-06-04 07:04:29

5 réponses

La différence entre un projet partagé et une bibliothèque de classe, c'est que ce dernier est compilé et l'unité de réutilisation de l'assemblée.

alors que dans le premier cas, l'Unité de réutilisation est le code source, et le code partagé est incorporé dans chaque assemblage qui fait référence au projet partagé.

cela peut être utile quand vous voulez créer des assemblages séparés qui ciblent des plates-formes spécifiques mais qui ont toujours du code doit être partagée.

Voir aussi ici :

la référence du projet partagé apparaît sous le noeud de références dans L'Explorateur de solutions, mais le code et les actifs du projet partagé sont traités comme s'ils étaient des fichiers reliés au projet principal.


dans les versions précédentes de Visual Studio 1 , vous pouvez partager le code source entre les projets par Add - > élément existant et puis choisir de lier. Mais c'était un peu compliqué et chaque fichier source devait être sélectionné individuellement. Avec le passage au support de multiples plates-formes disparates (iOS, Android, etc), ils ont décidé de faciliter le partage des sources entre les projets en ajoutant le concept de projets partagés.


1 cette question et ma réponse (jusqu'à présent) suggèrent que partagé Projects était une nouvelle fonctionnalité de Visual Studio 2015. En fait, ils ont fait leurs débuts dans Visual Studio 2013 Update 2

204
répondu Damien_The_Unbeliever 2017-03-17 21:34:52

j'ai trouvé plus d'informations de ce blog .

  • dans une bibliothèque de classe, lorsque le code est compilé, les assemblages (dlls) sont générés pour chaque bibliothèque. Mais avec le projet partagé il ne contiendra aucune information d'en-tête de sorte que lorsque vous avez une référence de projet partagé il sera compilé dans le cadre de l'application mère. Il n'y aura pas séparé dll créé.
  • dans la bibliothèque de classe vous n'êtes autorisé à écrire C # code tandis que le projet partagé peut avoir n'importe quelle chose comme des dossiers de C# code, des dossiers de XAML ou des dossiers de JavaScript etc.
27
répondu Indy411 2015-06-04 21:57:34

En Court Différences sont

1) PCL ne va pas avoir un accès complet au cadre. net, où as SharedProject A.

2) #ifdef pour de la plate-forme de code - vous ne pouvez pas écrire en mode d'émulation PCL ( #ifdef option n'est pas disponible pour vous dans un PCL parce que c'est compilé séparément, comme son propre DLL, donc au moment de la compilation (lorsque le #ifdef est évalué) il ne sait pas quelle plate-forme il va être de la partie. ) où, comme projet Partagé vous peut.

3) le code spécifique à la plate-forme est obtenu en utilisant L'Inversion du contrôle dans PCL , où comme en utilisant les déclarations #ifdef vous pouvez obtenir le même dans le projet partagé.

un excellent article qui illustre les différences entre PCL vs projet partagé peut être trouvé sur le lien suivant

http://hotkrossbits.com/2015/05/03/xamarin-forms-pcl-vs-shared-project /

16
répondu Venkataramana Madugula 2015-10-30 07:57:15

comme d'autres ont déjà écrit, en bref:

projet partagé

réutiliser au niveau du code (fichier), en tenant compte de la structure du dossier et des ressources

pcl

réutilisation au niveau de l'assemblage

ce qui manquait le plus dans les réponses ici pour moi est l'information sur la fonctionnalité réduite disponible dans un PCL: à titre d'exemple, vous avez opérations de fichiers limitées (il me manquait beaucoup de fichiers.Le projet de plate-forme de Xamarin).

plus de détails

projet partagé :

+ Peut utiliser #if lorsqu'il cible plusieurs plates-formes (E. G. Xamarin iOS, Android, WinPhone)

+ Toutes les fonctionnalités du cadre disponibles pour chaque projet cible (bien qu'elles doivent être compilées sous condition)

o Intègre au moment de la compilation

- Taille légèrement plus grande des assemblages résultants

- Nécessite Visual Studio 2013 Mise à jour 2 ou plus

pcl :

+ génère un assemblage partagé

+ utilisable avec les versions plus anciennes de Visual Studio (mise à jour pré-2013 2)

o lien dynamique

- fonctionnalité limitée (sous-ensemble de tous les projets il est référencé par)

Si vous avez le choix, je vous recommande d'aller pour un projet partagé, il est généralement plus souple et plus puissant. Si vous connaissez vos besoins à l'avance et QU'un PCL peut les satisfaire, vous pourriez suivre cette voie. PCL assure également une séparation plus claire en ne vous permettant pas d'écrire du code spécifique à la plate-forme (ce qui pourrait ne pas être un bon choix pour être mis dans un assemblage partagé en premier lieu).

se concentre sur les deux est lorsque vous ciblez plusieurs plates-formes, vous utilisez normalement juste une bibliothèque ordinaire/projet dll.

12
répondu Andreas Reiff 2015-10-27 09:01:33

du livre VS 2015 succinctement

projets partagés permet de partager le code, les biens et les ressources entre plusieurs types de projets. Plus précisément, les types de projets suivants peuvent servir de référence et consommer des projets partagés:

  • de la Console, Windows Forms, et Windows Presentation Foundation.
  • Windows Store 8.1 apps et Windows Phone 8.1 apps.
  • Windows Phone 8.0 / 8.1 applications Silverlight.
  • Portable Bibliothèques De Classe.

Note:- les projets partagés et les bibliothèques de classe portables (PCL) permettent le code de partage, les ressources XAML, et les biens, mais bien sûr, il ya quelques différences qui peuvent être résumées comme suit.

  • un projet partagé ne produit pas un assemblage réutilisable, il ne peut donc être consommé que de l'intérieur de la solution.
  • partagé le projet prend en charge le code spécifique à la plate-forme, car il prend en charge des variables d'environnement telles que WINDOWS_PHONE_APP et WINDOWS_APP que vous pouvez utiliser pour détecter la plate-forme sur laquelle votre code est en cours d'exécution.
  • enfin, les projets partagés ne peuvent pas dépendre de bibliothèques tierces.
  • par comparaison, un PCL produit un réutilisable .dll bibliothèque et peut avoir des dépendances sur des bibliothèques tierces, mais il ne soutient pas les variables d'environnement de plate-forme
7
répondu Tilak 2015-10-06 09:15:30