Übersicht über das Factorymodell (ADO.NET)
Aktualisiert: November 2007
ADO.NET 2.0 stellt erstmals neue Basisklassen im System.Data.Common-Namespace zur Verfügung. Die Basisklassen sind abstrakt, können also nicht direkt instanziiert werden. Zu ihnen gehören die Basisklassen DbConnection, DbCommand und DbDataAdapter. Sie werden von den .NET Framework-Datenanbietern, z. B. System.Data.SqlClient und System.Data.OleDb, gemeinsam genutzt. Die neuen Basisklassen vereinfachen das Hinzufügen neuer Funktionen zu den .NET Framework-Datenanbietern, ohne dass dazu neue Schnittstellen erstellt werden müssen.
Mit ADO.NET 2.0 wurden außerdem abstrakte Basisklassen eingeführt, mit denen Entwickler generischen Datenzugriffscode schreiben können, der unabhängig von einem bestimmten Datenanbieter ist.
Das Factoryentwurfsmuster
Das Programmiermodell zum Schreiben anbieterunabhängigen Codes basiert auf der Verwendung des Factoryentwurfsmusters, das für den Zugriff auf Datenbanken mehrerer Anbieter eine einzige API vewendet. Dieses Muster ist geeignet benannt, da es die Verwendung eines spezialisierten Objekts nur zum Erstellen anderer Objekte bedingt, wie in einer realen Produktionsumgebung. Eine ausführlichere Beschreibung des Factoryentwurfsmusters finden Sie in MSDN unter Writing Generic Data Access Code in ASP.NET 2.0 and ADO.NET 2.0 und "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 ADO.NET 2.0 werden durch die DbProviderFactories-Klasse erstmals static- (oder in Visual Basic Shared-)Methoden zum Erstellen einer DbProviderFactory-Instanz zur Verfügung gestellt. Die Instanz gibt dann anhand der Anbieterinformationen und der zur Laufzeit bereitgestellten Verbindungszeichenfolge ein korrektes, stark typisiertes Objekt zurück.
Siehe auch
Konzepte
Abrufen einer 'DbProviderFactory' (ADO.NET)