我正在使用 n 层方法构建 ASP.Net MVC Web 应用程序。我的结构如下所示:
Business Objects - Model
Data Access Layer - DAL
Business Logic Layer - BLL
Mapping Layer
ViewModels
Controllers
Views
我通常将计算放在业务层中,但是仅用于演示目的的计算呢?例如,在我的应用程序的一个视图中,我显示了发票总额、已付款项和欠款余额。欠款余额是计算出的金额。由于我在我的应用程序中多次使用 Balance Owing,我倾向于在我的 BLL 中创建一个通用的 BalanceOwing 方法,但在其他情况下,计算只会用于一个视图。在这种情况下,计算应该进入控制器还是在我的情况下进入映射层?(我有一个映射层,用于将域模型转换为视图模型。它使控制器更整洁)。
这真的是分界线吗?也就是说,如果我可以概括计算并多次使用它,它应该进入 BLL,但如果它特定于一个视图,它应该在控制器或映射器中?
概括:
我选择了@trailmax 的回答,因为他看到一些我认为是表示逻辑的东西实际上是业务逻辑,因此属于 BLL。如果某些东西确实是表示逻辑并且涉及诸如分页之类的计算,我会将它们放在@ramiramilu 提到的实用程序类或扩展方法中