Project Description
An example of how to use Domain Driven Development to create a simple NHibernate based application.

Status
This project is still in its early stages. I hope the early progression will be like this:
  1. Develop basic Domain Model for a simple e-commerce system.
  2. Run applications like NDepend and Sandcastle over the code and make any changes they require.
  3. Map the code to a relational database schema.
  4. Introduce more complex requirements, including complex state changes and validation rules.
Currently the domain model itself is undergoing design, one this is done I will map the classes to the database and then go about adding more realistic details.

I was originally planning to put up blog entries http://colinjack.blogspot.com/ describing the domain class and related design decision but I now plan to include all the content on this site.

Details
If you have read "Domain Driven Design" by Eric Evans then you will know just how good a book it is. It really inspires you to try to move your software development on to new levels and provides a set of patterns and practices that we can all apply in our design.

When you come to try to put the patterns and ideas into practice you'll find that you do face some big choices:
  1. What technologies should I use?
  2. How can I apply the technologies available without sacrificing DDD?
  3. How can I get the benefits of DDD without sacrificing elsewhere?
  4. How can I ensure my domain model incorporates the expertise of other authors?
Although I cannot say whether this project will answer these questions it might help, at least by showing a few ways to deal with some of the issues you will face.

I'll also be referencing Eric's book very widely. I'm doing this as Erics book has a lot of knowledge packed into it and it can be difficult to find what you need when you need it, hopefully by referencing individual pages/chapters I'll make it easier to find the information next time I need it (at the very least I'll find it useful!)

Technologies
I would imagine that the project will be most useful to people using similiar technologies to the ones we used, in particular:
  1. NHibernate
  2. .NET
  3. ASP.NET - Though I will not create a Web application to use I will show you how to use NHibernate with a Web application.

Last edited May 29, 2007 at 6:56 AM by colin_jack, version 17