Claudio Brotto

[APPTXT] Accesso ai Dati ma non solo

Cambiamo radicalmente genere rispetto ai due ultimi "numeri".

Nessuna spiegazione sulla tecnologia, forse qualche consiglio sull'architettura.

Queste alcune domande che mi sono state poste in una mail:

  • [Vorrei creare degli user control che]... dovranno anche accedere ai dati contenuti nei database. Problem: come si scambiano i dati il controllo con il database?
  • Nella tua mail precedente mi suggerisci di non usare la tecnica DataSet per i dati ...  (usando DataSet o se possibile altre tecniche) ... che altra tecnica dovrei usare ?
  • Come interagiscono le Class Library basate sulle tabelle (e quindi sui campi delle stesse) con gli user control e quindi sui DataSet e come si relazionano con i databases?

Altrettanto, spulciando i miei appunti.txt, spesso ho inserito note riguardo le tematiche di accesso ai dati.

Bad News: qui non c'è risposta ...

Bad Bad News: non è detto che ci sia *la risposta* !

Il motivo è presto detto. Queste domande presuppongono la discussione di tematiche non prettamente tecniche stile Q&A. Come dicevo nel numero zero, non è "come si fa a creare una stringa di connessione" che viene toccato in questo caso. Piuttosto la scelta di una strategia di accesso ai dati.

"Mi suggerisci di non usare il DataSet, e allora cosa uso ?"

"Come si relazionano {controllo|classlibrary|...} con il database ?"

So già che una certa persona riderà (o forse mi tirerà un accidente da far cascare le montagne) ma, mi spiace, la risposta è "dipende". E non è la solita risposta per svicolare. Dipende veramente da una pletora di fattori.

Qualcosa, sì, si può anche ritenere valido in linea generale.

Non inserirei il codice di accesso al database (query, connessioni, ...) all'interno di un controllo utente. Perchè assegneremmo ad una parte della nostra applicazione (quella che si occupa della presentazizone della stessa all'utente, l'interfaccia grafica per dirla in due parole) una responsabilità che, almeno direttamente, non è sua.

Non userei i DataSet ... ma non è mica detto che in ogni applicazione siano richiesti quei requisiti (scalabiità. modularità, ...) che giustificano la rinuncia a tutte quelle funzionalità "così comode" che il DataSet utilizza ed eroga (supporto dal designer di VS su tutti).

Anche perchè, sarà banale, ma di tipologie di applicazioni ce n'è un pochetto !

La classica demo da mezz'oretta ("bisogna far vedere al cliente qualcosa, arriva stopomeriggio") e eBay (a proposito, fate un giro qui) hanno qualcosa in comune: accedono a dati.

In effetti hanno anche qualcosina di diverso: per esempio qualche centinaio di migliaia di utenti contemporaneamente connessi :)

Nella mia demo lo metto anche un controllo che fa login sul db prendendo userid e password dalla finestrella che viene visualizzata all'avvio ... basta ricordarsi che quel codice tendenizalmente *non deve* andare in produzione pena taglio del.....le mani.

Con queste considerazioni alla mano, forse quel "dipende" ha un po' più senso.

Ma allora il povero sviluppatore (col cappellino da architetto) come fa ??

Secondo me, dal momento che suo malgrado si ritrova costretto ad effettuare una scelta progettuale che può avere una portata e delle ripercussioni piuttosto importanti, conviene discutere, leggere, imparare ... semplicemente per poter affrontare un decisione con maggiore consapevolezza.

Ecco quindi qualche riferimento.

Dove, ripeto a forza di diventare rompiballe, non si trova *la soluzione*, ma di sicuro si trovano contenuti validi e giudizi competenti per capire quali sono i fattori da considerare nel *cercare la soluzione*.

Ecco qualche link: