带有DDD架构的ASP.NET MVC

时间:2010-07-21 06:53:52

标签: asp.net asp.net-mvc domain-driven-design

我试图了解带有DDD的Asp.Net MVC以下是根据http://aspnetdesignpatterns.codeplex.com/

的应用程序结构
  

应用程序图层

     

表现层=> MVC观点,

     

控制器(MVC)=> MVC   控制器类,

     

缓存服务=> ?,

     

申请服务=> ?,

     

Domain Model => ?,

     

存储库=>知识库   与DB交互的类,

     

Infrastructure =>等级   记录,邮寄等。

这里混淆了应用服务和域模型, 我应该在哪里适合我的业务逻辑(在服务中或在域模型中)

究竟应该服务的是什么以及应该在域中应该是什么。

e.g 假设我想在DB中添加客户 应该如何流动??

据我所知,

在控制器类中我会像

一样写
var customeService = new CustomeService (_customerRepository);
customeService.Add(customer);

如果我错了请在这里纠正我..

_customerRepository进入存储库

模型中的内容以及代码流程应该是什么。

请告诉我。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您是否阅读过this本书?从那开始。

字词Serviceoverloaded

域服务封装了一小部分域逻辑,这些域逻辑不适合任何域对象(some表示它是您域中未识别的聚合根的标志。)

应用程序服务包含零域逻辑。他们协调领域。

基础设施服务在我看来相当不言自明。这些包含技术细节。

答案 1 :(得分:0)

Eric Evan的书是@Arnis提到的开始DDD的最佳地方。 Domain Driven Design Quickly是对DDD基础知识的简短快速阅读摘要和介绍。

what goes in model and what should be the flow of code.

请从@calebboyd查看以下answer以了解DDD流程。

关于MVC,您可以将控制器与表示层(视图)分开。但是你在不同的项目中使用这个控制器动作吗?如果答案是否定的,我的意见是将其保留在一个项目中。