我尝试按照最佳实践方法构建我的最后一个大型 MVC 项目,但不太了解我在做什么。
它有一个数据、业务和 Web (MVC) 项目,但控制器包含大部分代码,数据层使用 NHibernate,并且有几个存储库负责太多事情,而业务层是任何不适合的东西的垃圾场不属于其他两个项目。它可以工作,但我觉得它可以设置得更好——我不满意的主要事情是胖控制器和存储库。
我正在开始一个新项目,该项目可能会变得相当大,所以我会花更多时间尝试让我的设计提前。阅读更多内容后,我尝试为每个聚合根创建一个存储库,然后在业务层中为表示层中的每个控制器提供一个服务。
我最初的希望是大部分代码都将放在服务中,再加上较小的存储库,这将使我的控制器和数据层保持精简。但到目前为止,这还没有发生。
我读过的所有内容都表明视图模型不应从业务层返回,而应填充在表示层中,因此目前我的服务层主要是将模型从我的数据层传递到表示层,然后完成准备视图模型所需的工作。所以我仍然有胖控制器,加上瘦业务和数据层。
我的表示层也知道我的业务层和数据层,但我认为这种分离的部分目的是减少耦合?
我把这一切都搞错了吗?我是否应该停止盲目地遵循我在互联网上阅读的内容,而只是在业务层中准备视图模型,以便我可以将大部分代码移到那里?我应该回到经典的 ASP 吗?:)