Dossiers ou projets dans une solution Visual Studio?

voix
27

Lorsque spliting une solution aux couches logiques, quand est-il préférable d'utiliser un projet distinct sur tout regroupement par un dossier?

Créé 04/08/2008 à 23:00
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
17

Par défaut, toujours juste créer un nouveau dossier dans le même projet

  • Vous obtiendrez l'assemblage simple (sans ILMerge supplémentaire de gymnastique)
  • Plus facile à obscurcir (parce que vous aurez des types et des méthodes moins publiques, idéalement pas du tout)

Séparer votre code source dans plusieurs projets n'a de sens que si vous ...

  • Avoir quelques parties du code source qui font partie du projet, mais pas déployable par défaut ou à tous (tests unitaires, plugins supplémentaires, etc.)
  • Plus de développeurs impliqués et que vous voulez traiter leur travail comme boîte noire consommable. (Pas très recommandé)
  • Si vous pouvez séparer clairement votre projet en couches / modules isolés et que vous voulez vous assurer qu'ils ne peuvent pas consommer croix internes membres. (pas non plus recommandé parce que vous aurez besoin de décider quel aspect est le plus important)

Si vous pensez que certaines parties de votre code source pourrait être réutilisable, encore ne créent pas comme un nouveau projet. Attendez jusqu'à ce que vous voulez vraiment le réutiliser dans une autre solution et l'isoler de projet d'origine, au besoin. La programmation est pas un lego, réutilisant est généralement très difficile et souvent ne se produira pas comme prévu.

Créé 04/08/2008 à 23:45
source utilisateur

voix
8

La séparation des caractéristiques des projets est souvent une optimisation de l'architecture YAGNI. Comment avez-vous souvent réutilisé ces projets distincts, vraiment? Si ce n'est pas un phénomène fréquent, vous compliquer votre développement, la construction, le déploiement et la maintenance pour une réutilisation théorique.

Je préfère de beaucoup séparer dans des dossiers (en utilisant les espaces de noms appropriés) et refactoring pour séparer les projets lorsque vous avez une réutilisation cas d'utilisation de la vie réelle.

Créé 17/08/2008 à 18:35
source utilisateur

voix
6

denis a écrit:

Je pense personnellement que si le code réutilisable est divisé en projets, il est plus simple d'utiliser d'autres endroits que si elle est juste dans les dossiers.

Je suis vraiment d'accord avec cela - si vous pouvez le réutiliser, il devrait être dans un projet distinct. Cela dit, il est également très difficile de réutiliser efficacement :)

Chez, nous avons essayé d'être très simple avec trois projets:

  • MVC projet Web (ce qui fait un bon travail de séparer vos calques dans des dossiers par défaut)
  • projet de base de données pour le contrôle de la source de notre DB
  • Les tests unitaires contre modèles / contrôleurs MVC

Je ne peux pas parler pour tout le monde, mais je suis satisfait de la façon simple, nous avons gardé - des vitesses vraiment builds le long!

Créé 04/08/2008 à 23:42
source utilisateur

voix
4

Je fais habituellement un projet pour l'interface graphique d'un projet pour la logique métier d'un projet d'accès aux données et un projet pour les tests unitaires.

Mais parfois, il est prudent d'avoir une séparation basée sur les services (si vous utilisez une architecture orientée services) tels que l'authentification, des ventes, etc.

Je suppose que la règle que je travaille au large est que si vous pouvez le voir comme un composant qui a une séparation claire des préoccupations alors un autre projet pourrait être prudent. Mais je pense que les dossiers par rapport à des projets pourrait juste être une préférence ou la philosophie.

Je pense personnellement que si le code réutilisable est divisé en projets, il est plus simple d'utiliser d'autres endroits que si elle est juste dans les dossiers.

Créé 04/08/2008 à 23:14
source utilisateur

voix
0

Je pense vraiment qu'il est préférable de diviser le projet aussi bien, mais tout dépend de la taille du projet et le nombre de personnes qui y travaillent.

Pour les grands projets, j'ai projets

  • l'accès aux données (modèles)
  • prestations de service
  • l'extrémité avant
  • essais

Je suis le modèle de Rob Connery et son application pignon sur rue ... semble fonctionner très bien.

mvc-pignon sur rue

Créé 16/09/2008 à 00:45
source utilisateur

voix
0

Si vous allez pour la création de plusieurs projets, assurez-vous que chacun qui ajoute du code à la solution est pleinement conscient de l'intention de les faire et tout ce que vous pouvez pour les amener à comprendre les dépendances entre les projets. Si vous avez déjà essayé de régler le désordre quand quelqu'un est allé et a ajouté des références qui ne devraient pas avoir été là et avec elle eu pendant des semaines, vous comprendrez ce point

Créé 10/09/2008 à 22:36
source utilisateur

voix
0

Séparer votre code source dans plusieurs projets n'a de sens que si vous ... ... Plus de développeurs impliqués et que vous voulez traiter leur travail comme boîte noire consommable. (Pas très recommandé) ...

Pourquoi pas recommandé? Je l'ai trouvé un moyen très utile pour gérer une application avec plusieurs développeurs travaillant sur différentes parties. Fait checkins beaucoup plus facile, surtout en éliminant les fusions. Très rarement deux devs travailler sur le même projet en même temps.

Créé 17/08/2008 à 18:19
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more