folgendes Szenario: Ein Client (WinCe DotNet CF2.0) fordert Daten von einem WebService (DotNet 3.5) an. Der Webservice bekommt seine Daten aus einem SQL Server als XML. Diese Daten sollen möglichst platzsparend transportiert werden. Das Datenformat kann ich frei bestimmen.
Status-Quo: Das XML wird momentan als String (OuterXml) übertragen: Ungut, weil viel Platz für die Nodenamen draufgeht
Welche Möglichkeiten gibt es sonst noch?
* Den XML-String komprimieren und als Byte-Array übertragen? Hier stünde mir die SharpZipLib auf Client- und Serverseite zur Verfügung.
* Das XML in ein DataSet überführen? Wir das überhaupt was komprimiert?
die Idee mit der Komprimierung halte ich für zielführend bei geringem Impact. Selbst Base64 codiert dürfte das schon deutlich kleiner sein. Compress/Decompress kannst Du schön nebendran stellen, Rest bleibt wie er war. Neues Format zu wählen oder auf DataSet (mit z.B. binärer Serialiserung) umzustellen, würd ich persönlich nur machen, wenn noch andere Gründe gegen das alte Format sprechen.
UPDATE: Sorry, hab eben erst bemerkt, dass Du das Format selbst bestimmen kannst, d.h. XML noch gar nicht implementiert/gesetzt ist. Aus diesem Grund würde ich mich Jürgens Meinung anschließen und für ein übliches Format plädieren; JSON sicher eine gute Wahl.
danke für die prompte Antwort! JSON ist auf Webservice-Seite sicherlich eine gute Wahl, aber auf Client-Seite (WinCe Compact-Framework) habe ich schlechte Karten, das JSON zu deserialisieren.
auch Dir Danke für Deine Antwort! Ich werde mich wahrscheinlich dann auch für JSON entscheiden.
Grüße ... Peter