Premier pas avec le Web Service Software Factory
|
Dans cet article, je vous propose de découvrir une procédure pas à pas pour créer un premier Service WCF avec l'aide du Web Service Software Factory.
|
|
Vu
3993
fois
|
Description
Cet exemple consiste à créer un service WCF faisant une simple addition. Le but est de montrer comment utiliser le Web Service Software Factory pendant une phase de développement. Il n’est pas de montrer toutes les fonctionnalités de cette technologie.
Vous pouvez télécharger le Web Service Software Factory ici : http://www.microsoft.com/downloads/details.aspx?familyid=db996113-6e92-4894-9b7e-0debb614d72f&displaylang=en
Développement du service
 |
Dans Visual Studio, créer un nouveau projet de type « Web Service Software Factory (WCF) » (dans Guidance Packages)
Note : Il existe un bug qui fait que le nom des projets est trop long et l’assistant n’arrivera pas à les créer. La solution de contournement est de créer le projet à la racine d’un disque puis de déplacer le répertoire généré dans votre espace de travail.
|
 |
Dans l’assistant qui apparait, renseigné le namespace principale du projet. La convention veut qu’il soit de la forme « Loreal.RD.NomDeLApplication.Services.NomDuService »
Cliquer sur « Finish »
Note : Si le nom est toujours trop long (impossibilité de créer le projet), laisser le namespace par défaut. Une fois le projet créé, renommé les namespaces à la main.
|
| |
Un ensemble de projet a été créé. Tous ne sont pas nécessaires. Les indispensables sont les suivantes :
- ServiceContracts
- ServiceImplementation
- Le répertoire « Tests »
|
|

|
Créer un nouveau Contrat de service. |
|

|
Dans l’assistant qui apparaît, donner un nom à l’Interface (ICalcul) qui va être créée. Une bonne pratique est de spécifier également le namespace XML du contrat qui doit respecter une certaine convention. http://domaineDeLaSociete/NomApplication par exemple.
Cliquer sur « Next »
|
|

|
Spécifier sur cet écran les noms des méthodes, leurs paramètres et ce qu’elles retournent. Dans notre cas, une seule méthode : Additionner
Note : Il n’est possible de fournir qu’un seul paramètre à la méthode (colonne Request). Il s’agit d’un Best Practice qui mérite d’être discuté. Dans notre cas, nous allons mettre le premier paramètre, et nous rajouterons le second à la main.
Cliquer sur « Next »
|
|

|
Dans le cas ou les méthodes sont correctement renseignées, sélectionner la case « Generate service contact implementation ». Dans notre cas, nous devons rajouter un paramètre à la méthode. Nous n’allons donc pas générer l’implémentation du contrat.
Cliquer sur « Finish »
|
System.Int32 Additionner( System.Int32 valeur1, System.Int32 valeur2); |
Dans la nouvelle interface créée, ajouter les paramètres nécessaires à la méthode (modifier le nom des paramètres si nécessaire). |
 |
Faire un clique droit sur l’interface générée dans l’explorateur de document et choisir « Service Factory (WCF) > Implement Service Interface » |
| |
Dans l’assistant qui apparait, laisser tout par défaut et cliquer sur « Finish ». |
| return valeur1 + valeur2; |
Dans la classe générer, mettre le code de l’addition. |
Tester le service
Pour tester le service que l’on vient de créer, il faut l’exposer. Voici comment faire :
 |
Faire un clique droit sur le projet « Host » dans le répertoire « Tests » et choisir « Service Factory (WCF) » > « Expose Service » |
 |
Dans l’assistant qui apparaît, sélectionner la classe qui implémente l’interface. Choisir « Basic Web Services interoperability » et « Include Metadata Extension »
Cliquer sur « Finish »
|
 |
Un fichier .svc est créé. Faire un clique droit dessus puis « Service Factory (WCF) » > « View in Browser »
Récupérer l’adresse du service.
|
 |
Faire un clique droit sur le projet « Client » et choisir « Add Service Reference » |
|

|
Cliquer sur « ... »
|
|

|
Dans l’assistant qui apparaît, ajouter la référence au service en pointant vers l’adresse que vous avez récupérée un peu plus haut. Renommer le nom de la référence en « Calcul »
Cliquer sur « Add Reference »
Puis cliquer sur « Next de la fenêtre précédente »
|
|

|
Laissier le binding par défaut et cliquer sur « Next » puis sur « Finish »
|
private void ExecuteButton_Click(object sender, EventArgs e) { Calcul.CalculClient client = new societe.App.Services.WCFServicePasAPas .Client.Calcul.CalculClient(); client.Additionner(3, 3); client.Close(); } |
Dans le code de MainForm.cs faire appel à la méthode Additionner du service. |
Comment déboguer ?
Pour lancer le débogage du service il suffit de faire un clique droit sur le projet « Host » puis « Service Factory (WCF) » > « Debug Host »
 |
|
Publié le
20/07/2007
|
|
Auteur:
Aleks
|
|
|