Übersicht über das Factorymodell
In ADO.NET 2.0 wurden im System.Data.Common-Namespace neue Basisklassen eingeführt. 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.
Außerdem wurden abstrakte Basisklassen in ADO.NET 2.0 eingeführt, mit denen Entwickler in der Lage sind, generischen Datenzugriffscode zu schreiben, der datenanbieterunabhängig 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 unter Schreiben von generischem Datenzugriffscode in ASP.NET 2.0 und ADO.NET 2.0.
Ab ADO.NET 2.0 stellt die DbProviderFactories-Klasse zum Erstellen einer static
-Instanz Shared
-Methoden (in Visual Basic DbProviderFactory-Methoden) bereit. Die Instanz gibt dann anhand der Anbieterinformationen und der zur Laufzeit bereitgestellten Verbindungszeichenfolge ein korrektes, stark typisiertes Objekt zurück.