业务逻辑层是否处理 MVC 中的视图模型?
Does the Business Logic Layer handle View Models in MVC?
我有一个包含 4 个项目的应用程序
演示文稿
BLL
型号
DA
BLL 是否应该在表示层之间传递和检索视图模型。 (并处理所有映射)
或者更确切地说,它应该只处理域模型并让表示层(控制器)处理所有映射。
谢谢
您的开发方法没有什么是绝对的。在任何情况下你都可以选择适合你的。但是当你选择你的方法时,你应该考虑你未来维护和扩展的可能性。根据您提供的详细信息,我认为您应该考虑一些问题:
- 用户输入验证:用户输入验证不属于您的 BLL。因此,如果您将演示文稿连接到 BLL,您将混合使用两者,这会使您难以管理代码或 "separation on concerns"
- 在 mvc 案例中,您总是使用数据注释进行表示。将 BLL 用于 VM 可能会使它们难以使用。
- 在表示层,您需要 CSS 和 Jquery 等工具。将它们与 BLL 一起使用,可能会使您的代码非常混乱且难以编写
稍后维护。
- 对于您的演示文稿的任何微小更改,您都需要更改您的 BLL,这违反了所有原则!
- 如果你把 BLL 和 presentation 混在一起,就很难为客户提供像 WebApi 这样的服务。
- 从视图访问 BLL,让黑客的生活更轻松!
还有更多!
我有一个包含 4 个项目的应用程序
演示文稿
BLL
型号
DA
BLL 是否应该在表示层之间传递和检索视图模型。 (并处理所有映射)
或者更确切地说,它应该只处理域模型并让表示层(控制器)处理所有映射。
谢谢
您的开发方法没有什么是绝对的。在任何情况下你都可以选择适合你的。但是当你选择你的方法时,你应该考虑你未来维护和扩展的可能性。根据您提供的详细信息,我认为您应该考虑一些问题:
- 用户输入验证:用户输入验证不属于您的 BLL。因此,如果您将演示文稿连接到 BLL,您将混合使用两者,这会使您难以管理代码或 "separation on concerns"
- 在 mvc 案例中,您总是使用数据注释进行表示。将 BLL 用于 VM 可能会使它们难以使用。
- 在表示层,您需要 CSS 和 Jquery 等工具。将它们与 BLL 一起使用,可能会使您的代码非常混乱且难以编写 稍后维护。
- 对于您的演示文稿的任何微小更改,您都需要更改您的 BLL,这违反了所有原则!
- 如果你把 BLL 和 presentation 混在一起,就很难为客户提供像 WebApi 这样的服务。
- 从视图访问 BLL,让黑客的生活更轻松!
还有更多!