Tuesday, January 12, 2016

"I was pretty firm on no data access code in the domain as i have seen what a lot of devs will do  to make things work. This is where many projects IMHO go down hill"

eg projects
      Handler/ Facsade ( references all others)
      DataInfrastructure (Repository<T> , references domains - you can do it without it eg with a factory function Func<IAggregate> so only handler has access to the domains  )
            SqlData 
      DomainInfrastructure ( basically IEvent ,  IAggregate and some saga helpers , does not reference other projects) 
      DomainA  Just aggregates and entities  ( references only Domain infrastructure and events)
      DomainB  Just aggregates and entities ( references only Domain infrastructure and events)
      SharedEvents
      CrudDomain (uses DataInfrastructure)
      ReadDomainA (uses DataInfrastructure)             
      ReadDomainB

No comments:

Post a Comment