Mi soddisfo con poko...

Nel WE stavo scrivendo del codice per alcuni esempi e mi sono ritrovato a scrivere qnto segue:

private void BindDataGrid(){
   object prodotti = Session["Prodotti"];
   if(prodotti == null){
    prodotti = Prodotti.Retrieve(); 
    Session["Prodotti"] = prodotti;
   }   
   DataGrid1.DataSource = prodotti;
   DataGrid1.DataBind();
 }

 

Che piu lo guardo e piu mi compiaccio... e posso capire che uno si chieda "coma mai?" e in effetti mi soddisfo con poco... La ragione è la seguente: il metodo "Prodotti.Retrieve" torna un Datatable ma io ne tengo riferimento in una variabile di tipo "object"... perchè? perchè non ho necaessità di usare le funzionalità di un Datatable e mi evito anche un Cast (esplicito) nel momento in cui estraggo l'oggetto dalla Session :p

Beh si è fatto tardi... è qsi ora di andare a casa :p

Il DataTable per Astrarre

L'altro giorno mi trovavo a ripensare ad un therad del forum, http://www.ugidotnet.org/forum/thread.asp?m=36129.
Ho inizato a navigare con i la testa e ho tirato fuori un pensiero. Quale è il vantaggio di usare il datatable rispetto al datareader? ... non certo in performance. Ne ho dedotto ke il Datatable è un ottimo oggetto per favorire la creazione di strati di astrazione tra livelli.

Se la mia classe di Biz tornasse un DataReader che poi la presentation mette in bind con una datagrid sto obbligando la presentation a conoscere il database! Se cambia la base dati? Certo se cambia la base dati posso sempre costruire una SELECT ad hoc per far avere un DataRedaer con la struttura che la griglia si aspetta... ma non è sempre semplice. Se si tratta di modifiche sui campi basta usare gli alias... il problema qsi non sussiste se si tratta di fare la join tra due tabelle... ma se la mia fonte dati non è piu qlkosa accessibile via ADO? se la fonte dati è addirittura frammentata?
Il datatable soprattutto è un contenitore di dati... l'uso semplice del datatable è qllo di usarlo in combo con il DataAdapter che ci aiuta a versare i dati dal Datareader al Datatable... ma il Datatable è molto di piu! La struttura del datatable può essere decisa a codice e non è certo necessario un DataAdapter  per versarci dentro dei dati... che possono arrivare da fonti diverse... fonti la cui forma non deve interessare alla presentation... certo qsto nell'ottika di avere applicazioni scalabili! :p

o0( si sarà capito il pensiero?)
«aprile»
domlunmarmergiovensab
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678