Domanda

Ho letto su Dominio Eventi e hanno visto i codici da implementazione di Udi ( http://www.udidahan.com/2009/06/14/domain-events-salvation/ ) , Mike Hadlow ( http://mikehadlow.blogspot.com /2010/09/separation-of-concerns-with-domain.html ), Jimmy Bogard e l'attuazione di Jason Dentler.

Tutto sommato mi piace l'idea di eventi.

Le mie domande è quale livello dovrei aggiungere questi componenti.

Non ho intenzione di utilizzare qualsiasi autobus e tutti gli eventi saranno trattati in modo sincrono .

Credo che l'IDomainEvent interfaccia, IEventHandler dovrebbe andare in Project.Core , dove resto delle interfacce sono tenuti e accessibile da tutti i progetti.

Il Dispatcher (che è una classe statica) Credo che dovrebbe andare in Project.Infrastructure .

I creerà un nuovo progetto solo per i gestori di eventi di dominio. Consente di dire Project.EventHandlers .

userò IOC (StructureMap) per registrare tutti i gestori.

Gli stessi eventi come la vedo io sono basati sulla Business Language e per questo motivo credo che dovrebbe andare a Project.Domain in cui sono implementati tutti gli aggregati.

Fammi sapere se questo è il modo giusto.

L'altra mia confusione è in riferimenti al progetto. Qualora Project.Domain di riferimento Project.Infrastructure in modo che possa utilizzare la statica Event Dispatcher .

dovrebbe Project.EventHandlers di riferimento Project.Domain perché ha bisogno di sapere quali eventi ci sono che possono essere gestiti.

Ho intenzione di creare una classe StructureMap registro in Project.EventHandlers che saranno poi bootstrap in Global.asax.

Se questo si è parlato prima di me punto al link per favore. Non riuscivo a trovare uno attraverso Google Ricerche.

È stato utile?

Soluzione

Sono questi progetti o spazi dei nomi? C'è un antico e continuo dibattito sui versi a grana fine a grana grossa struttura del progetto. Sono nel campo a grana grossa. Un complesso è un'unità di distribuzione, non un livello logico, e la struttura si sta descrivendo in maniera più adeguata come namespace in un unico progetto.

Detto questo, l'organizzazione sembra sensato. Il mio unico cambiamento sarebbe quella di mettere le interfacce al fianco dei loro implementazioni piuttosto che in Project.Core.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top