Angella Andrea - Italian Blog

Infinita passione per lo sviluppo software !
posts - 133, comments - 216, trackbacks - 9

My Links

News

MIT OpenCourseWare: I'm invested Wikipedia Affiliate Button


Sto leggendo:

Archives

Post Categories

Siti web realizzati

Siti web tecnici

[70-526] - Gestione delle connessioni

Area di riferimento

- Integrating Data in a Windows Forms Application
    - Manage connections


Gestione delle connesssioni

Ci sono diversi modi per configurare una connessione ad una base di dati.

  1. Configurare una connessione utilizzando Server Explorer
  2. Configurare una connessione utilizzando il Connection Wizard
  3. Configurare una connessione utilizzando la classe Connection e quelle specifiche

Di seguito alcune immagini che mostrano come avviare i primi due wizard:

2008-03-11_010745 2008-03-11_010842

Il framework mette a disposizione diverse classi Connection specifiche: SqlConnection, OleDbConnection, OdbcConnection, OracleConnection.

2008-03-11_011802

Ecco un esempio di creazione di oggetti di tipo Connection:

2008-03-11_013116

Per aprire e chiudere una connessione è sufficiente chiamare i metodi Open e Close.

E' possibile utilizzare gli eventi della connessione per ottenere informazioni dal database. L'evento StateChangedEvent è sollevato quando lo stato corrente del database cambia da aperto a chiuso. L'evento InfoMessage viene sollevato quando il server vuole notificare warning o messaggi.

2008-03-11_014429

2008-03-11_014434


Pool delle connessioni

Per ridurre l'overhead della creazione e distruzione di connessioni è importante utilizzare il pool delle connessioni. Il pool delle connessioni è attivato di default quando vengono creati oggetti connessione di ADO.NET. Per disattivare il pooling basta impostare a false la proprietà Pooling.

Di default l'oggetto SqlConnection automaticamente utilizza il connection pooling. E' possibile aggiungere delle parole chiave all'interno della stringa di connessione per controllarne il comportamento.
E' possibile utilizzare in particolare:

  • "Connection Lifetime": la connessione sarà distrutta dopo un certo numero di secondi qui impostati
  • "Max Pool Size": il numero massimo di connessioni permesse nel pool per la specifica stringa di connessione
  • "Min Pool Size": il numero minimo di connessioni permesse nel pool
  • "Pooling": per attivare o meno il connection pooling

Proprietà analoghe sono inseribili nelle stringhe di connessione per Oracle.

Con OLE DB è possibile controllare l'uso del pooling aggiungendo la parola chiave services alla stringa di connessione.
E' possibile utilizzare:

  • "OLE DB Services = -1": tutti i servizi sono attivi
  • "OLE DB Services = -4": tutti i servizi attivi eccetto il Pooling e AutoEnlistment di transazionie
  • "OLE DB Services = -5": tutti i servizi attivi eccetto Client Cursor
  • "OLE DB Services = -8": tutti i servizi attivi eccetto Pooling, AutoEnlistment e Client Cursor.
  • "OLE DB Services = 0": nessun servizio attivo

Con ODBC per attivare o disattivare il pooling si deve utilizzare la finestra di dialogo "ODBC Data Source Administrator" in Windows.


Gestione delle eccezioni

Quando si vuole eseguire una query su un server di database è estremamente importante gestire in maniera opportuna le eccezioni che potrebbero essere sollevate.
La collection Errors in un oggetto di tipo SqlException contiene tutti gli errori forniti dal dbms.

2008-03-11_022125

Enumerare le istanze di SQL Server disponibili su una rete

Per ottenere la lista dei SQL Server disponibili si utilizza la proprietà Instance della classe SqlDataSourceEnumerator per poi chiamare il metodo GetDataSources. Questo metodo restituisce una DataTable che contiene varie informazioni accessibili tramite le colonne "ServerName", "Instance Name", "IsClustered", "Version".

2008-03-11_023124

Proteggere l'accesso alle stringhe di connessione

Memorizzare informazioni sensibili con testo in chiaro non è consigliato per ovvi motivi di sicurezza.
Generalmente le informazioni relative alla stringa di connessione al database vengono memorizzate nel file di configurazione dell'applicazione (app.config):

2008-03-11_023930

Il metodo utilizzato per rendere più sicuro il file di configurazione è cifrare le sezioni che contengono informazioni sensibili.
Ecco lo spezzone di codice necessario per cifrare il contenuto della sezione connectionStrings all'interno del file di configurazione:

2008-03-11_221620 

e quello per decifrarne il contenuto:

2008-03-11_221627

Print | posted on Tuesday, March 11, 2008 9:29 PM | Filed Under [ Exam 70-526 Windows-Based Client Development ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET