Vue d'ensemble du modèle de design Factory (ADO.NET)
ADO.NET 2.0 a introduit de nouvelles classes de base dans l'espace de noms System.Data.Common. Les classes de base sont abstraites, ce qui signifie qu'elles ne peuvent pas être directement instanciées. Il s'agit des classes DbConnection, DbCommand et DbDataAdapter qui sont en outre partagées par les fournisseurs de données .NET Framework, tels que System.Data.SqlClient et System.Data.OleDb. L'introduction de classes de base simplifie l'ajout de fonctionnalités aux fournisseurs de données .NET Framework sans avoir recours à la création de nouvelles interfaces.
ADO.NET 2.0 a également introduit des classes de base abstraites pour permettre aux développeurs d'écrire du code générique d'accès aux données qui ne dépend pas d'un fournisseur de données spécifique.
Modèle de design Factory
Le modèle de programmation permettant d'écrire du code indépendant du fournisseur repose sur l'utilisation du modèle de design « Factory ». Ce modèle utilise une seule API pour accéder à des bases de données sur plusieurs fournisseurs. Ce modèle est correctement nommé, puisqu'il invoque l'utilisation d'un objet spécialisé uniquement pour créer d'autres objets, un peu comme un véritable factory. Pour obtenir une description détaillée du modèle de design Factory, voir « Writing Generic Data Access Code in ASP.NET 2.0 and ADO.NET 2.0 » (en anglais) et « 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 (en anglais) sur MSDN.
À partir d'ADO.NET 2.0, la classe DbProviderFactories fournit des méthodes static (ou Shared en Visual Basic) pour créer une instance DbProviderFactory. Cette instance retourne ensuite un objet fortement typé correct reposant sur les informations du fournisseur et la chaîne de connexion fournie au moment de l'exécution.
Voir aussi
Concepts
Obtention d'un DbProviderFactory (ADO.NET)
DbConnection, DbCommand et DbException (ADO.NET)
Modification de données à l'aide d'un DbDataAdapter (ADO.NET)