新しいプロジェクトにDDDを適用しようとしています。 サンプルプロジェクトとしてMicrosoft DDD Nlayerを使用しています。 これは、Microsoft Nlayer DDDではなく、DDDの質問の多くです。 DDDでは、データレイヤーをアプリケーションレイヤーでのみ作成し、ドメインレイヤーでは作成しないとします。しかし、ドキュメントでは、依然としてデータレイヤーをドメインレイヤーから呼び出すことができます(まだそれを避けると言います)。どうやってやるの? Visual Studioの[データレイヤー]フォームの[ドメイン]レイヤーの参照を追加しようとすると、 'このプロジェクトを参照として追加すると循環が発生します。 私はアプリケーション層でデータを取得してからそれをドメイン層に渡すことができますが、それは常にロジックに基づいてデータを取得する必要があるとは限りません。 データにアクセスできない場合は、どのようなロジックをドメインレイヤに追加できますか?ほとんどの時間ロジックは、別のクラスとそのデータに基づいています(同じドメイン内または別のドメイン内)。 私を案内してください。これは、レイヤーが互いにどのように話し合うべきかを知らないということを知らないことです。NLayered DDD(ドメインドリブンデザイン)でレイヤー同士の会話
1
A
答えて
1
これはソフトウェア(少なくともOLTPの種類)の仕組みではありません。使用例を考えて、関係するオブジェクトを考えてみましょう。事前にすべてのデータを照会してください。データを使用してオブジェクトをインスタンス化します。ユースケースを実行するためにオブジェクトを共同させる。変更されたオブジェクトのデータを保存します。以下
例:あなたが一度にあまりにも多くのオブジェクトを変更する場合
public class IncludePhotoInPortfolioHandler {
public void Handle(IncludePhotoInPortfolio useCase) {
var photo = _photoRepo.GetById(useCase.PhotoId);
var portfolio = _portfolioRepo.GetById(useCase.PortfolioId);
portfolio.Include(photo);
}
}
、あなたは間違ってそれをやっています。あなたはあらゆる種類の厄介な問題にぶつかるでしょう。奇妙なケースでは、オブジェクトに存在する識別子に基づいてデータ/オブジェクトをフェッチし、それらの識別子を(何らかの形で)公開し、関連オブジェクトをフェッチする必要があります。
ヒント:代わりに、このNLayered DDDプロジェクトで自分の頭をこだわりの青本でDDD上に読みたいかもしれません。ペデスタルの上にレイヤーを置かないでください。
関連する問題
- 1. ドメインドリブンデザイン(DDD)とデータベース生成レポート
- 2. ユーザー同士の会話を見つける
- 3. iOSアプリ同士の会話をどうすればできますか?
- 4. 隣同士
- 5. 隣同士
- 6. ユーザ同士のチャットシステム
- 7. DDD:レポート用レイヤー(モデル/レポートモデルの表示)
- 8. 空会話ボット会話テーブル
- 9. ボットフレームワーク同時会話のFacebookメッセンジャーバグ
- 10. 照会の会話
- 11. ワトソン会話の前後の会話
- 12. ドメインドリブンデザイン
- 13. ビデオ会話とテキスト会話に同じログインを同時に使用できますか?
- 14. ファイル同士をリンクする
- 15. ワトソンの会話 -
- 16. 2コンピュータ同士がpingできない
- 17. リアルタイムでの会話速度
- 18. 会話でワトソン会話が「失われる」
- 19. ボットフレームワークでエミュレータ上の同じ会話にメッセージを送信
- 20. 会話はコールバック
- 21. は、会話リストクエリ
- 22. get last会話
- 23. mongodb会話システム
- 24. Alexa会話スキルエラー
- 25. ノードレッド/会話サービス
- 26. 会話ボット:インストール
- 27. 終了会話
- 28. Erlangアプリケーション同士の分離方法は?
- 29. カフカノード同士の通信方法は?
- 30. 既存の会話とレイヤーsdkの会話IDを結合するにはどうすればよいですか?