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; }

// Gibt es für den Konfigurierer die Möglichkeit eine  (SQL) Abfrage zu erstellen?
bool ShowSqlQueryEditor { get; }

// Wenn aktiv, wird ein zweites Verbindungsfeld angezeigt, um eine eigene Verbindung für die Vorschau aufzubauen
bool ShowConnectionForPreview { get; }

// Funktion zum Abrufen der Daten aus der Datenquelle
// Die ColumnNames müssen die Namen aller Spalten zurückliefern (Metadaten) [Für die Preview ist diese Rückgabe nicht erforderlich]
// Das Data-Object muss etwas sein, was an das Devexpress MVCXGridView gebunden // werden kann. Z.B. IEnumerable<T>, XPDataView, DataTable usw. [Für die Preview ist diese Rückgabe nicht erforderlich]
// Die previewNumber enthält die Anzahl der Datensätze 
// 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
// Ausnahme hier: forPreview ist gesetzt, wenn die Daten abgerufen werden, während sich das Widget im Vorschaucontainer in der Ansicht der Vorschaukachel befindet.

(IEnumerable<string> columnNames, object data, int previewNumber) GetData(string connectionString, string manualConnectionString, string password, bool forPreview, string query, string previewConnection, string previewQuery, List<string> parameterNames, List<object> parameterValues);