2009-11-19 112 views
3

我們有一個體面大小的MVC項目,目前運行良好,我已經開始考慮一些重構因素,並且我有一個問題。ASP.Net MVC體系結構 - ViewModels的位置

目前數據層和服務層存儲在一個單獨的類庫中。控制器從執行任何邏輯檢查的服務層加載數據對象(由linq2sql生成),然後將它們轉換爲視圖模型(使用自動映射器)。

而不是直接從服務返回ViewModels?

回答

4

絕對不是!

ViewModel的目的是在視圖和「真實」數據對象之間進行調解 - 它完全是視圖特定的。因此,除了GUI以外的其他層甚至不應該知道這種模型存在,如果您想保持清晰的關注點分離......

+0

欲瞭解更多信息,請查看此網址:http://planetofcoders.blogspot.com/2011/06/mvc-architecture-in-aspnet.html – 2011-06-05 08:40:53

2

我會說不。這項服務的重點在於它可以被許多處理業務層的不同項目使用。我希望這是根據您的業務對象。視圖模型特定於MVC應用程序,因此,我希望它們與服務層分離。請注意,它們通常包含應用程序的業務和「內務」數據,並可封裝多個業務對象。我想我會繼續在你的控制器中轉換它們。

+0

這就是我的想法。謝謝,我會留下其他意見。 – LiamB 2009-11-19 11:44:22