7

NHibernate を利用し、DDD の概念を取り入れようとしている WebForms ソリューションの適切なプロジェクト構造として、どのようなものをお勧めしますか?

ルート名前空間とソリューション名が Sample であると仮定します

  • Sample.Domain - ドメイン オブジェクトとマッピング ファイルが含まれています
  • Sample.Repositories - リポジトリと nhibernate 接続構成ファイルが含まれています
  • Sample.Business - ビジネス ロジックが含まれています
  • Sample.Web - 実際の WebForms プロジェクト - すべて プレゼンテーション

私は何を忘れていますか?これらに名前を付けるより標準的な方法はありますか?
このトピックに関する素晴らしいブログ投稿はありますか?

4

4 に答える 4

3

不足しているいくつかのパーツは、ソリューションおよびテスト プロジェクト全体で必要なサービスの中心的な場所のようです。私は通常、次のようなものを持っています:

  • Sample.Core - アプリケーション全体で使用する必要があるサービスとコード
  • Sample.Data - ドメイン クラスとリポジトリ インターフェイス
  • Sample.Data.NHibernate - マッピング ファイル、流暢な構成など、およびリポジトリの実装、基本的にすべてのデータ マッピング レイヤー固有
  • Sample.Services - サービスの実装とインターフェース
  • Sample.Web - Web アプリケーション

テスト プロジェクトの一致するツリーがあります。

  • Tests\Sample.Core.Tests
  • Tests\Sample.Data.NHibernate.Tests
  • 等...

もちろん、プロジェクトによってはツリーがより複雑になります。議論については、 Onion Architectureをチェックしてください。また、ドメイン駆動設計のサンプル プロジェクトをチェックして、そこから何が得られるかを確認することもできます。

于 2009-04-13T22:24:55.863 に答える
2

ネーミングの好みは人それぞれだと思いますが、私は次のようにしています。

  • Sample.Domain - ドメイン オブジェクト、マッピング ファイル
  • Sample.Services - ビジネス ロジックとサービス (およびリポジトリ。ただし、これらを分離することはできました)
  • Sample.Web - Web スタッフ。
  • Sample.Migrations - データ移行。

最近、Ben Scheirman もこれについて投稿しました: Exporting Visual Studio Solutions with Solution Factory

彼は異なる構造を使用していますが、テンプレートを標準化する優れた方法も含まれています。

于 2009-04-13T22:24:05.197 に答える
2

私はシンプルに保ち、特に最初は、プロジェクトごとではなく名前空間ごとに分離するようにしています。私は通常、ソリューションの 3 つのプロジェクトから始めます。

  • Sample - 名前空間 Sample.Model、Sample.Model.Mappings、および Sample.Services が含まれています。
  • Sample.Tests - Sample と同じ構造の単体テストが含まれます。
  • Sample.Web - UI
于 2009-04-14T02:47:42.427 に答える
1

s#arp Architectureでそれがどのように行われるかを見ることができます。その非常に堅固なアーキテクチャ フレームワーク

于 2011-11-30T08:25:45.170 に答える