2009-11-02 12 views
5

Gibt es eine Best Practice in Bezug auf die Rückkehr (oder NICHT Rückgabe von Datensätzen) von .NET Web Services? Ein Camp sagt, dass wir die Interoperabilität fördern und XML-Schemas verwenden sollten, um die Web-Service-Nutzlast zu definieren. Das andere Camp sagt, wir sollten Datensätze zurückgeben, weil es in Visual Studio einfach ist und die Aufgabe schneller erledigt.Um ein Dataset in einem Webdienst zurückzugeben oder nicht?

Einige Argumente in der anti-Dataset Lager:

  • Datensätze sind nicht WSI konform
  • Datensätze scheinen selten von 3rd-Party-Software

Einige Argumente in der pro-Dataset unterstützt werden Lager:

  • Sie sind sehr handlich und schnell in Visual Studio zu bauen.
  • Wir (meine Firma) entwickelt sich nur in .NET so Interoperabilität kein Problem
  • Datensammlungen auf der Client-Seite ist Vorteile für einfache Bedienung haben

Antwort

3

Verwendung von Datensätzen? Ich würde tausendmal nein sagen. Sie sind nicht mit anderen Toolkits interoperabel (wie Sie erwähnen). Sicher, Ihre einzigen Kunden sind derzeit .NET, aber die Dinge können sich schnell ändern und es ist schön, vorbereitet zu sein.

Weitere Informationen finden Sie unter The XML Files.

Wenn Sie neue Dienste entwickeln, schreiben Sie sie mit WCF. Dann können Sie sie freistellen, wie Sie wollen. Wenn der Dienst und der Benutzer intern sind und beide .NET sind, können Sie die TCP-Bindung für eine bessere Leistung verwenden. Später, wenn jemand anderes mit Ihrem Service kommunizieren möchte, können Sie eine neue Web-Service-Bindung hinzufügen, damit Ihre Java-App (zum Beispiel) mit Ihrem Service interagieren kann. Ein praktisches Flussdiagramm finden Sie unter Choosing the right WCF binding.

1

ich im Lager wäre, dass Sie sollten nicht senden Sie es, aber dies ist eine Entscheidung, die basierend auf dem getroffen wird, was für Ihr Unternehmen wichtig ist.

Wenn Sie eine Webservice-API entwerfen, die im Grunde ein Vertrag zwischen dem Unternehmen und den Kunden ist. Daher können einige Personen im Unternehmen diese API für unternehmenskritische Vorgänge verwenden.

Dann erhalten Sie eine Anfrage, es über einen Blackberry arbeiten zu lassen. Jetzt müssen Sie den Webservice ändern, wodurch andere Anwendungen beschädigt werden können.

Also, wenn Sie sicher sind, dass Sie nie andere Plattformen als .NET unterstützen müssen, dann können Sie einfach mit der ersten Option gehen.

0

Ich würde auch keine Datensätze (wie die meisten der Community hier) gehen. Wie James sagt, sind Sie nie sicher, dass Ihr Dienst nur von .NET-Anwendungen konsumiert wird. Der Hauptgrund eines Webservice ist, dass es ein Standard ist, der von allen Technologien verwendet werden kann, wenn Sie es korrekt erstellen.

DataSets bricht auch die Ideen des domänengetriebenen Designs und der Trennung von Schichten und ist daher weniger angezogen, als sie ursprünglich waren. Ich verwende sie nur für Demos, die schnell und schmutzig sein müssen;)

Wenn Sie wirklich einen "einfachen" Weg der Entwicklung (innerhalb der IDE) wollen und immer noch mit allen Standards konform sind, sollten Sie Ihre Dienste mit erstellen WCF.

Verwandte Themen