私はMVCを初めて使用します。
MVCでビューモデルを処理する3つの方法を詳しく説明したこの短いビットを読みました。
http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx
その要点は私には次のように思われます。
方法1、データベースからオブジェクトを引き出し、それをビューモデルとして使用します。すばやく簡単ですが、複数のテーブルからのデータが必要な場合は、完全に失敗します(方法2がないと回避方法は考えられません)。
方法2、複数のオブジェクトへの参照を持つクラスを作成し、これをビューモデルとして使用します。このようにして、必要なものすべてにアクセスできます。記事によると、ビューが複雑になると、ドメイン/ビューモデルオブジェクト間のインピーダンス不整合が原因で故障します...これが何を意味するのかわかりません。グーグルインピーダンスの不一致は多くのものを返しました。オブジェクトを使用してデータベースのものを表現しているということの要点であり、ものはきれいにマッピングされませんが、おそらく方法1でもこの問題が発生します。私が何であるかわからないない。また、必要なデータを取得するためにビューごとにクラスを作成することは、メンテナンスの観点からは理想的ではなく、選択肢があるかどうかはわかりません。
方法3、まだ頭を悩ませていますが、ドメインモデルに接続されていないクラスにbool addAdditionalを追加した場合、チェックボックスの例が方法2で機能しない理由がよくわかりません。方法3は、ドメインのものを直接返すのではなく、特に必要なプロパティを引き出すだけだと言っているようです。これは良いと思いますが、そうする大きなコンストラクターが必要になるため、保守が難しくなりthis.x = domain.x
ますthis.y = domain.y
。
ビルダー、特にインターフェイスが使用される理由がわかりませんが、引き続き作業を続けます。
編集:私はこれが実際には問題ではないことに気づきました、私の質問は、私の考えは正しいですか?