2008-09-08 14 views
5

Je suis un peu confus au sujet des services de données ADO.Net.Où se trouvent les services de données WCF et ADO.Net?

Est-il juste destiné à créer des services Web RESTful? Je sais que WCF a commencé dans le monde SOAP mais maintenant j'entends dire qu'il a un bon support pour REST. Il en va de même pour les services de données ADO.Net où vous pouvez le faire fonctionner dans un modèle RPC si vous ne pouvez pas tout voir à partir d'une vue orientée ressources. Au moins à partir des démos que j'ai vues récemment, il semble que ADO.Net Data Services est construit sur la pile WCF sur le serveur. S'il vous plait corrigez moi si je me trompe.

Je n'ai pas l'intention de lancer un débat REST vs SOAP mais je suppose que les choses ne sont plus aussi claires.

Des suggestions ou des directives sur quoi utiliser où?

Répondre

2

À mon avis des services de données ADO.NET est pour la création de services reposant qui sont étroitement liés avec votre modèle de domaine, ce sont les modèles eux-mêmes publiés plutôt que dire une certaine forme de DTO etc.

utilisant pour RPC les services de style semblent être un mauvais choix, même si malheureusement, certaines fonctionnalités très basiques comme la possibilité d'effectuer un comptage filtré, etc. ne sont pas disponibles, ce qui signifie souvent que vous finirez par utiliser RPC juste pour répondre aux exigences de vos clients. vous pouvez afficher une grille paginée, etc.

WCF 3.5 pre-SP1 était une plate-forme RESTful assez faible, avec des choses SP1 améliorées dans les deux modèles Uri et avec la disponibilité de A TOMPub support, de sorte qu'il devient plus capable, mais ils ne fournissent pas vraiment une solution élégante pour soutenir JSON, XML, ATOM ou même quelque chose de plus ésotérique comme la charge utile comme CSV simultanément, sans avoir à utiliser la réécriture d'URL et différents extension, nom de méthode munging etc. - plutôt que de simplement sélectionner un sérialiseur/désérialiseur basé sur les en-têtes de la requête. Avec WCF, il est encore difficile de créer des services qui fonctionnent dans un environnement plus reposant naturel où les ressources incluent des URL, et vous pouvez passer l'état en les parcourant - c'est un peu maladroit - les services de données ADO.Net le font bien avec son support AtomPub cependant. Ma recommandation serait d'utiliser les services Web où ils sont naturellement des services et des limites de service fort étant appliquées, utilisez les services de données ADO.Net pour les clients de style web riches (sites Web, ajax, silverlight) où la composabilité de l'URL les requêtes peuvent économiser beaucoup de plomberie et votre modèle de domaine est assez basique ... et rouler votre propre couche REST (peut-être en utilisant un framework MVC comme point de départ) si vous avez besoin d'un contrôle complet des informations si vous publiez une API pour d'autres développeurs à consommer sur une plate-forme sociale, etc

Mon 2ø vaut!

1

L'utilisation de la liaison de repos de WCF est très valable lorsque vous travaillez avec du code qui n'interagit pas du tout avec une base de données. Les verbes HTTP ne doivent pas toujours aller à l'encontre d'un fournisseur de données.

+0

point très valide .. –

0

En fait, il existe des options à filtrer et à ignorer pour obtenir la fonctionnalité de page entre autres.

See here: