19 messaggi dal 08 novembre 2005
Ciao a tutti,
sto progettando un applicativo a livelli.
Ho trovato qualche esempio in rete e notato diversi tipi di implementazioni per quanto riguarda ricerche "specifiche".
Supponiamo di avere una classe Book con rispettiva Category.
Ritente sia più opportuno:
A. Creare un metodo nel livello di business Books.GetByCategory(CategoryId) (con relativa query nel Data Layer)
B. Cercare in una collection (popolata con tutti record) tramite un FindAll?
Grazie in anticipo
Dipende dall'uso che dovrai fare dei dati. Se hai diverse migliaia di record di cui te ne servono soltanto alcuni per un utilizzo spot ti conviene creare una query, mentre se i dati sono meno corposi e magari devi utilizzarli più volte magari cashiandoli potrebbe convenire utilizzare metodi come il findall. La differenza sta nel fatto che con il primo metodo lavora il db e tu hai subito i dati che ti servono, mentre nel secondo prima devi fillarti il datatable e poi cercare...
un insime di tutte le cose.

il tuo metodo GetByCategory, "controlla" il contenuto della cache, se non troca nulla chiede al db.

il db recupera i dati li metti in cache e li rende disponibili per la chiamata corrente e quelle future.

a cache dopo un pò che non viene utilizzata deve essere ripulita in modo da on sovraccaricare troppo il sistema.

inoltre dovrai prevedere un sistema per invalidarla, in caso i dati in essa contenuti non siano più validi

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
19 messaggi dal 08 novembre 2005
@cave: Grazie di cuore era proprio ciò che volevo sentire. Avevo intuito si potessero utilizzare entrambi, ognuno nell'ambito opportuno. Mi interessava capire se uno dei due metodi fosse sconsigliato a priori e perchè. Non è così e mi fa piacere.

@nostromo: Perdonami, dici di utilizzare entrambi i metodi ma nel tuo esempio ritrovo solo la chiamata sul db. Mi sono perso qualcosa? Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.