我必须在哪一层编码

时间:2011-11-29 11:49:58

标签: asp.net-mvc

我有一个由多个层组成的解决方案:controller>服务>商业>存储库

我正在学习MVC所以我尽可能地尝试遵循最佳实践。我认为控制器必须尽可能轻。假设我的控制器中有一个Edit动作,接收相应视图发布的视图模型。此视图模型是模型对象中包含的数据的减法。

使用此视图模型我必须实现的目标:

  • (1)检索关联对象模型
  • (2)将我的视图模型映射到我的对象模型中(为了拥有更新和完整的对象)
  • (3)保存此更新对象
  • (4)准备要在视图中显示的通知
  • (5)返回另一个视图

我的问题:我需要在哪里编写所有这些内容?

在我看来,第1,2,3点必须在业务层完成,而第4点和第5点必须在控制器层中完成。

你能证实吗?

感谢。

1 个答案:

答案 0 :(得分:2)

  • 存储库具有数据访问逻辑。
  • 业务层将使用存储库来保存对象
  • 业务层将检查业务规则,发送电子邮件等。大多数逻辑都在这里。
  • Controller只使用Business层来执行功能。

服务类是我所称的业务层。如果您指的是Web服务,则表示Web服务的类应在内部调度对您的实际Business类的调用,否则您的业务和控制器之间不需要中间服务类。