Das Datenintegrationswidget unterstützt im Auslieferungszustand die Datenprovider XPO und ODBC. Falls eine Datenquelle angebunden werden soll, die mit diesen Providern nicht kommunizieren kann, ist es erforderlich, einen eigenen Datenprovider zu schreiben.

Dazu muss das Interface IDataIntegrationWidgetProvider implementiert werden. Sobald das Interface implementiert ist, erscheint der neue Datenprovider automatisch zur Auswahl und kann verwendet werden.

Dieses erfordert folgende Properties und Funktionen:

// Eindeutige, neue Guid des Providers   
Guid Guid { get; }

// Anzeigename für den Provider
string ProviderTitle { get; }

// Wenn dem Konfigurierer Verbindungen per Dropdown zur Auswahl angeboten
// werden sollen, muss hier das Properties Object des zugehörigen 
// ConnectionProviders angegeben werden. Ist das nicht erforderlich, kann dieser // Property auch null zugewiesen werden. Die Auswahl wird in dem Fall dem 
// Konfigurier dann nicht angezeigt. Die Implementierung des passenden CDPs und 
// dessen Settings-Klasse ist identisch mit den CDPs für Steuerelemente.
ControlDataProviderPropertiesBase ConnectionProviderProperties { get; }

// Soll der Konfigurierer die angeboten bekommen, einen manuellen Connectionstring anzugeben? 
bool ShowManualConnectionStringField { get; }

// Soll der Konfigurierer ein Passwort hinterlegen können?
bool ShowPasswordField { get; }

// Funktion zum Abrufen der Daten aus der Datenquelle
// Die ColumnNames müssen die Namen aller Spalten zurückliefern (Metadaten)
// Das Data-Object muss etwas sein, was an das Devexpress MVCXGridView gebunden // werden kann. Z.B. IEnumerable<T>, XPDataView, DataTable usw.
// Die übergebenen Parameter stammen alle samt aus der Konfiguration und es ist 
// Sache des Provider-Entwicklers, diese bei der Datenbeschaffung aus seiner 
// Datenquelle wo nötig zu berücksichtigen
(IEnumerable<string> columnNames, object data) GetData(string connectionString, string manualConnectionString, string password, string query, List<string> parameterNames, List<object> parameterValues);