2009-11-30 4 views
0

Nous commençons à construire un modèle d'entité commun en utilisant Entity Framework v1. L'objectif est d'exposer diverses opérations courantes en tant que services pouvant être utilisés par plusieurs clients différents. Le problème que nous rencontrons est de réutiliser les types sur plusieurs services. Exemple:WCF - utilise le même type sur plusieurs services

Service1 (à http://example/service1/service.svc) retourne une liste

Service2 (à http://example/service2/service.svc) retourne un objet d'examen, qui a référence à un objet produit.

Je voudrais référencer ces deux services dans mes applications client (généralement Silverlight) mais avoir le même type de produit à partir des deux services. Comment vais-je faire cela?

+0

J'ai six questions non acceptées. 3 devrait vraiment être wiki communautaire. J'ai maintenant changé ceux-là. Les 3 autres ont un total de 4 réponses entre eux, mais aucune ne semble correcte. Je ne vais pas accepter une réponse incorrecte. Ce problème est mentionné dans ces messages MET http://meta.stackexchange.com/questions/17579/showing-the-accept-rate-discourages-asking-hard-questions http://meta.stackexchange.com/questions/16712/will-the-accept-rate-score-encourager-indésirable-comportement –

Répondre

1

Cela ressemble à une bibliothèque commune avec des interfaces/des contrats de données.

Il contiendrait IProduct/IProductDataContract que vos services devraient retourner.

Cela serait ensuite partagé entre les trois. La mise en œuvre concrète dépendra donc de chaque service, du moment qu'ils se conforment au contrat/interface de données.

+0

Cela semble beaucoup de travail, et semble aller à l'encontre du but de beaucoup de choses de génération de proxy qui est construit dans VS. Dans beaucoup de cas, cela semble être exagéré. Cependant, selon ces deux articles, la création d'une copie côté client de la classe semble être l'approche à prendre http://compiledexperience.com/blog/posts/Resuing-types-in-Silverlight-Service-References http: //inquisitorjax.blogspot.com/2008/07/silverlight-2-sharing-code-between.html –

+0

La génération de proxy générique dans VS n'est pas la plus rapide, en raison de la création d'une ChannelFactory chaque fois que vous passez un appel. Et oui c'est plus de travail. De mon point de vue, je pense que j'ai aimé l'approche basée sur l'interface (c'est-à-dire, séparer la lib) car elle me permet de supprimer la dépendance/visibilité de WCF dans le système. Si toutes les applications de mes clients le savent, ils interrogent une usine sur les retours et l'interface qu'ils ne savent jamais que fait la WCF. Juste permet le remplacement des talons et des faux objets et même la communication de couche de service plus facile à remplacer. – MattC

Questions connexes