Étant nouveau dans VS, comment puis-je penser à ces deux concepts, quelle est la différence?
103
Étant nouveau dans VS, comment puis-je penser à ces deux concepts, quelle est la différence?
Une solution est un conteneur pour les projets et suit les dépendances entre les projets.
Je trouve des informations manquantes dans les autres réponses (du moins pour les personnes qui viennent d'autres IDE comme, par exemple, Eclipse). Dire qu'une solution est un conteneur pour des projets n'est qu'une partie de la chose. La caractéristique conceptuelle d'un projet VS (ce qui détermine sa «granularité») est qu'un projet produit une sortie : généralement un exécutable ou une bibliothèque (dll). Donc, si vous allez coder trois exécutables qui utilisent du code associé, vous créerez une solution et au moins trois projets - probablement plus.
Juste pour trouver une métaphore ...
Une solution est comme une maison, un projet comme une pièce. Chaque pièce apporte une fonctionnalité tandis que la maison, contenant de pièces, permet de relier les pièces entre elles et de les organiser de manière appropriée.
Un peu ringard mais je l'ai inventé à la volée, alors supportez-moi :)
la source
Cela n'aide pas que Visual Studio semble rendre les choses plus confuses. "New Project" crée en fait une nouvelle SOLUTION contenant un projet. «Open Project» ouvre en fait une solution contenant un (ou plusieurs) projet. (Le menu fichier dit "Ouvrir projet / solution" mais il ouvre vraiment des solutions. Il n'y a pas de "Fermer le projet" seulement "Fermer la solution" qui est précis.
Ainsi, dans VS, vous travaillez toujours dans une solution. De nombreuses solutions ne contiennent qu'un seul projet et les nouveaux développeurs sont susceptibles de les considérer comme la même chose. Cependant, vous pouvez ajouter d'autres projets dans une solution.
la source
Au cas où quelqu'un déciderait de faire défiler vers le bas aussi loin ... Je pensais que les documents MS faisaient un assez bon travail pour décrire les différences. J'ai copié (et reformulé) les bits pertinents ici:
Une solution a un
.suo
fichier associé qui stocke les paramètres, les préférences et les informations de configuration pour chaque utilisateur ayant travaillé sur le projet.la source
Une solution peut avoir de nombreux projets.
La solution peut également gérer la gestion des dépendances entre ses différents projets ... en s'assurant que chaque projet est construit dans l'ordre approprié pour que la solution finale fonctionne.
la source
Un projet contient des fichiers exécutables et de bibliothèque qui constituent une application ou un composant d'une application.
Une solution est un espace réservé pour les projets liés logiquement qui constituent une application. Par exemple, vous pouvez avoir des projets distincts pour l'interface graphique de votre application, la couche d'accès à la base de données, etc. Les projets seraient des divisions spécifiques pour les fonctionnalités de votre programme, et la solution serait de les regrouper tous sous une seule application.
la source
Les solutions sont des conteneurs pour les projets - vous pouvez également les utiliser pour organiser les éléments utilisés dans différents projets connexes (DLL partagées et autres).
la source
Une solution est un fichier texte lisible dont l'extension est
.sln
et ayant un contenu structuré qui décrit les projets qu'il contient. Un projet est un fichier texte au format XML lisible dont l'extension est.vcxproj
et ayant un contenu structuré selon son schéma XML, et dont le but principal est de contenir la liste des noms de fichiers de codes sources et de leurs dépendances ou références aux codes sources d'autres projets.la source
Pour plus de détails, consultez - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions
Si vous venez d'un arrière-plan Eclipse, vous irez probablement au chemin de construction d'un projet et ajouter une dépendance à un autre projet ou ajouter un fichier jar externe. Dans VS, vous pouvez le faire dans un seul conteneur appelé solution où tous les projets associés sont regroupés.
Par exemple. Supposons que vous construisiez une application Android et iOS dans xamrin, il y aurait du code et des ressources communs qui pourraient aller dans un projet séparé, puis vos projets Android et iOS peuvent dépendre de ce projet de code commun. Vous pourriez également avoir des projets pour tester ces projets, etc.
la source