Sto iniziando un progetto e sto lottando con l'architettura per il nostro livello di accesso ai dati. Fondamentalmente sarà necessario interfacciarsi con più backend con diversi design di database.Livello di accesso ai dati con più backend e diversi design di database
Vorrei un DAL comune, che esegue una funzione comune in qualsiasi back-end. I backend hanno un codice univoco per l'inserimento, l'aggiornamento, ecc. Quindi aggiungere un Employee in 1 backend avrà un codice diverso in un altro.
Ho provato il modello di repository ma questo non si applica alla situazione. Ho finito con solo un metodo di modello di fabbrica, ma finirò per creare una fabbrica per ogni oggetto. Potrei forse creare solo 1 fabbrica, ma poi l'oggetto backend avrei centinaia di funzioni come "SaveEmployee", "SavePlan", ecc
In questo momento ho il seguente:
DAL
--> DAL.Backend1
--> Employee.Save(employee)
--> Plan.Save(plan)
--> DAL.Backend2
--> Employee.Save(employee)
--> Plan.Save(plan)
Nel progetto DAL Ho un pattern Factory per ogni oggetto, Employee, Plan, per decidere quale oggetto DAL restituire ed eseguire contro.
Sono sicuro che questa non è la migliore architettura per questo, quindi mi chiedo se c'è un modello migliore da usare per risolvere il mio problema.
Meno andando dinamicamente e dinamicamente costruendo le dichiarazioni CRUD, avrete intenzione di avere la funzionalità concreta da qualche parte. Se non lo vuoi nel database, allora penso che il percorso che hai percorso sia il migliore. –
Di solito tendo al modello composito. – Malk
Definire "diversi progetti di database". Intendi: uno è SQL, un XML, uno NoSql? Oppure parliamo di diversi database relazionali? – TomTom