在域模型和MVC模型之间做出区分是一种好方法吗?

时间:2013-09-30 10:32:45

标签: asp.net-mvc architecture

(我是MVC的初学者)

我的意思是拥有域模型的业务逻辑层和带有视图模型和控制器的应用程序服务层,仅从应用程序服务方法获取视图模型 即可。控制器不包含任何逻辑,MVC模型是视图模型(来自应用服务层),其中包含仅与显示相关的逻辑。

我在ASP.NET MVC上看到的任何教程都侧重于在控制器类中使用逻辑,但我认为这样(在大型应用程序中)您可以复制业务逻辑,编写冗余代码。

2 个答案:

答案 0 :(得分:0)

  

在域模型和MVC模型之间区别是否是一种好方法

当然,我总是将我的域模型与我的视图模型分开,因为和你一样,我同意域模型不属于控制器。

ASP.NET MVC项目中的控制器实际上是 view 控制器,因此不应该包含业务逻辑。使用服务层通常是管理演示/业务层之间通信的最佳方式(就像您似乎正在进行的那样)。

答案 1 :(得分:0)

是的,将它们分开是一个好主意。我看到它的方式是你拥有“Business Objects”命名空间,然后是“View Models”命名空间。 “视图模型”命名空间中的对象是MVC的模型,通常包含常规类型和业务对象实例的混合。