Condividi tramite


Panoramica del modello di factory (ADO.NET)

In ADO.NET 2.0 sono state introdotte nuove classi di base nello spazio dei nomi System.Data.Common. Le classi di base sono astratte, ovvero non è possibile creare un'istanza di tali classi in modo diretto. Includono DbConnection, DbCommande DbDataAdapter e sono condivise tra i provider di dati .NET Framework, ad esempio System.Data.SqlClient e System.Data.OleDb. L'aggiunta di classi di base consente di aggiungere più facilmente funzionalità ai provider di dati .NET Framework senza dover creare nuove interfacce.

In ADO.NET 2.0 sono state inoltre introdotte classi di base astratte che consentono agli sviluppatori di scrivere codice per l'accesso ai dati generico e non dipendente da un provider di dati specifico.

Modello di progettazione a livello di factory

Il modello di programmazione per la scrittura di codice indipendente dal provider è basato sul modello di progettazione a livello di factory, che utilizza una singola API per accedere ai database di più provider. Il nome di questo modello è appropriato in quanto richiede l'utilizzo di un oggetto specializzato soltanto per creare altri oggetti, non molto diversamente da una fabbrica reale. Per una descrizione più dettagliata del modello di progettazione a livello di factory, vedere "Writing Generic Data Access Code in ASP.NET 2.0 and ADO.NET 2.0" e "Generic Coding with the ADO.NET 2.0 Base Classes and Factories" https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vsgenerics.asp in MSDN (informazioni in lingua inglese).

A partire da ADO.NET 2.0 la classe DbProviderFactories fornisce metodi static (o Shared in Visual Basic) per la creazione di un'istanza di DbProviderFactory. L'istanza restituisce quindi un oggetto fortemente tipizzato corretto basato sulle informazioni fornite dal provider e dalla stringa di connessione in fase di esecuzione.

Vedere anche

Concetti

Recupero di un oggetto DbProviderFactory (ADO.NET)

DbConnection, DbCommand e DbException (ADO.NET)

Modifica di dati con un DbDataAdapter (ADO.NET)