7

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

ルート名前空間とソリューション名はサンプル

  • Sample.Domainであると仮定すると - 私のドメインオブジェクトと私のマッピングファイル
  • Sample.Repositoriesが含まれています - 私のリポジトリとNHibernateの接続設定ファイル
  • サンプルが含まれています.Business - 実際のWebフォームプロジェクト - - すべてのプレゼンテーション
私のビジネスロジック
  • Sample.Webが含まれています

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

  • +0

    テストプロジェクトが含まれている必要があります。 thx – BuddyJoe

    +0

    CodeCampServerの動作を見ていた。ソースコードをチェックアウトできません。奇妙なリポジトリがエラーを再配置しました。他に誰もそれをチェックできる?詳細:http://code.google.com/p/codecampserver/source/checkout – BuddyJoe

    +2

    ビジネスロジックはドメイン内にある必要があります。 – Paco

    答えて

    3

    欠けている部分は、ソリューションとテストプロジェクト全体で必要なサービスの中心的な場所と思われます。 - アプリケーション全体で使用することが必要なサービスやコード

  • Sample.Data - ドメインクラスとリポジトリのインターフェース
  • Sample.Data.NHibernate - マッピング

    • Sample.Core:私は通常このような何かを持っていますファイル、流暢な設定など、リポジトリの実装では、基本的に何もデータ・マッピング層特定
    • Sample.Services - サービス実装とインターフェイス
    • Sample.Web - Webアプリケーション

    は、私がテストプロジェクトのマッチングの木があります。Sample.Core.Tests \

    • テストSample.Data.NHibernate.Tests
    • など\
    • テストを...

    もちろん、プロジェクトによってはツリーが複雑になります。ディスカッションについては、Onion Architectureをご覧ください。サンプルプロジェクトはDomain-Driven Designでチェックアウトし、その中から何が得られるかを見てください。

  • +0

    +1クールなアイデア。良いリンク。 – BuddyJoe

    2

    私が発見した誰もが名前を付けるために自分の好みを持って、私が好む:

    • Sample.Domain - ドメインオブジェクト、マッピングファイル
    • Sample.Services - ビジネスロジックとサービス(およびリポジトリを、Iもののこれらを分けることが分かりました)
    • Sample.Web - Web Stuff。
    • Sample.Migrations - データ移行。

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

    彼は別の構造を使用していますが、テンプレートを標準化するための優れた方法もあります。

    +0

    非常にクールです。このソリューションファクトリを試してみる必要があります。 +1 – BuddyJoe

    2

    私はそれをプロジェクトではなくネームスペースで分離することが特に簡単で、最初は特に注意してください。私は通常、ソリューション内の3つのプロジェクトから始めます。

    • サンプル - 名前空間Sample.Model、Sample.Model.Mappings、およびSample.Servicesが含まれています。
    • Sample.Tests - 単体テストを含んでいますが、Sampleと同じ構造になっています。
    • Sample.Web - UI
    +0

    Sample.Model.Mappingsとは何ですか? – BuddyJoe

    +0

    Fluent NHibernateマッピングクラス。 –

    +0

    Gotcha。まだそれを使用していません。ありがとう。 – BuddyJoe

    1

    あなたはそれがs#arp architectureで行われているかを見ることができます。その非常に堅実なアーキテクチャフレームワーク