Vedo due principali "scuole di pensiero" quando si tratta di creare applicazioni su scala aziendale su .NET (Winforms, WPF, ASP.NET).Modello di repository rispetto a oggetti aziendali "intelligenti"
Alcuni usano il "modello di repository" che utilizza un repository che sa come recuperare, inserire, aggiornare ed eliminare oggetti. Questi oggetti sono piuttosto "stupidi" in quanto non contengono necessariamente un sacco di logica - ad es. sono più o meno oggetti per il trasferimento dei dati.
L'altro campo utilizza ciò che io chiamo oggetti di business "intelligenti" che sanno come caricarsi, e in genere hanno un metodo Save(), possibilmente Update() o addirittura Delete(). Qui non hai davvero bisogno di alcun repository - gli oggetti stessi sanno come caricare e salvare se stessi.
La grande domanda è: quale uso o preferisci? E perché?
Usi lo stesso approccio in tutte le tue app o hai qualche criterio particolare per scegliere un approccio rispetto all'altro? Se è così - quali sono questi criteri?
Non sto provando a iniziare una guerra di fuoco qui - solo cercando di scoprire cosa pensano tutti di questo e qual è la tua opinione, e perché usi uno (o entrambi) schemi sull'altro.
Grazie per qualsiasi input costruttivo!
In tal caso, un repository generico deve sapere come caricare tutti i tipi di oggetti. –
e poiché è generico può gestire il caricamento di tutti i tipi di oggetti. Semplifica anche il test delle unità –
Mi piace anche lo stile di repository perché gli oggetti di trasferimento dei dati sono più flessibili. Puoi usarli ovunque, senza dipendere da framework, layer, ecc. Rappresentano semplicemente il concetto, il modello. Se vuoi un ponte tra il modello e il BD, costruisci il livello di persistenza. Vuoi un ponte tra il modello e l'utente che costruisci l'interfaccia utente. Si desidera calcolare le cose, implementare i casi d'uso, creare la logica aziendale. Tutto si riferisce semplicemente agli oggetti del modello che non sono collegati a nulla più del concetto di business stesso. – helios