web-dev-qa-db-ja.com

.NETソリューションのディレクトリ構造

最近、請負業者を訪問して、プロジェクトの構造化の方法論に疑問を投げかけました。特にディレクトリ構造について言及していることに注意してください。彼はマイクロソフトのガイドラインを使用することを提案しました。私は、Googleの「Microsoftガイドライン.NETプロジェクトディレクトリ構造」を参考にして役立つ情報を見つけることができると思いましたが、これは事実ではありませんでした。現状では、次のようなことをしています。

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

Docフォルダーには、ここで説明されているようなSandcastleソリューションが含まれています。 https://www.codeproject.com/Articles/15176/Sandcastle-Help-File-Builder (参照:絶対パスと相対パス)。したがって、docフォルダーには、生成されたヘルプファイルを含むHelpフォルダーが含まれています。 libフォルダーにはすべてのNugetパッケージが含まれています。

ソリューションの構築方法を推奨するMicrosoftのガイドラインはありますか?私はここを見てきました: https://stackoverflow.com/questions/789389/project-structure-for-c-sharp-development-effort/789554?noredirect=1#comment86756309_789554 他の場所の中で。私が読んだ記事や質問のほとんどは2007年から2009年に作成されたようです。 Nugetは2010年に導入されたと思います。Microsoftのガイドラインはありますか?私はTree Surgeonと呼ばれるものについて読みましたが、これはもう存在しないようです: https://archive.codeplex.com/?p=treesurgeon

私はTFSを使用しています。クルーズコントロールとDDDが違いをもたらします。

19
w0051977

MSDNでは、いくつかの非常に古い公式ガイドラインがあります 。しかし、これらは時代遅れです。このページに記載されているように、「このコンテンツは古くなっており、現在はメンテナンスされていません。これらのテクノロジーをまだ使用している個人のために提供されています。 「したがって、これらのガイドラインは避けることをお勧めします。

Project Scaffold を介して共通のソリューション構造を定義する試みがありました。ただし、これはC#よりもF#を指向しています。それは本当に離陸しなかったし、最近のアイデアの発展の兆しはほとんどありません。

最もアクティブで最新のガイドラインセット は、ASP.NETチームのMicrosoftの開発者であるDavid Fowlerによって管理されています。これらのガイドラインは、Roslyn(C#およびVB.Netコンパイラー)チームを含む、Microsoft内の多くの人によって使用されています。したがって、そのアプローチを採用するよりもはるかに悪いことができます。

22
David Arno