views:

1745

answers:

9

I'm trying to understand the concepts behind DDD, but I find it hard to understand just by reading books as they tend to discuss the topic in a rather abstract way. I would like to see some good implementations of DDD in code, preferably in C#.

Are there any good examples of projects practicing DDD in the open source world?

A: 

I haven't used any myself, but there are some tools mentioned on the DDD Wikipedia page. Most of them seem to be implemented in Java though.

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

Christophe Herreman
A: 

A good read is Jimmi Nilssons book (and blog for that matter) Applying domain driven design

It's a mixture of Evans and Feathers books (Domain-Driven Design - Evans), and (Patterns of Enterprise Application Architecture - Fowler)

kitofr
+2  A: 

This is not an open source project, but still it is an example in code: http://www.codeplex.com/dddpds

The example is used in the book .NET Domain-Driven Design with C#: Problem-Design-Solution


A made-up example that seems promising but might have died: http://www.codeplex.com/domaindrivendesign

Carl Björknäs
A: 

Ok, I found this, but it's Java not C#:
http://timeandmoney.domainlanguage.com/

Mikael Sundberg
+1  A: 

I'm afraid that http://www.codeplex.com/domaindrivendesign has indeed died, but if anyone is interested in contributing feel free to contact me.

Overall I would recommend against relying too much on examples of DDD, at best examples can show the results of the domain modelling and/or one approach for implementing the patterns. I would thus recommend reading the book and then asking questions at the forum.

Colin Jack
+3  A: 

Eric Evans and a Swedish consulting company have released a sample application based on the shipping example that Eric uses throughout the book. It's in Java, but the concepts are well documented on the project page.

http://dddsample.sourceforge.net/

However, be warned that DDD is more about the journey than the destination. Understand that the sample code you are looking took many forms before it became what you see now. You did not see the awkward models that were used initially and you're missing the steps take to refactor the model based on insight gained along the way. While the building blocks are important in DDD, Eric belives they are over-emphasized, so take all samples with a grain of salt.

Stefan Moser
The sample has been ported to C#. See Lance Fisher's answers for the link.
Stefan Moser
+1  A: 

I'm not sure how complete it is, but I found the NDDD Sample on Google Code.

Lance Fisher
A: 

Code Camp Server, Jeffrey Palermo's sample code for the book ASP.NET MVC in Action is open source and uses DDD.

(Same as my answer in Good Domain Driven Design samples)

Peter Tate
A: 

http://kigg.codeplex.com/ is a good example for me.

Sasapet