2009-06-03 8 views
2

ASP.NET MVCについてもっと詳しく作業すると、 "M"またはModelはかなりの混乱を招くようなトピックです。なぜモデルビューコントローラで、アダプタビューコントローラではないのですか? "M"またはModelが明瞭さに欠けている

MVCフレームワークを実際にアダプタビューコントローラに名前変更する必要がありますか?アダプタがビューにデータモデルを配信するのはどこですか?

+0

mirrors-signal-maneuverを忘れないでください。とにかく、デザインパターンについては、一般的にはかなり混乱していると思います。 –

答えて

5

私は本当に名前が何であるかは重要ではないと思います。最もよく開発されたアプリケーションでは、このアセンブリ内のオブジェクトをサポートするために、アプリケーション内に構築されたViewModels(適切にラベル付けするもの)を使用して、データ/モデル/任意のレイヤーを独自のスタンドアロンアセンブリにします。単純なアプリケーションのためのものである必要はありませんが、MVCプロジェクトでモデル内にこれをすべて配置することができます。 「モデル」という言葉は、この意味に柔軟性を持たせるための十分に一般的な用語です。

これは流行語であり、流行語はマーケティングと管理に適しているため、おそらくMVCという名前になります。

+3

buzzwordsが不適切に使用されて大量の混乱を招く... – RSolberg

3

「モデル」という用語は、ドメインモデルとMVCに関しては多くの混乱を招きます。現実には、ドメインモデルの開発に集中しているなら、それはMVCのモデルが指しているものです。あなたが言うように、ViewModelsやPresentersのような概念はアダプターです。 "ModelAdapter"、 "ViewAdapter"、または "EditAdapter"のような用語を持つオブジェクトを参照したいと思います。

ドメインモデルは動作中心のものであり、バインディングなどのUIアクティビティに適していません。それはまさにModelAdapters(ViewModels)のためのものです。

0

MVCの「モデル」は、実際には、基本構造とビューの間でデータを運ぶためのデータコンテナとして機能する「モデル」を表します。モデルをビューに表示することは、コントローラの責任です。実際、これはコントローラの主な責任です。

これは、ASP.NET MVCフレームワークで導入された新しい概念ではありません。このフレームワークは、よく知られたMVCパターンの実装であり、正確なモデル - ビュー - コントローラパターンに従うので、非常に正確に命名される。

MVP、MVVM、およびDMVVMパターンもあります。これらのパターンは、同じ問題の他の選択肢と考えることができます。非常に単純なデータ保持モデルが従うべきものであるため、単純モデルを無視する人はいません。

+2

このモデルは、ほとんどのアプリケーションでデータコンテナではありません。それはあなたのビジネスルールと行動の本拠地です。そのため、UIバインドには適していません。コントローラは、モデルを提供すべきではなく、適合した "ViewModel"またはプレゼンターを提供すべきである。 – jlembke

+1

:)私の意見では... – jlembke

+0

DMVMV DMMVM – Firoso

関連する問題