【问题标题】:ASP.NET MVC with DDD architecture具有 DDD 架构的 ASP.NET MVC
【发布时间】:2011-03-18 20:03:18
【问题描述】:

我正在尝试理解带有 DDD 的 Asp.Net MVC 以下是根据http://aspnetdesignpatterns.codeplex.com/ 的应用程序结构

应用层

表示层 => MVC 视图,

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

缓存服务 => ?,

应用服务 => ?,

领域模型 => ?,

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

基础设施 => 类 记录、邮寄等。

这里 m 在应用程序服务和域模型方面存在混淆, 我应该在哪里适合我的业务逻辑(在服务中或在域模型中)

究竟应该提供什么服务,什么应该在域中。

例如 假设我想在数据库中添加客户 流程应该如何..?

据我所知,

在控制器类中我会这样写

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

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

_customerRepository 进入存储库

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

请清除我。 提前致谢。

【问题讨论】:

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


    【解决方案1】:

    正如@Arnis 所提到的,Eric Evan 的书是开始 DDD 的最佳场所。 Domain Driven Design Quickly 是对 DDD 基础知识的简短、易读的摘要和介绍。

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

    请查看来自@calebboyd 的以下answer,以了解 DDD 流程。

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

    【讨论】:

      【解决方案2】:

      你读过this 的书吗?从那开始。

      术语Serviceoverloaded

      域服务封装了一小部分不适合任何域对象的域逻辑(some 说这表明您的域中有未识别的聚合根)。

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

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

      【讨论】:

        猜你喜欢
        • 2010-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 2021-12-28
        • 2016-11-05
        • 2013-12-27
        相关资源
        最近更新 更多