2010-09-29 7 views
0

Dans un scénario, lorsque le client et le WCF sont développés simultanément, comment fournissons-nous les contrats de données et les contrats d'opération au client?Création de client pour WCF

Toutes nos excuses pour ne pas avoir ajouté les détails plus tôt. La WCF est créée par une autre équipe et elle est uniquement conçue. Comment pouvons-nous commencer le développement du client dans ce cas? Avons-nous besoin d'attendre que le WCF soit construit pour que le fichier svc soit créé?

+0

Comment allez-vous consommer les services? En tant que services REST ou hébergez-vous les Services sur IIS? – VoodooChild

+0

Services sur IIS – genericuser

Répondre

0

Non, vous n'avez pas besoin d'attendre l'équipe de service WCF. Si vous devez gérer votre projet, l'équipe de service WCF est plutôt mauvaise. Le moyen le plus simple est de développer votre application de manière itérative et de laisser votre équipe de service faire une seule itération. Mais je n'aime pas cette idée car à la fin de l'itération, l'équipe de service fournit un service "non testé" parce que vous l'utiliserez d'abord dans l'itération suivante. Donc, à mon avis, le meilleur moyen est d'implémenter des fonctionnalités simultanément et de ne livrer qu'une combinaison de travail du client et du service (tests d'intégration pendant l'itération). Dans ce scénario, vous devez d'abord définir un contrat avec l'équipe de service WCF. Le contrat est WSDL + XSDs. Cette technique est parfois appelée top down ou contract first. L'idée principale est que vous voulez intégrer ensemble et que vous voulez faire du développement simultané. Vous devez donc d'abord concevoir une interface de communication (contrats de service/opération) qui sera décrite par WSDL et des données transportées (contrats de données/messages) qui seront décrites dans les XSD référencés à partir de WSDL. Vous pouvez également le faire de manière itérative et incrémentielle en ajoutant de nouvelles opérations dans les prochaines itérations. Les deux équipes doivent tester leur code = tests unitaires et moqueurs (côté client).

Pour le développement du client, c'est suffisant. Vous pouvez utiliser des WSDL + XSD créés pour créer un proxy de service. L'équipe de service peut utiliser WSCF.blue ou un autre outil pour créer un squelette de service à partir d'un contrat défini.

Le plus grand inconvénient de cette technique est que vous devez être capable d'écrire WSDL et XSD ou vous devez avoir un bon outil (je recommande commercial Altova XMLSpy Enterprise). Autre façon consiste à définir des contrats dans le code côté service et à créer un service sans implémentation interne (toutes les méthodes renvoient null) et permet à WCF de générer WSDL pour vous.

+0

Merci pour votre réponse – genericuser

1

Ajouter une référence de service à votre projet client d'avoir svcutil créer un proxy pour vous

Vous pouvez décider de partager l'ensemble des contrats de données dans les deux projets ou de compter sur les contrats de données créées dynamiquement lors de l'ajout de la référence de service