Data Layer vs Business Layer

2

Penso di essere in minoranza su questo, ma sarei curioso di vedere altre prospettive.

Molte volte vedo persone parlare del Data Layer come avere funzioni come UpdateCustomer () o Summarize (). Mi sento davvero come se il Data Layer fosse più astratto di quello. Attualmente utilizzo un modello di repository generico in cima al framework di entità nel mio livello dati. Quindi ottengo funzioni come Trova (int id), Aggiorna (), Salva (), Tutto (), ecc. Funzioni molto generiche.

Quindi creo i livelli di Business Logic che hanno funzioni più specifiche come Summarize () che funzionano sul Data Layer generico. Per me basta isolare la tecnologia di accesso ai dati per il livello dati. È un lavoro abbastanza grande per conto proprio. Perché fornire queste apparentemente funzioni di query nel tuo livello dati? La logica aziendale che scrivo gran parte del tempo è all'interno delle query di Linq stesse, quindi per me tutte le query specifiche dovrebbero essere nel livello aziendale e non nel livello dati, ma questo non è ciò che vedo spesso.

Inoltre, poiché i miei livelli dati non sono molto generici, posso condividerli, sono DLL, con altri livelli aziendali (spesso servizi web) in modo da poter combinare insieme dati molto diversi tra loro in un Business Layer per unire le query tra il 2 (poiché ho accesso generico ai dati sottostanti) e aiuta anche a non dover ricreare i livelli di dati per ciascuna soluzione separata. Per me è una grande possibilità di recupero.

Mi chiedo quale sia l'opinione opposta sul mio punto di vista qui. Perché sono "sbagliato" a pensare in questo modo e perché l'altro è "giusto"?

    
posta user441521 03.12.2015 - 22:36
fonte

2 risposte

2

È una questione di definizione dei termini Dati e Business. La tua prospettiva sembra essere che il Data Layer abbia a che fare con i dati generici e Business Layer indichi al Data Layer quali dati.

Un'altra prospettiva è considerare il livello dati come consistente nella raccolta / attributi delle classi di dati e nel livello aziendale come costituiti dai metodi delle classi di dati.

L'unico aspetto che posso pensare con il tuo approccio è che il Business Layer può diventare un po 'pesante.

    
risposta data 03.12.2015 - 23:47
fonte
0

Questo non è esattamente uno scenario insolito.

Puoi certamente implementare il tuo DAL in questo modo, ma probabilmente vorrai un altro livello di astrazione tra quello e il tuo livello aziendale. Ho visto in passato un livello di deposito o servizio.

Il tuo DAL offre funzioni molto generiche per trovare, recuperare o archiviare dati. Il livello di servizio funge da fornitore per il livello aziendale e ottiene questi oggetti all'interno di determinati contesti e parametri, che riceve dal livello aziendale.

    
risposta data 09.12.2015 - 17:44
fonte

Leggi altre domande sui tag