Split up MessageProcessor into Core and Processor-assemblies and introduced the Aggregates-package for CQRS and event-sourcing.
Committed left-over files.
Introduced Clocks-package and refactored MessageProcessor logic a bit.
Introduced BufferedEventBus and replaced FlushHintAttribute with regular properties on IUnitOfWork-interface. Also changed the UnitOfWorkController to keep flushing while there are units to flush (multi-stage flush).
Refactored UnitOfWorkCache to delegate actual disposal of items to creator of items.
Re-introduced CurrentMessage-property on the Processor in a slightly different/better fashion.
Introduced exceptions for when an event is published at an invalid moment.
Made small improvement to cache-construct for UnitOfWork.
Yet another small improvement of Cache-construct, plus a rename fix of DomainModelException.
Implemented and renamed some extra unit tests.
Added XML-documentation for all new public types.
Replaced MessageProcessor constructor-args with virtual properties.
Renamed 'Core' to more descriptive and precise name 'UnitOfWork'.
Added a few more methods to easily register message-handler dynamically.
Made Key-property of aggregate public.
- Changed InvalidCommandexception to CommandExecutionException.
- Changed AggregateVersion to IAggregateVersion<T> to allow for different version types for Aggregates.
Added the Request-namespace.