Sto progettando una soluzione aziendale che consiste in prodotti modularizzati all'interno di una gamma di prodotti utilizzando il codice Entity Framework per definire innanzitutto il modello di dominio e fornire l'accesso ai dati.
es. Soluzioni:
ProductRange.Authentication
ProductRange.Gateway
ProductRange.OrderSystem
ProductRange.MarketingSystem
Ciascuno di questi prodotti (soluzioni) avrà livelli simili, attualmente:
Progetti in ciascuna soluzione:
ProductRange.OrderSystem.Model (contains code first POCOs)
ProductRange.OrderSystem.DataContext (contains the dbContext)
ProductRange.OrderSystem.DataAccess (contains the Generic Repository)
ProductRange.OrderSystem.Service.DomainLogic (contains business logic)
ProductRange.OrderSystem.Service.ApplicationLogic (contains application logic)
ProductRange.OrderSystem.Presentation.AdminWebsite
ProductRange.OrderSystem.Presentation.CustomerWebsite
Alcuni prodotti dovranno accedere alla logica di dominio di un altro prodotto, in particolare tutti dovranno accedere a ProductRange.Authentication ma anche ProductRange.MarketingSystem dovrà eseguire una query su ProductRange.OrderSystem
Sto pensando di esporre la logica del dominio tra i prodotti nell'intervallo tramite un servizio WCF. Ma dovrò anche fare riferimento al prodotto localmente (ad es. Creare riferimenti al progetto).
Come dovrei andare a implementare questo? Dovrei creare un servizio WCF, ad es. ProductRange.OrderSystem.WCF che chiama la logica del dominio e la espone oppure dovrebbe essere la mia logica di dominio un servizio WCF? In quest'ultimo caso, dovrei sempre fare riferimento alla mia logica di dominio tramite WCF, anche dal locale ApplicationLogic?
Suppongo di essere in cerca di indicazioni su quali livelli disporre e su come fornire la migliore connettività tra le soluzioni.