Salve a tutti,
apro questo post perchè ho bisogno di un consulto da parte di qualche esperto.
E' da un po' di anni che lavoro soprattutto in c/c++, ma recentemente mi sono ritrovato a
riprendere in mano alcuni progetti ASP.NET - C# che avevo sepolto in una remota cartella del pc.
Quando avevo progettato la struttura di queste web-applciation, avevo impostato un'architettura che mi sembrava buona e abbastanza flessibile.
Riprendendo in mano queste cose ora, però, mi è venuto il dubbio che forse questa architettura è diventata vecchia, e che il buon Microsoft, ha introdotto
qualche nuovo strumento che mi permette di minimizzare gli sforzi.
L'architettura usata era banalmente a 3 livelli: interfaccia, dati, e gestore dati.
In particolare all'interno dell'interfaccia ( leggi pagina.aspx) era presente un oggettoHandler che si occupava di accedere al db ed estrarre degli Oggetti con cui popolavo i controlli.
Oggetti e OggettiHandler erano su due piani distinti.
L'aspetto un po' + complesso era legato a questo OggettoHandler.
All'avvio della web application leggevo da file config tutte le possibili stringhe di connessione, creavo i rispettivi oggetti Connection
e li infilavo in un dizionario statico in modo da averli disponibili sempre.
Creavo successivamente tutti gli OggettiHandler necessari per accedere ai dati nel db, li legavo all'oggetto Connection previsto, e anche questi li ficcavo in una collezione statica.
Tutta questa logica era ovviamente eseguita un'unica volta all'avvio della web-application ( la chiamata principale era nel global.asax)
A questo punto in ogni pagina era possibile richiamare i vari OggettiHandler presenti nella collezione statica per fare tutte le query del caso.
Apertura e chiusura connessione erano gestite a livello di classe base, attraverso l'uso dell'oggetto Connection ( opportunamente tipizzato sul tipo di DB).
Vorrei avere un parere da voi, in modo da capire se quanto ho in mano è una vaccata clamorosa o è qualcosa su cui si può continuare a lavorare.
Grazie per l'attenzione.