是否有任何使用DDD(域驱动设计)的开源项目?
我试图理解DDD背后的概念,但是我发现仅阅读书籍很难理解,因为它们倾向于以相当抽象的方式讨论该主题。我希望看到一些DDD在代码中的良好实现,最好是在C#中。
在开源世界中,有没有任何很好的实例来实践DDD?
解决方案
我自己没有用过,但是DDD Wikipedia页面上提到了一些工具。不过,它们中的大多数似乎都是用Java实现的。
http://en.wikipedia.org/wiki/Domain-driven_design#Software_tools_to_support_domain-driven_design
吉米·尼尔森(Jimmi Nilssons)的书很不错(有关该书,还有博客)
应用域驱动设计
它是Evans和Fowlers的书籍(域驱动设计Evans)和(企业应用程序体系结构Fowler的书籍)的混合体
这不是一个开源项目,但仍然是代码中的一个示例:http://www.codeplex.com/dddpds
该示例在《用C#进行.NET域驱动的设计》一书中使用:Problem-Design-Solution
一个伪造的例子似乎很有希望,但可能已经死了:
http://www.codeplex.com/domaindrivendesign
好的,我找到了,但这是Java而不是C#:
http://timeandmoney.domainlanguage.com/
恐怕http://www.codeplex.com/domaindrivendesign确实已经死亡,但是如果有人有兴趣提供,请随时与我联系。
总的来说,我建议不要过多地依赖DDD的示例,最好的示例可以显示域建模的结果和/或者一种实现模式的方法。因此,我建议阅读本书,然后在论坛上提问。
埃里克·埃文斯(Eric Evans)和一家瑞典咨询公司已经根据埃里克在整本书中使用的运输示例发布了一个示例应用程序。它使用Java,但是在项目页面上很好地记录了这些概念。
http://dddsample.sourceforge.net/
但是,请注意,DDD与行程有关的更多的是目的地。理解我们正在寻找的示例代码在变成现在所看到的之前已经采取了多种形式。我们没有看到最初使用的笨拙模型,并且错过了根据在此过程中获得的洞察力重构模型所采取的步骤。尽管构建基块在DDD中很重要,但Eric认为它们过分强调,因此请在所有样本中加一粒盐。
我不确定它的完整性如何,但是我在Google Code上找到了NDDD示例。
Jeffrey Palermo编写的《 ASP.NET MVC in Action》一书的示例代码Code Camp Server是开源的,并使用DDD。
(与我在" Good Domain Driven Design"示例中的回答相同)
http://kigg.codeplex.com/对我来说是一个很好的例子。