是否有使用DDD(域驱动设计)的开源项目?

时间:2008-09-30 07:42:13

标签: c# architecture open-source domain-driven-design

我正在努力理解DDD背后的概念,但我发现通过阅读书籍很难理解,因为他们倾向于以相当抽象的方式讨论这个主题。我希望在代码中看到一些优秀的DDD实现,最好是在C#中。

在开源世界中有没有很好的DDD项目实例?

12 个答案:

答案 0 :(得分:15)

Eric Evans和一家瑞典咨询公司已经发布了一个示例应用程序,该应用程序基于Eric在本书中使用的运输示例。它是用Java编写的,但这些概念在项目页面上有详细记录。

http://dddsample.sourceforge.net/

但是,请注意DDD更多的是关于旅程而不是目的地。了解您正在查看的示例代码在它成为您现在看到的之前采用了多种形式。您没有看到最初使用的笨拙模型,并且您错过了根据沿途获得的洞察力重构模型所采取的步骤。虽然构建模块在DDD中非常重要,但Eric相信它们过于强调,因此请将所有样品都加入盐中。

答案 1 :(得分:10)

我不确定它有多完整,但我在Google Code上找到了NDDD Sample

答案 2 :(得分:5)

我很惊讶没有人提到Ayende的DDD样本Macto。关于Macto最重要的事情是在实际编码之前的洞思考过程以series of posts表示。 DDD不是关于实现模型,而是关于建模业务领域。像“某些概念是聚合根/实体/价值对象”这样的决策远比如何坚持AR更重要。

另外,我会推荐Udi Dahan关于SOA和CQRS的视频,这些视频可能会提供更好的应用DDD的背景。

答案 3 :(得分:4)

这不是一个开源项目,但它仍然是代码中的一个示例:http://www.codeplex.com/dddpds

该示例在本书 .NET Domain-Driven Design with C#中使用:问题 - 设计 - 解决方案


一个看似有希望但可能已经死亡的成熟例子: http://www.codeplex.com/domaindrivendesign

答案 4 :(得分:2)

我担心http://www.codeplex.com/domaindrivendesign确实已经死亡,但如果有人有兴趣愿意与我联系。

总的来说,我建议不要过多地依赖DDD的示例,最好的例子可以显示域建模的结果和/或实现模式的一种方法。因此,我建议您阅读这本书,然后在forum上提问。

答案 5 :(得分:2)

http://kigg.codeplex.com/对我来说就是一个很好的例子。

答案 6 :(得分:1)

一本好读物是Jimmi Nilssons的书(以及博客) Applying domain driven design

这是Evans和Fowlers书籍的混合物(Domain-Driven Design - Evans)和(Patterns of Enterprise Application Architecture - Fowler)

答案 7 :(得分:1)

我知道它不是C#,但这是一个遵循域驱动方法的java元框架:我对此并不了解,但我愿意在不久的将来研究它:{{3} }

答案 8 :(得分:1)

http://sellandbuy.codeplex.com/

另一个项目DDD

答案 9 :(得分:0)

我没有使用任何自己,但DDD维基百科页面上提到了一些工具。其中大多数似乎都是用Java实现的。

http://en.wikipedia.org/wiki/Domain-driven_design#Software_tools_to_support_domain-driven_design

答案 10 :(得分:0)

好的,我发现了这个,但它是Java而不是C#:
http://timeandmoney.domainlanguage.com/

答案 11 :(得分:0)

Code Camp ServerJeffrey Palermo's本书ASP.NET MVC in Action的示例代码是开源的,并使用DDD。

(与Good Domain Driven Design samples中的答案相同)