5

プロジェクトのディレクトリ構造に関するベスト プラクティスを考え出そうとしています。

私の最近の考えは、プロジェクトのルート ディレクトリにクラスがあってはならないということです。すべてのクラスは、次のディレクトリのいずれかに配置する必要があります

  • UI
  • ビジネスオブジェクト
  • ビジネスの論理
  • データアクセス

ルートレベルに物事を置くためのユースケースがあるかどうか、または収まらないクラスを見つけるかどうか、他の人が考えていることを聞きたいです

4

5 に答える 5

8

C#について話している場合は、DAL、BLL、GUIを1つのプロジェクトではなく別のプロジェクトに分離します。そして、1つの解決策があります。これにより、各コードファイルがプロジェクトの1つに含まれるようになります。

例を追加しました:

  • 解決策:ProjectName
    • プロジェクト:DAL(名前空間:ProjectName.DAL)
      • フォルダ:リポジトリ(名前空間:ProjectName.DAL.Repositories)
      • フォルダ:契約(名前空間:ProjectName.DAL.Contracts)
      • ファイル:エンティティマッピング構成
    • プロジェクト:BLL(名前空間:ProjectName.BLL)
      • フォルダー:サービス(名前空間:Project.BLL.Services)
      • フォルダ:エンティティ(名前空間:Project.BLL.Entities)
      • ファイル:IoC構成クラス/一般的なビジネスロジック
    • プロジェクト:共有(名前空間:ProjectName.Shared)
      • ファイル:アプリケーション全体での一般的な共有ロジック(たとえば、InvalidIdentifier定数)
      • このプロジェクトは、ソリューション内の他のプロジェクトを参照しないでください。
    • プロジェクト:Webサイト(名前空間:ProjectName.Website)
      • asp.netWebサイトのUI
    • プロジェクト:Winforms(名前空間:ProjectName.Winforms)
      • WinFormsUI

可能であれば、Webサイトとwinformsプロジェクトにアプリケーションに関連する名前を付ける必要があります。

于 2008-11-22T12:58:55.567 に答える
1

このブログは 3 年前のものですが、興味深い読み物を提供するはずです。ディレクトリ構造以外のアイデアも得られるかもしれません。

于 2008-11-22T12:13:24.693 に答える
0

ルート フォルダーに入れるファイルは、Program.csProgram.ico (実行可能なアプリケーションの場合) だけです。

于 2008-11-22T12:16:37.603 に答える
0

私はしませんが、ディレクトリ構造とは関係ありません (私にとっては)。すべてのコードを意味のある名前空間に配置したい。

于 2008-11-22T13:45:39.170 に答える
0

私は常にプロジェクトの例外の基本クラスをルートに配置します。

于 2008-11-23T15:46:12.813 に答える