Thursday 10 December 2009

Moving to Git

Since implementation of the core features of DDDSample is almost finished I am thinking about opening the project for external contribution. In order to make it happen I am moving the main code repository from CodePlex's TFS to github. It will allow you to branch DDDSample.Net at will and publish your modifications online.


I would be very happy to post links to your modifications here and on the project main site on CodePlex (I am not moving the site, only the repository). Test version of the git-ed repository is available here:


git://github.com/SzymonPobiega/DDDSample.Net.git


Please download it and try if it works for you.

Thursday 3 December 2009

0.5, finally asynchronous!

I am very proud to announce that just released version 0.5 of DDDSample.Net demonstrates (finally!) how inter-aggregate communication was supposed to work from the beginning: using asynchronous communication patterns.

Version 0.5 contains 3 different work modes (you can change them using solution configuration switch):
  • InMemory. In this mode domain objects are not persisted but, instead, stored in static collections in main memory. This mode is intended to help novice users head-start with DDDSample since it does not need any additional configuration to work -- just install the msi package.
  • NHibernate. In this mode NHibernate is used to persist domain model data. Inter-aggregate communicaton is done synchronously using domain event pattern.
  • NHibernateAsynch. This mode demonstrates full power of architectural approach used in DDDSample.Net. Data is stored using NHibernate while asynchronous communication between aggregates is handled by NServiceBus/MSMQ combination.
Next (minor) step in DDDSample.Net development should be probably replacing InMemory mode with SQLite in-memory database. What's the difference? Current in-memory mode doesn't use O/RM. It would be nice to have the sample as easy to run as it is now and have it persist it's data using NHibernate so that users whould be able to see the process through all the layers.

Stay tuned!