业务逻辑层是否处理 MVC 中的视图模型?

Does the Business Logic Layer handle View Models in MVC?

我有一个包含 4 个项目的应用程序

BLL 是否应该在表示层之间传递和检索视图模型。 (并处理所有映射)

或者更确切地说,它应该只处理域模型并让表示层(控制器)处理所有映射。

谢谢

您的开发方法没有什么是绝对的。在任何情况下你都可以选择适合你的。但是当你选择你的方法时,你应该考虑你未来维护和扩展的可能性。根据您提供的详细信息,我认为您应该考虑一些问题:

  • 用户输入验证:用户输入验证不属于您的 BLL。因此,如果您将演示文稿连接到 BLL,您将混合使用两者,这会使您难以管理代码或 "separation on concerns"
  • 在 mvc 案例中,您总是使用数据注释进行表示。将 BLL 用于 VM 可能会使它们难以使用。
  • 在表示层,您需要 CSS 和 Jquery 等工具。将它们与 BLL 一起使用,可能会使您的代码非常混乱且难以编写 稍后维护。
  • 对于您的演示文稿的任何微小更改,您都需要更改您的 BLL,这违反了所有原则!
  • 如果你把 BLL 和 presentation 混在一起,就很难为客户提供像 WebApi 这样的服务。
  • 从视图访问 BLL,让黑客的生活更轻松!

还有更多!