【发布时间】:2013-05-03 13:55:45
【问题描述】:
我尝试按照最佳实践方法构建我的最后一个大型 MVC 项目,但不太了解我在做什么。
它有一个数据、业务和 Web (MVC) 项目,但控制器包含大部分代码,数据层使用 NHibernate 并且有几个存储库负责太多事情,而业务层是垃圾场任何不属于其他两个项目的东西。它可以工作,但我觉得它可以设置得更好——我不满意的主要是胖控制器和存储库。
我正在开始一个新项目,该项目可能会变得相当大,因此我会花更多时间来尝试将我的设计提前。阅读更多内容后,我尝试为每个聚合根创建一个存储库,然后在业务层中为表示层中的每个控制器提供一个服务。
我最初的希望是大部分代码都将放在服务中,再加上较小的存储库,这将使我的控制器和数据层保持精简。但到目前为止,这还没有发生。
我读过的所有内容都表明视图模型不应该从业务层返回,而应该填充在表示层中,所以目前我的服务层主要是将模型从我的数据层传递到表示层然后它会执行准备视图模型所需的工作。所以我仍然有胖控制器,加上瘦业务和数据层。
我的表示层也知道我的业务层和数据层,但我认为这种分离的部分目的是减少耦合?
这一切都错了吗?我是否应该停止盲目地遵循我在互联网上阅读的内容,而只是在业务层中准备视图模型,以便我可以将大部分代码移到那里?我应该回到经典的 ASP 吗? :)
【问题讨论】:
-
尝试以下框架:1) Serenity.is - 可用的最佳快速应用程序开发框架,也是 VSGallery 中评价最高的模板。 Serenity 建立在流行和高质量的开源库之上,包括 Bootstrap、SlickGrid、Dapper 和 JSON.NET。通过将它们与 ASP.NET MVC 和 TypeScript 的强大功能相结合,它提供了一个强大而稳定的应用程序平台。 http://serenity.is/ 2) Asp Net Boiler Plate - ASP.NET Boilerplate 是一个通用应用程序框架,专为新的现代 Web 应用程序而设计。它使用已经熟悉的 t
-
@mijaved 请在这里保持客观。您对这些框架的陈述似乎是从广告中复制粘贴的。它们显然不是对这些工具进行中立、客观评估的结果。
标签: asp.net-mvc-4 structure n-tier-architecture