web-dev-qa-db-fra.com

Structure de répertoire pour une solution .NET

Nous avons eu récemment une visite d'entrepreneur qui a remis en question notre méthodologie de structuration des projets. Veuillez noter que je fais spécifiquement référence à la structure du répertoire. Il a suggéré d'utiliser les directives de Microsoft. Je pensais que je serais en mesure de Google "structure de répertoire de projet Microsoft directives .NET" et trouver quelque chose d'utile, mais cela s'est avéré ne pas être le cas. En l'état, nous faisons quelque chose comme ceci:

[Company.System.Feature]
  |-doc
     |Sandcastle project
  |-lib
     |Nuget packages
  |-src
    |-Project1 e.g. web
    |-Project2 e.g. business logic
    |-UnittestProject1
    |-Specs

Le dossier doc contient une solution Sandcastle comme celle décrite ici: https://www.codeproject.com/Articles/15176/Sandcastle-Help-File-Builder (voir: chemins absolus et relatifs). Par conséquent, le dossier doc contient un dossier d'aide, qui contient le fichier d'aide généré. Le dossier lib contient tous les packages Nuget.

Existe-t-il des directives Microsoft qui recommandent comment structurer une solution? J'ai regardé ici: https://stackoverflow.com/questions/789389/project-structure-for-c-sharp-development-effort/789554?noredirect=1#comment86756309_789554 entre autres endroits. La plupart des articles et des questions que j'ai lus semblent avoir été créés en 2007-2009. Je crois que Nuget a été introduit en 2010. Existe-t-il des directives Microsoft? J'ai lu quelque chose appelé Tree Surgeon, mais cela ne semble plus exister: https://archive.codeplex.com/?p=treesurgeon .

J'utilise TFS; Le régulateur de vitesse et le DDD font toute la différence.

19
w0051977

Sur MSDN, il existe de très anciennes directives officielles . Celles-ci sont cependant obsolètes. Comme le dit la page, " Ce contenu est obsolète et n'est plus maintenu. Il est fourni à titre gracieux pour les personnes qui utilisent encore ces technologies. "Je vous recommande donc d'éviter ces consignes.

Il y a eu une tentative de définir une structure de solution commune via Project Scaffold . Ceci est plus orienté vers F # que vers C #. Cela n'a pas vraiment décollé cependant et il n'y a guère de signes de développement des idées ces jours-ci.

L'ensemble de directives le plus actif et le plus à jour est maintenu par David Fowler, qui est développeur chez Microsoft dans l'équipe ASP.NET. Ces directives sont utilisées par de nombreuses personnes au sein de Microsoft, y compris les équipes Roslyn (le compilateur C # et VB.Net). Vous pourriez donc faire bien pire que d'adopter cette approche.

22
David Arno