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
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.
- 1. Wann und wann nicht CoreAnimation verwenden
- 2. C# USING Schlüsselwort - wann und wann nicht?
- 3. Wann Datenbankansichten verwenden und wann nicht?
- 4. SynchronizationContext, wann fließt es und wann nicht?
- 5. Wann undef_method und wann remove_method?
- 6. Wann/proc und wann/dev
- 7. Wann verlinken und wann einbeziehen?
- 8. Luftstrom: Wann SellerieExecutor und wann MesosExecutor verwenden
- 9. Wann "if" und "wann" in Clojure verwenden?
- 10. Wann node.js verwenden und wann Ajax verwenden?
- 11. Wann verwendet man .mdf und wann .sdf?
- 12. Wann System() verwenden und wann execv *() verwenden?
- 13. Wann sollten wir instanceof verwenden und wann nicht
- 14. Wann zu verwenden und wann nicht Python 3.5 `erwarten 'verwenden?
- 15. Wann mit einem CDN Host und wann nicht?
- 16. Wann sollte man sich dem Namen anschließen und wann nicht?
- 17. Wann sollte ich async verwenden/abwarten und wann nicht?
- 18. Wann GWT zu verwenden ist und wann nicht
- 19. Wann nicht ACS verwenden?
- 20. Synchronisation, Wann oder nicht?
- 21. Warum und wann Liquibase?
- 22. Wann sollte das Schlüsselwort "as" und wann() Casting verwendet werden?
- 23. Wann sollte ich @classmethod und wann def-Methode (self) verwenden?
- 24. Wann Plugins zu wählen und wann Tipp zu wählen
- 25. Wann sollte ich setUpClass verwenden und wann __init__?
- 26. Dolch 2: Wann werden Konstruktorinjektionen und wann Feldinjektionen verwendet?
- 27. Wann ein Modul zu verwenden, und wann eine Klasse
- 28. Wann verwenden wir POJO und wann verwenden wir SLSB
- 29. Wann 'if ... else if' und wann zu verwenden ist
- 30. Rails-Engines: Wann Code in App, wann in Lib und wann im Lieferantenordner?
Vielen Dank für diese umfassende Antwort. – Kottan