Mi chiedo se qualcuno possa condividere i loro pensieri, esperienze e indicazioni su come affrontare il livello di accesso ai dati per un'applicazione componibile?
Per applicazione componibile intendo un'applicazione con il livello del dominio costituito da moduli. L'obiettivo è rendere l'applicazione altamente estendibile "collegando" moduli aggiuntivi (o sostitutivi). Ogni modulo incapsula (e isola) un insieme di funzionalità correlate.
Il mio dilemma è l'approccio giusto per il livello di accesso ai dati per supportare questa componibilità (modularità) pur fornendo isolamento dal database di back-end. Poiché ogni "modulo" è in grado di implementare il proprio set di oggetti dominio, non c'è davvero modo di vedere un ORM come l'EF funzionante a meno di creare semplicemente un contesto di dati mega o apportare modifiche al livello di accesso ai dati ogni volta che viene introdotto un nuovo modulo (che non è possibile se il modulo viene aggiunto da una terza parte o come estensione post-distribuzione).
Per quello che vale, questa è un'applicazione su scala aziendale con un database contenente oltre 200 tabelle e una tonnellata di sproc, udfs, ecc.
Che consiglio puoi condividere?
Aggiorna
Ho confermato oggi che utilizzeremo un archivio dati legacy per la soluzione che utilizza stored procedure e funzioni definite dall'utente per la maggior parte delle operazioni di accesso ai dati. La nostra speranza è quella di evolvere da questo tempo, ma il budget e la tempistica per il progetto dettano la nostra creazione in cima ai database esistenti.
Questo cambia i tuoi pensieri?