Asp.net-Mvc

DTO = 視圖模型?

  • December 30, 2009

我正在使用 NHibernate 來持久化我的域對象。為了簡單起見,我使用 ASP.NET MVC 項目作為我的表示層和我的服務層。

我想從我的控制器類中以 XML 格式返回我的域對象。在閱讀了 Stack Overflow 上的一些文章後,我認為 DTO 是要走的路。但是,我也遇到過有關 ViewModel 的文章。

我的問題:數據傳輸對象和視圖模型是一回事嗎?還是 ViewModel 是 DTO 的一種子模式?

DTO 的規範定義是沒有任何行為的對象的數據形狀。

ViewModel 是視圖的模型。ViewModel 通常是來自一個或多個對象(或 DTO)的全部或部分數據以及特定於視圖行為的任何其他成員(可以由視圖執行的方法、指示如何切換視圖元素的屬性等)。您可以將視圖模型視為視圖和行為的所有數據。ViewModel 可能會或可能不會一對一地映射到業務對像或 DTO。

順便說一句,如果某個視圖模型需要來自持久對象的數據子集,NHibernate投影就派上用場了。

引用自:https://stackoverflow.com/questions/1982042