2010-11-30 44 views
0

Avec un service d'odata, nous pouvons interroger depuis le client sans utiliser dto. Ai-je vraiment besoin de couche si j'utilise odata svc? Quels sont les inconvénients et les pros si je n'utilise pas dto. Dans notre ancien système d'interrogation de mécanisme, il existe de nombreuses méthodes de service de requête qui retournent dto collection. Mais les services d'odata troublent mon esprit ... Il semble que; la responsabilité du serveur passe au client. La même confusion persiste, pour les scripts de transaction. Je suis curieux de tes pensées.Dto/TransactionScripts et Odata Services

Répondre

0

Lorsque vous êtes sur le serveur, la seule chose qui compte pour oData est un modèle EDM ou des modèles POCO. Ainsi, lorsque vous générez un fichier EDMX, vous pouvez toujours considérer ceux-ci comme votre objet métier ou votre calque de modèle, puis les ajouter à ces espaces de noms. Donc, d'une certaine manière, il n'y a pas de logique métier que vous appliquez là-dedans. Mais côté client, vous pouvez toujours centraliser l'invocation de méthode oData. Comme ils prennent en charge les rappels, vous pouvez toujours demander à un modèle de vue d'appeler un référentiel et de renvoyer le rappel. De cette façon, vous ne gonflez pas votre modèle de vue avec l'invocation étendue de requête d'odata. Le type de repositroy est ce dont je parle.

Espérons que cela vous donne une direction.

+0

Vous dites, le dépôt est dans clientide et les modèles sont dans le côté serveur. Mais n'est-ce pas bizarre? Chose que nous avons appelé "domaine", est composé de référentiels et de modèles. Mais pourquoi ai-je besoin de les séparer en deux niveaux physiques différents? –

+0

Autant que je sache, le dépôt n'est qu'un modèle. Il n'y a aucun étiquetage que cela doit être sur le côté serveur ou côté client. Ce que je voulais dire était - avec l'architecture WCF Data Service - vous aurez juste 2 fichiers: 1 fichier qui est le .EDMX et son fichier .CS correspondant où tout le modèle EF réside, 2 fichier où le service WCF Dara est défini. C'est tout ce dont vous avez besoin du côté serveur pour avoir oData exposé. Ce que je voulais dire sur le côté client était - une architecture pour contrôler l'invocation de requête oData en un seul endroit. Vous pouvez le nommer référentiel ou même une classe ordinaire :) – kashyapa