DTO = ViewModel? 質問する

DTO = ViewModel? 質問する

私は NHibernate を使用してドメイン オブジェクトを永続化しています。簡単にするために、プレゼンテーション層とサービス層の両方に ASP.NET MVC プロジェクトを使用しています。

コントローラー クラスからドメイン オブジェクトを XML で返したいと考えています。Stack Overflow の投稿をいくつか読んだ後、DTO が最適な方法だとわかりました。ただし、ViewModel について説明している投稿も見かけました。

質問です: データ転送オブジェクトと ViewModel は同じものですか? それとも ViewModel は DTO のサブパターンの一種ですか?

ベストアンサー1

DTO の標準的な定義は、動作のないオブジェクトのデータ形状です。

ViewModel はビューのモデルです。ViewModel は通常、1 つ以上のオブジェクト (または DTO) からの完全または部分的なデータと、ビューの動作に固有の追加メンバー (ビューで実行できるメソッド、ビュー要素の切り替え方法を示すプロパティなど) で構成されます。ViewModel は、ビューのすべてのデータと動作として考えることができます。ViewModel は、ビジネス オブジェクトまたは DTO に 1 対 1 でマップされる場合と、マップされない場合があります。

ちなみにNHibernate予測特定のビューモデルが永続化されたオブジェクトのデータのサブセットを必要とする場合に便利です。

おすすめ記事