02.06.2013 Views

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPITOLO III - Progettare un’<strong>applicazione</strong>: i design pattern<br />

specifico oggetto factory in funzione del nome invariante che identifica univocamente il<br />

managed provider da utilizzare.<br />

Le classi derivate da DbProviderFactory consentono a loro volta <strong>di</strong> istanziare i principali<br />

oggetti per l’accesso ai dati come <strong>una</strong> connessione o un comando, eliminando l’accoppiamento<br />

tra l’istanza creata e il suo contesto d’utilizzo. Sfruttando il polimorfismo e l’insieme <strong>di</strong> classi<br />

base astratte contenute in System.Data.Common, l’approccio basato sul provider factory<br />

permette <strong>di</strong> scrivere co<strong>di</strong>ce che è in<strong>di</strong>pendente dal particolare managed provider utilizzato. Nel<br />

nostro caso abbiamo la classe DatabaseConfigurationView.cs in cui viene creato l’oggetto<br />

factory:<br />

DbProviderFactory providerFactory = DbProviderFactories.GetFactory(dbProviderName);<br />

e la classe:<br />

public sealed class MySQLClientFactory : DbProviderFactory<br />

che ere<strong>di</strong>ta da DbProviderFactory<br />

Il provider name viene specificato nel file web.config nella sezione connection strings:<br />

<br />

<br />

<br />

Nel web.config viene specificato il nome del PC, la sorgente dei dati che in questo caso è il<br />

localhost, il nome del database e la stringa <strong>di</strong> connessione relativa ad un database MySQL.<br />

• BUILDER<br />

Il pattern Builder consente <strong>di</strong> <strong>di</strong>videre la costruzione <strong>di</strong> un oggetto complesso e composito dalla<br />

sua rappresentazione, in maniera tale che lo stesso processo <strong>di</strong> costruzione possa essere<br />

47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!