2010-06-23 15 views
8

Für welche Anwendungen oder Entwicklungsszenarien macht die Verwendung von WCF Data Services Sinn und wann sind andere Technologien die bessere Wahl (zum Beispiel WCF RIA Services, ADO Entity Framework, klassisches ADO.NET, einfache Dienste oder was auch immer)?Wann WCF-Datendienste und wann nicht?

Antwort

12

WCF Data Services ist eine ziemlich einfache und schnelle Möglichkeit, Ihr Datenmodell - Sammlungen und Entitäten - im Internet zu veröffentlichen. Sie können Ihre Sammlungen ganz einfach durchsuchen, Entitäten usw. durchsuchen, und zwar über Standard-HTTP/REST-Aufrufe.

Solange Sie meistens haben - Anzeigen und Anzeigen von Entitäten und Sammlungen von Entitäten - es funktioniert wirklich gut. Ich kenne den zusätzlichen Bonus, den die WCF RIA Services gerade noch haben, nicht wirklich - habe das nicht zu sehr untersucht.

WCF Data Services basieren auf einer Modelldarstellung Ihrer Daten - hier kommt Linq-to-SQL oder Entity Framework zum Einsatz und Sie können dieses Modell basierend auf Ihrer physischen Datenbank erstellen.

Wenn Sie jedoch so etwas wie methodenorientierte Dienste verwenden müssen - wie "Kunden einfügen", "Gesamtaufträge für Kunden berechnen" usw., dann ist ein SOAP-basierter WCF-Dienst besser geeignet. Ein SOAP-basierter WCF-Dienst definiert einen Dienstvertrag (eine Reihe von Methoden für Ihren Dienst) und ermöglicht Ihnen, diese Methoden für Ihr Dienstobjekt aufzurufen.

SOAP ist ideal für transaktionsorientierte Geschäftsaufgaben - es ist selbstbeschreibend, z. Ihr Client kann den SOAP-Service (einen Bereich, in dem REST sehr fehlt - es gibt kein "WSDL" oder etwas, das für REST-Services vergleichbar ist) ermitteln und abfragen.

Und wenn Sie SOAP machen, würde ich auch empfehlen, einen modellbasierten Ansatz für Ihre Daten zu verwenden - erstellen Sie ein Modell Ihrer Datenbank und legen Sie Methoden für diese Entitäten der Außenwelt offen - wiederum mit Linq-to SQL, Entity Framework, NHibernate oder ein anderes Modellierungs-/ORM-Tool. Ich würde nicht empfehlen, "klassische" oder "nackte" ADO.NET für die meisten Ihrer Arbeit zu verwenden - es ist einfach zu viel Arbeit und dummer Code - lassen Sie ein Framework wie Linq-to-SQL oder EF die langweilige Infrastruktur stopfen für Sie und konzentrieren Sie sich auf Ihre tatsächlichen geschäftlichen Anforderungen und Bedürfnisse.

+0

Vielen Dank für diese umfassende Antwort. – Kottan

Verwandte Themen