1

MVC および C# コードに固有の、次の DDD の概念に関する書籍またはブログ エントリを探しています。簡単な要約: 特別なリポジトリ メソッドからドメイン モデルを部分的に入力し、変更されたドメイン モデル プロパティのみをクライアントから JSON として送信します。

詳細:

  • Customer オブジェクトはあるが、顧客番号と顧客名のみを含むドロップダウン リストが必要な場合は、特別な Repository メソッドを作成して Customer の完全な IList を返しますが、顧客 ID と顧客名のみを入力し、他のプロパティを null のままにするか、空の。これにより、ビュー モデル用に大量の特別なクラスを作成する必要がなくなります。

  • Customer を編集している場合は、Customer オブジェクトをサーバーのセッション変数にキャッシュしてから、Customer DDL とクライアントの最初の顧客オブジェクトを含む View Model を JSON でシリアル化します。サーバ。JSON を MVC コントローラー メソッドの「オブジェクト パラメーター」(JSON からのオブジェクト パラメーターへのポスト データの再構築) に解決すると、非常に便利です。

  • クライアント (JavaScript) は顧客オブジェクトをインスタンス化し、オブジェクトのプロパティを対応する同じ名前の HTML 入力ステートメントにバインドします。一方が変われば、もう一方が変わる。また、IList オブジェクトのテンプレートの概念も取り入れます。また、入力値が変更された場合 (イベント) に、顧客オブジェクト プロパティにダーティのフラグを立てます。

  • 送信時に、変更された (ダーティな) オブジェクト プロパティのみが JSON にシリアル化され、サーバーに送り返されます。変更されていないプロパティは単に除外されます。サーバーは、キャッシュされた顧客オブジェクトを部分的な JSON 顧客オブジェクト (変更のみ) と結合し、結果の顧客オブジェクトをリポジトリに送信して永続化します。

それは本当に素晴らしいコンセプトです。理論について読んで、やることリストを手に入れたいと思います。

4

2 に答える 2

2

(私は本の推薦を提供していません。コメントボックスのスペースが足りなくなったため、回答を投稿するだけです)。

この「パターン」はDDDとはあまり関係がないと思いますが、どれも魅力的に聞こえますね。

とはいえ、これは悲鳴を上げると言わざるを得ません。「この素晴らしいフレームワークに非常に長く懸命に取り組み、最終的にはパフォーマンス上のメリットはほとんどまたはまったくありませんが、それをアプリケーションに組み込んでいきます。長い間。」それか、これを実装しようとすると、アプリケーションが実際に実現されなくなります。

ASP.NET MVCモデルバインディングは、正確に説明する方法ではありませんが、目的の多くのことを実行します。それが行わないのは「ダーティプロパティのみを返送する」ビットですが、正直なところ、すべてのクライアント側ロジックが別のレベルで不十分に設計されているため、これから利益を得る予定のWebアプリケーションはありません(データがページングされていません。個々のビューが重すぎます)。

セッションでオブジェクトをキャッシュしてもメリットはありません。これは、とにかくASP.NETMVCシステムにとっての嫌悪感です。

リポジトリから必要なオブジェクト/コレクションのみをロードすることは、NHibernateなどのファーストクラスのオブジェクトリレーショナルマッピングテクノロジを使用して解決された問題です。

非同期操作用にJSONを保存します。

これはさておき、あなたが説明していることは、アプリケーションのコアが機能するようになると、断片的な方法で実装できる一連の最適化と大まかに考えることができます。これにより、ある程度の価値を確実に提供し、パフォーマンスが許容できない場合にのみ、これらの最適化を実装するという実質的な作業を実行します(そのようなことが証明された場合でも)。

于 2010-07-09T03:03:53.017 に答える
0

Phil Haack は、MVC 2 Futures、JSON バリデーター、Json2.js などについて、彼のブログで多くのことを説明しています。それはすべて非常にうまく機能します。 これは投稿です。

于 2010-10-31T03:20:30.007 に答える