.NET 開発ツリーはどのように設定しますか?[閉まっている]
-
09-06-2019 - |
質問
.NET 開発ツリーはどのように設定しますか?私は次のような構造を使用します。
-projectname
--config (where I put the configuration files)
--doc (where I put all the document concerning the project: e-mails, documentation)
--tools (all the tools I use: Nunit, Moq)
--lib (all the libraries used by the solution: ninject or autofac)
--src
---app (sourcefiles)
---test (unittests)
solutionfile.sln
build.csproj
記号「-」はディレクトリを示します。
この点について適切な構造を構築することが非常に重要だと思います。Visual Studio を開いたりサードパーティのライブラリをインストールしたりしなくても、ソース管理システムからソース コードを取得してソリューションをビルドできるはずです。
これについて何か考えはありますか?
解決
JP Boodhoo のブログ投稿「JP Boodhoo」で取り上げられているのと非常に似たレイアウトを使用しています プロジェクトのディレクトリ構造.
他のヒント
その他の StackOverflow の質問を確認してください...
樹木外科医 は、必要なすべての依存関係とスケルトンの NANT ファイルを含むディレクトリ ツリーをセットアップするツールです。そのリンクでは、元の作成者である Mike Roberts による一連のブログ投稿も見つかり、TreeSurgeon が提供する構造の背後にある意図的な選択のいくつかを説明しています。ライブラリとツールの間で重複があってもよい理由、すべての依存関係が存在することが重要である理由など。
しばらく使っていないので、すべての選択肢に同意できるかどうか思い出せませんが、大きく間違っているとは思えません。
次のような構造を使用します。
- 会社名またはコアプロジェクト名
- 支店
- 支店名
- トランクのコピー
- 支店名
- トランク
- デスクトップ
- 参照されたアセンブリ
- 共有
- ソリューション
- テスト
- ウェブ
- 支店
次に、すべてのプロジェクト/ソリューション ファイルが相対パスのみを使用し、分岐が適切に機能することを確認します。Desktop/Webs はそれぞれのタイプのプロジェクト用、Test は単体テスト プロジェクト用、Solutions フォルダーにはソリューション ファイルのみを含むソリューションごとのフォルダーがあります。ReferencedAssemblies には、ソリューションに含まれていないすべてのアセンブリが保持されます (これらは、ソリューションをビルドするたびにビルドしたくないローカル プロジェクトや、rhinomocks や log4net などのサードパーティ アセンブリである場合もあります)。共有は、複数のソリューション間で使用されるコア ライブラリ (データ アクセス、ビジネス ロジックなど) のいずれか用です。
私の職場には複数のプロジェクトがあり、各プロジェクトには次のように独自のサブディレクトリがあります。-proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
ソリューションファイル.sln
セットアップの残りの部分は問題ないようですが、複数のプロジェクト (たとえば、複数のソリューション間の共有ソース ライブラリ) をどのように組み込むかを考える必要があると思います。
あなたの構造を正しく理解していれば、開発ツリーには「tools」と「lib」に関連する重複がたくさんあると思います。ほとんどの場合、これらは、別のプロジェクトで共有される可能性のある外部ツールやライブラリです。
私たちにとってうまく機能するものは次のとおりです。
solutionfile.sln
-src
--projectname
---config
---doc
---source files (structure representing namespaces)
-test
--testprojectname (usually, a test project per source project)
---unit test files (structure mirroing the structure in the source project)
-lib
--libraryname (containing the libraries)
-tools
プロジェクト内にツールがありません。ツールはネットワーク共有にあります。確かに最近のディスク容量は安いですが...来て :)
また、プロジェクト名の下にデータベーススクリプトフォルダーがあります(データ駆動型アプリの場合)
もちろん、どのように設定されているかはそれほど重要ではありませんが、論理的に整理された標準がプロジェクトに合わせて使用され、適切な規律を持って遵守されているかどうかが重要です。これは、ソロでもチームでも役立ちます。
私たちも TreeSurgeon を使用していますが、非常に満足しています。私たちの構造は次のようになります。
支店
- 建てる
- ライブラリ
- 送信元
- <アプリ、テスト、DB移行などのさまざまなSRCディレクトリ
- ツール
トランク
- 同上