Vollständig eigene Datenstrukturen/-inhalte

Für augenscheinlich nicht direkt unterstützte Dateninhalte findet sich meist trotzdem ein passender Provider. Businessdaten aus Anwendungen können in der Regel über den Objektdatenprovider übergeben werden, liegen die Daten in kommaseparierter Form vor kann der Datenprovider aus dem "Dataprovider"-Beispiel verwendet werden. Viele andere Datenquellen unterstützen die Serialisierung nach XML, so dass dann der XmlDataProvider verwendet werden kann.

Natürlich kann aber auch eine eigene Klasse verwendet werden, die die DataProvider-Schnittstelle unterstützt. Ein guter Startpunkt hierfür ist das DataProvider-Beispiel, das einen einfachen CSV-Datenprovider demonstriert. Oft kann auch eine der vorhandenen Klassen als Basisklasse verwendet werden. Wenn z. B. eine Datenquelle angebunden werden soll, die die IDbConnection-Schnittstelle implementiert, kann von DbConnectionDataProvider geerbt werden. Hier muss dann lediglich die Init-Methode überschrieben werden, in der die verfügbaren Tabellen und Relationen bereitgestellt werden müssen. In der Komponentenhilfe für .NET findet sich ein Beispiel, wie dies z. B. für SQL-Serverdaten im SqlConnectionDataProvider gemacht wird. Die meisten Datenbanksysteme stellen ähnliche Mechanismen zur Verfügung.

Unter github.com/combit/NETDataProviders finden sich Open Source-Implementierungen für eine Vielzahl weiterer Datenquellen wie MySQL, PostgreSQL, DB2 und Oracle. Auch diese können ein guter Ausgangspunkt für eigene Provider sein.