Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Permettere l'uso di diversi DB

0 views
Skip to first unread message

bo

unread,
Nov 18, 2009, 9:01:57 AM11/18/09
to
ciao,
sto iniziando un nuovo progetto di un gestionale che deve permettere
l'uso di diversi database. In fase di configurazione del programma
l'utente puᅵ decidere che tipo di database usare. Non c'ᅵ la necessitᅵ
di usare contemporaneamente database differenti. Diciamo comunque SQL
Server, MySQL, Oracle, Access...
L'idea ᅵ quella di astrarre le interrogazioni che il software farᅵ dal
tipo di database. Come fare?
Per ora con Visual studio 2008 ho creato tramite il Designer il DataSet
con dentro le mie tabelle (il DB che devo creare mi ᅵ stato fornito su
Access). Con un form di prova riesco ad aggiornare il Database senza
problemi. Come fare perᅵ a scollegare il software dallo specifico database?
L'idea mia sarebbe quella di creare una classe con delle sottoclassi
specifiche per ogni DB. Tramite una Interface che specifica i metodi
comuni delle classi posso definire i miei metodi.
Tutto questo nella mia testa cozza un po' con i Dataset..
Come fare?

grazie

Matteo Migliore

unread,
Nov 18, 2009, 12:06:35 PM11/18/09
to
> L'idea ᅵ quella di astrarre le interrogazioni che il software farᅵ dal
> tipo di database. Come fare?

La strada che ti consiglio non ᅵ la piᅵ semplice, ma IMHO la piᅵ
potente e durevole...

> Per ora con Visual studio 2008 ho creato tramite il Designer il DataSet
> con dentro le mie tabelle (il DB che devo creare mi ᅵ stato fornito su
> Access). Con un form di prova riesco ad aggiornare il Database senza
> problemi. Come fare perᅵ a scollegare il software dallo specifico
> database?

Butta DataTable e DataSet, complicano il design, l'architettettura e la
manutenibilitᅵ
dell'applicazione.

> L'idea mia sarebbe quella di creare una classe con delle sottoclassi
> specifiche per ogni DB. Tramite una Interface che specifica i metodi
> comuni delle classi posso definire i miei metodi.

NHibernate fa questo e oltre, esistono molti provider (per tutti i DB piᅵ
"diffusi"? :)),
ti permette di scrivere query usando C# (Linq To Nhibernate).

Puoi guardarti questo progetto:
http://timeassistant.codeplex.com

C'ᅵ anche un'implementazione di un query engine, presa dalle idee di Mauro
Servienti
(ti consiglio il suo blog), che permette di scrivere in modo semplice query
(DTO)
facilmente "trasportabili" fuori dal server.

Questa risposta scalfisce solamente il mare di "problemi" che emergono dallo
sviluppo
di un software...

> Tutto questo nella mia testa cozza un po' con i Dataset..
> Come fare?

I DataSet IMHO cozzano con tutto :D.

> grazie

Prego! ;-)

--
Matteo Migliore
http://blogs.ugidotnet.org/matteomigliore

0 new messages