2009-11-19 91 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