私はDDDを立ち上げようとしていますが、私の場合ASP.Netにテクノロジースタックによって課される制限があるようです一緒に。たとえばのは、私がのShoppingCartの豊富なクラスを作成しているし、私のShoppingCartのはAddItemメソッド(文字列SKU)とRemoveItem(文字列SKU)の2つのメソッドを持っているとしましょう。今私は、これらの2つの方法で多くの論理を持っているかもしれません。ASP.Netで豊富なドメインモデルをバインドする方法MVC
ASP.Net MVCを使用してShoppingCartをUIにバインドするとどうなりますか?理想的には、ユーザがUIのアイテムを追加または削除するときにAddItemとRemoveItemメソッドを呼び出すといいですが、通常はUIをView Model(POCOクラス)にバインドします。したがって、ユーザーがUIからカートを保存するとき、私は実際のビジネスオブジェクトにマップする必要があるPOCOクラスのリストを取得します。各項目を繰り返し、既存のデータからそれを追跡し、AddItemとRemoveItemメソッドを今すぐ呼び出す必要がありますか?
この場合、操作を実行できるように、そのドメインオブジェクトのインスタンスをそのユーザーのメモリに保持する必要があります。それでも、ビジネスオブジェクトを呼び出すメソッドを決定するためにコントローラのロジックを大量に用意しています。
さらに、これらの行を考えてみると、Winformsと呼ばれる問題が発生しないため、より混乱します.Wordformsでは、さまざまなイベントからDomainオブジェクトのそれぞれのメソッドを簡単に呼び出すことができます。
DDDのような仕事をするために、この写真全体には何が欠けていますか?
Winformsでも、ドメインエンティティは永遠にメモリには残らないでしょう。彼らは必要な時にDBからロードされ、ある時点では永続化され、ガベージコレクトされることが望まれます。 – guillaume31