Alt .NET社区中几乎所有DDD示例都应用于Web开发;我想看到的是在客户端处理大部分业务逻辑的情况下应用DDD的一些示例,而服务器只是使用DTO [ 1 ]的CRUD的Web服务。
我目前正在开发一种具有贫血领域模型的产品。来自多年的网络开发,这种事情通常会让我感到畏缩;但是,我不确定如何围绕DDD原则构建这个代码。在Web应用程序中,我可以直接访问数据库,处理业务逻辑(在我的域模型中实现,由控制器调用),这意味着我可以轻松拥有丰富的域模型并使用ORM进行CRUD 。但是,在我目前的项目中,DTO是传递数据的唯一理智方式。 80%的业务逻辑在View Models中实现(这是一个WPF应用程序),另外20%的业务逻辑位于存储过程中 - 并且100%的DAL是手写的ADO .NET。在Web服务中实际上没有很多业务逻辑实现,因此解决方案中没有任何“实体” - 它们都是DTO。
我怎样才能将DDD引入这种客户端/服务器架构?你有什么样的经历,你采取了什么方法?你会建议什么样的模式?我没有太多时间去研究CQRS,但有些东西告诉我它可能有关 - 是这样吗?
脚注
答案 0 :(得分:0)
这很有趣,因为我经常想知道如何将DDD应用于Web开发。
我并不是说这是对你的问题的全面回答,但你可能会在对我的一个老问题的回答中找到一些有用的东西:Should I map a DTO to/from a domain entity on both client and server sides?
作为对你的问题的一般回答,我会说你可以将逻辑移出视图模型并进入客户端域模型(因为它听起来像服务器端工作正常而没有任何概念域模型)。您将使用来自Web服务的DTO来“保湿”这些实体。
如果您正在创建智能客户端,那么您希望利用直接在客户端维护状态和执行逻辑的能力(因此,脚注中的“否”)。