域驱动设计 - 文档转换应用程序

时间:2015-11-21 06:32:03

标签: c# design-patterns architecture domain-driven-design

我必须创建一个文档转换应用程序,必须使用域驱动设计。

基本上我的应用程序将接收xml \ csv(作为字符串输入)格式的数据,该格式将使用xslt(作为字符串输出)转换为标准的xml,json或csv格式。

还有一些规则(存储在关系数据库中)在转换为xml或json格式后应用于数据。

结束接口可能是Rest API或Wcf应用程序。

但现在我很困惑,因为我应该如何使用域驱动设计来创建它。

我的域模型是什么,这包括存储在数据库中的规则吗?

我将核心格式转换逻辑放在服务层中还是直接放在API或wcf服务类中?

谢谢!

2 个答案:

答案 0 :(得分:1)

还可以更好地了解您要导入的文档类型。我认为文档可能是您的域实体之一。这样你就可以拥有

static Document createFromString(string inputText)

和非静态到

void writeToSjon(filepath) 

方法。但要了解ddd或您的域模型,您真的应该与您的产品负责人交谈,以了解您正在解决的问题。因为这就是你要建模的东西。也许这不是你正在建模的文件,而是一些dogfood购物清单,恰好是xml / csv输入。

另请查看您需要应用的规则。它们只是文本格式规则还是针对特定犬种的过敏警告。 DDD很大程度上是关于降低沟通障碍,所以请与那些给你输入/期望你的应用输出的人交谈。

答案 1 :(得分:0)

  

但现在我很困惑,因为我应该如何使用域驱动设计来创建它?

您与域专家聚在一起,定义域的概念,定义和使用“无所不在的语言”。

  

我的域名模型是什么[?]

模型应该来自您使用领域专家进行的分析。用无处不在的语言寻找名词和动词。它们将成为构成模型的类和方法的起点。

  

...这包括存储在数据库中的规则吗?

这是一个实现细节。如果合适,请将规则存储在数据库中。如果没有,请编写封装规则的域服务。

  

我必须创建一个文档转换应用程序,必须使用域驱动设计。

这句话让我很担心。您可能需要考虑管理您的经理。使用正确的工具完成工作。