【问题标题】:Building a forms system using DDD使用 DDD 构建表单系统
【发布时间】:2010-02-25 12:51:40
【问题描述】:
我正在构建一个表单管理系统,也就是说,系统将包含许多表单,将它们保存,并对它们执行逻辑,我想使用 DDD 方法。
我想在以后使用 ASP.NET MVC 支持简单的表单布局,到目前为止我看到的域是这样的:
我将有一个基本表单实体,它应该(目前)有一个名称、字段(和它们的值)和验证逻辑。
我的问题是:
- 我应该如何使用泛型编写字段值对象?我似乎无法弄清楚..
- 我应该将验证逻辑封装在表单中还是使用规范模式?
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
domain-driven-design
specification-pattern
【解决方案1】:
我应该如何使用泛型编写字段值对象?我似乎无法弄清楚。
太模糊的问题。稍微指定你的上下文——你试图定义什么样的值对象,为什么你需要泛型等等。
我应该将验证逻辑封装在表单中还是使用规范模式?
验证逻辑去哪里it has to go。域验证逻辑应该封装在规范中,但这不是强制性的。主要的事情——在查看域对象类定义的源代码时,您应该能够弄清楚并理解应用验证。
【解决方案2】:
除了你的模糊描述之外,处理表单是一个本质上不非常适合 DDD 的问题。您可以从平面选项列表中构建什么样的对象模型?
当然,您需要特定于正在使用的表单的验证逻辑,但简单的 OO 设计可以让您走得更远,我不知道 DDD 会在哪里给您买东西。
附带说明一下,请查看文档数据库,它们可能比存储在 ObjectDb 或关系数据库中的复杂领域模型更适合您的任务。