建议简化我的架构... asp.net mvc

时间:2011-07-01 14:05:37

标签: c# asp.net-mvc architecture

我目前有一个UI Layer / DomainService层(域逻辑和服务驻留在此处)和Repo Layer for persistance,我使用 Ninject 来帮助解耦。

我保持UI层非常简单 - 将任务委托给服务层,但是我有一个非常复杂的应用程序依赖于loggedonuser,因此我的CRUD会变得非常复杂。

我的问题是:我几乎所有东西都有服务,然后连接到GenericRepository。

例如 IOrder与IDBRepo通信以获取订单信息,具体取决于客户端访问订单,然后我有IShipping - 它也连接到IDBRepo和退休信息...当1服务需要调用另一个服务时,它变得复杂,它们都连接到IDBRepo。

我已经设法撤出IUserSession并且可以将其提供给每个服务 - 但这对我来说似乎太复杂了......

设置测试时,我必须执行以下操作:

var db = new DBRepo();
var s1 = new OrderService(db);
var s2 = new ShippingService(s1,db);

然后,为了扩展我的一些/大部分服务,我必须添加 ILoggingService INotificationService - 他们都需要访问数据库......

注意:我不是在寻找一个纯粹的DDD,我正在努力充分利用它并让它发挥作用我想这就是我的问题......

1 个答案:

答案 0 :(得分:0)

Bob Cravens卡车追踪器是一系列很好的帖子,可以让你思考它:

http://blog.bobcravens.com/2011/05/a-net-generic-repository-pattern-with-implementations/

总的来说,如果你能避免它,我认为拥有相互依赖的服务并不是一个好主意。如果必须这样,那么考虑使用依赖注入框架,例如unity或spring.net或ninject。