【问题标题】:Is it a good aproach to make a difference between domain models and MVC models?区分域模型和 MVC 模型是一种好方法吗?
【发布时间】:2013-10-06 04:24:40
【问题描述】:

(我是 MVC 的初学者)

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

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

【问题讨论】:

    标签: asp.net-mvc architecture


    【解决方案1】:

    在域模型和 MVC 模型之间产生差异是一种好方法

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

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

    【讨论】:

    • 为什么您认为 MVC 教程中从未提及这一点? :)
    • @jannagy02,探索。有很多做法,看看这个channel9.msdn.com/Events/DevDays/DevDays-2011-Netherlands/…
    • @jannagy02 我不知道您指的是哪些教程本身,但是,考虑到教程的目的,它可能并不是特别值得关注的问题。或者,当然,它总是有可能只是作者的疏忽。我确信那里有大量教程确实关注分离视图/域模型的需求......
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 2013-03-28
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 2018-01-11
      • 2012-08-12
      • 1970-01-01
      • 2016-03-02
      相关资源
      最近更新 更多