Laden...

WCF Service mit veränderlicher Datenstruktur

Erstellt von telnet vor 13 Jahren Letzter Beitrag vor 13 Jahren 946 Views
T
telnet Themenstarter:in
327 Beiträge seit 2006
vor 13 Jahren
WCF Service mit veränderlicher Datenstruktur

Hallo,

ich bin grade dabei einen WCF-Service zu erstellen, der eine DataSet-ähnliche Datenstruktur zurückliefern soll. Ziel der ganzen Sache ist es, so flexibel wie möglich zu bleiben. Ändert sich die Rückgabestruktur am Server, soll der Client das automatisch abfangen.

Konkret geht es darum, die Daten zweier in Beziehung stehender Tabellen über den WCF-Service an den Client zu übergeben, der die Tabellen dann anzeigt. Wenn ich auf Service-Seite jetzt ein Feld hinzufüge, soll der Aufruf des Services trotzdem noch funktionieren, es soll lediglich das eine Feld zusätzlich angezeigt werden.

Erster Versuch war jetzt, ein DataSet als Returntype zu verwenden, was weder schön ist noch funktioniert 😉

Gibt's denn eine allgemeine Empfehlung, wie man so was am besten realisiert?
Feste Klassen als Datenstrukturen zu verwenden kommt ja leider nicht in Frage, da diese dann starr wären... Evtl. als XML-Dokument?

G
538 Beiträge seit 2008
vor 13 Jahren

Hallo,

Relationale Daten lassen sich prinzipiell ganz hübsch in XML verpacken (das Dataset hat sogar Methoden um mit XML umzugehen) und XML lässt sich gut übertragen, allerdings ist XML halt auch etwas Overhead. Ob das schlimm ist oder nicht, musst du allerdings selbst wissen.

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

3.728 Beiträge seit 2005
vor 13 Jahren

Hallo telnet,

Erster Versuch war jetzt, ein DataSet als Returntype zu verwenden, was weder schön ist noch funktioniert 😉

Warum hat es nicht funktioniert? DataSets funktionieren ohne Probleme mit WCF zusammen?

Warum findest Du, dass es nicht schön ist, DataSets einzusetzen? DataSets tun genau das, was Du suchst. Statt sie zu verwenden willst Du lieber selber mit XML rumwursteln?

T
telnet Themenstarter:in
327 Beiträge seit 2006
vor 13 Jahren

Hallo,

ich hab's jetzt so gelöst, dass ich das typisierte DataSet als normales, untypisiertes DataSet serialisiere und die Daten als string an den Client übergebe.
Der deserialisiert den string dann in ein untypisiertes DataSet, was vollkommen ausreichend ist, da der Client die typisierte Version erst gar nicht zu kennen braucht.

Aus irgendeinem Grund habe ich von meinem WCF-Service (self-hosted) mit einem DataSet einen Fehler bekommen... Evtl. lags dran, dass nicht alle Tabellen Einträge hatten bzw. Null-Werte vorgekommen sind ? Kann das Problem leider aktuell nicht mehr nachstellen, da ich dann gleich den Ansatz von oben verfolgt habe.

Direkt mit XML wollte ich eben nicht arbeiten.. jetzt funkionierts aber.. Danke für die Tipps!