Wann sollten WCF-Datendienste verwendet werden und wann nicht?

8

Für welche Anwendungen oder Entwicklungsszenarien ist die Verwendung von WCF Data Services sinnvoll und wann andere Technologien die bessere Wahl sind (z. B. WCF RIA Services, ADO Entity Framework, klassisches ADO.NET, einfache Dienste) oder was auch immer)?

    
Kottan 23.06.2010, 14:33
quelle

1 Antwort

12

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

Solange Sie das meiste haben - das Anzeigen und Anzeigen von Entitäten und Sammlungen von Entitäten - funktioniert es wirklich gut. Ich kenne den zusätzlichen Bonus, den WCF RIA Services noch nicht 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 ins Spiel und Sie können dieses Modell basierend auf Ihrer physischen Datenbank erstellen.

Wenn Sie jedoch methodenorientierte Services wie "Kunden einfügen", "Gesamtbestellungen für Kunden berechnen" usw. benötigen, ist ein SOAP-basierter WCF-Service 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 eignet sich hervorragend für transaktionsorientierte Geschäftsaufgaben - es ist selbstbeschreibend, z. Ihr Client kann den SOAP-Service erkennen und abfragen (ein Bereich, in dem REST sehr fehlt - es gibt kein "WSDL" oder etwas vergleichbares für REST-Dienste).

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.

    
marc_s 23.06.2010, 14:56
quelle