ASP.NET MVC三层 - 其他人在做什么?

时间:2010-10-12 15:21:55

标签: asp.net-mvc architecture cqrs three-tier

当我开始研究新的Web应用程序时,我倾向于使用相同的试用版和测试的ASP.NET MVC体系结构,BLL(由一组包含所有业务逻辑的服务组成)和一个DAL(由一组存储库组成,可以促进单元工作模式比 EF / * Linq to SQL *)。

控制器仅与服务通信,服务仅与存储库和其他服务< / em>的。在服务层,定义了模型,这些模型用作控制器的输入/输出。

我的问题是:其他人在做什么?我很想知道人们是否在ASP.NET MVC Web应用程序的上下文中做了不同的事情。例如,有 CQRS 域事件等概念。是否有人使用这些来解决我上面描述的方法的问题?

这个问题主要是试图发现我不知道的东西。我希望它不是太模糊,但我认为重要的是看看其他人正在做些什么来评估你自己的方法。

2 个答案:

答案 0 :(得分:1)

我们基本上正在做你正在做的事情,除了我们认为我们的存储库接口是服务(它们在业务层中定义),因此我们的控制器经常直接访问它们。 IoC容器负责通过构造函数注入注入正确的存储库实现。因此,数据层依赖于业务层,并负责实现存储库,而业务层只是假定它定义的所有存储库都将在运行时可用。

我们进一步将产品划分为不同的功能模块。一些模块相互依赖(例如,一切都取决于我们的核心功能,大多数其他模块依赖于Web门户模块),但将它们保存在单独的dll中有助于我们避免使这些模块过于紧密耦合。因此,系统只能为给定客户端已支付的模块加载DLL。我们计划使用包含核心模块中定义的事件的事件总线,以允许模块通过发布/订阅模型进行通信。

答案 1 :(得分:1)

我正在使用CQC和MVC。这真好。你仍然使用MVC模式,但在控制器中我使用命令模式进行写入,而纯粹的NHibernate Linq用于读取...还有一些SolrNet用于读取。 : - )