これは何度も繰り返されています。だけでなく、それはかなり実質的な欺瞞ですが、答えは主観的で議論的です。 ViewModelsは、DDDに対する応答と永続性の無知の概念です。
ViewModelsを使用していないと言うのは、DjangoとRailsとほとんどのPHP ORM/MVCフレームワークがそれらの概念について全く気にしないことを無視するという意味です。誰かが他のすべての言語やフレームワークに「間違っている」と言ってもらいたいのですか?
ViewModelsを使用するかどうかは、使用するアーキテクチャースタイルやアプリケーションの目的によって100%異なります。
これは、WebFormアプリケーションでGridViewをドラッグアンドドロップするのが適切であるかのようです。多くのことにかかっています。
あなたがここにいるDRYについての誤解もあります。 WCFサービスのProxyクラスはDRYに違反しますか? ViewModelにロジックが含まれていますか? DRYの主な目的は、重複した論理を意味のある目的で持たないことです。オブジェクトシェイプを共有するいくつかのDTOがそれに違反していますか?
限定されたコンテキストのDDDプリンシパルは、良い読み取りにもなります。 ShoppingCartオブジェクトが倉庫と電子商取引のウェブサイトの設定で異なるように機能する必要がある場合、そのタイプを共有することを意味しますか?唯一の共有機能が価格(価格+税+送料)を合計している場合はどうなりますか?そのためにベースクラスを作成するだけでカップリングが増えますか? GetTotal()のような単純なメソッドの100%DRYであることについての時間/コスト/保守のトレードオフは何ですか?実際にコードベースを維持するための複雑さと全体的なコストを削減する意味で、DRYに違反していますか?
非常に多くの質問で申し訳ありませんが、うまくいけば、質問した質問のニュアンスと複雑さを確認できます。 ;)
私はこれを投稿する前に検索を行い、同様の質問は見つかりませんでした。シルバーライトに関連するものもいくつかありましたが(ビューモデルはまったく別のものです)、レールに関するもの(おそらく多少は関係しますが、同じではないかもしれません)。 DRYは、MVCがモデル化された、レールの主な目標の1つであるため、私はこれを尋ねます。 MVCは、時には価値がある原則について幾分漸化的であるようです。 –
@ミスターマン - http://stackoverflow.com/search?q=viewmodels+DRY+[asp.net-mvc] – jfar
おそらく結果を実際に読むべきです。いずれも適用されません。 –