【问题标题】:In which layer do I have to code things我必须在哪一层编码
【发布时间】:2011-11-29 11:49:58
【问题描述】:

我有一个由几层组成的解决方案:控制器 > 服务 > 业务 > 存储库

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

我必须用这个视图模型实现什么:

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

我的问题:我必须在哪里编写所有这些东西?

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

你能确认一下吗?

谢谢。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:
    • 存储库具有数据访问逻辑。
    • 业务层将使用存储库来持久化对象
    • 业务层将检查业务规则、发送电子邮件等。大部分逻辑都在这里。
    • 控制器只使用业务层来执行功能。

    服务类是我所说的业务层。如果您的意思是 Web 服务,那么表示 Web 服务的类应该在内部将调用调度到您的实际业务类,否则您不需要在业务和控制器之间使用中间服务类。

    【讨论】:

    • 谢谢。那么从视图模型到对象的映射必须在业务层而不是控制器中完成?
    • 您的业务类不了解 ViewModel。它是一个控制器的东西
    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多