WINDOWS COMMUNICATION FUNDATION - PREMIERE APPROCHE
Construction du s ervice WCF
Le service fournira les opérations suivantes pour notre application cliente que nous verrons dans le second tutorial .
- Obtenir des informations sur un membre de Codes-Sources.
- Lister les membres de Codes-Sources .
- Supprimer un membre.
- Créer un nouveau membre.
- Simple addition entre deux nombres.
A présent passons à la création de notre service WCF. Créer un nouveau projet de type « WCF Service Library ».
Définir les contrat s .
La structure d'un service WCF s'appui sur deux types de contrats, un contrat de données et un contrat de service.
- Un contrat de données : Il définit le format des données d' un objet métier (classe) / structure / énumération qui sera é changé entre le service et le client. Il est définit par l'attribut [ DataContract ] et ses membres marqués de l'attribut [ DataMember ] . (Si un membre n'est pas balisé [ DataMember ] il ne sera pas sérialisé dans le flux XML qui sera échangé entre le service et le client) .
- Un contrat de service : Interface qui définit les méthodes ( = opérations) que le service WCF va exposer au x client s . Il est définit par l'attribut [ ServiceContract ] et ses membres marqués de l'attribut [ OperationContract ] .
Maintenant que les présentations sont faîtes, n ous allons définir notre seul contrat de données pour un objet MembreCS . Créons une classe MembreCS avec les membres le caractérisant comme ci-dessous .
Une fois le contrat de données définit sur notre objet MembreCS nous allons pouvoir écrire le contrat de service de notre service WCF. Créez une interface que vous appellerez I DemoW CFService avec les signatures des méthodes comme ci-dessous.
Mise en œuvre du service WCF
Après avoir spécifié la structure des données à notre service avec un Contrat de Données et définit les opérations qui seront exposées par le service à l'aide d'un Contrat de Service , la prochaine étape va être tout simplement d ' écrire le code de no s méthodes exposées (opérations) en mettant en œuvre le Contrat de Service (implémentation de l'interface IDemoWCFService ).
Pour cela créons une nouvelle classe DemoService sous le contrat de service IDemoWCFService comme ci-dessous.
Je passe sur le s autres méthodes que vous retrouvez bien évidement dans la source associé e à ce tutorial ..
Hébergement du service
Pour pouvoir exécute r le service WCF et le rendre accessible aux clients nous devons l'héberger soit dans une application dîtes Hôte, service Windows ou par IIS. Pour cette démonstration l e service sera hébergé par IIS.
- Ajouter un fichier de définition de service (. svc ) qui va spécifier le nom de la classe que va exécuter IIS ainsi que le nom de l'assemblage qui renferme cette classe.
- Créer un fichier « Web.config » en y ajoutant des informations dit de liaisons nécessaire à IIS. En effet ces informations vont indiquer comment un client doit communiquer avec le service WCF.
- Déployer le service WCF vers IIS.
Et c'est parti, ajouter un nouvel élément de type Fichier texte portant le même nom que le service WCF « DemoWCFService »
Comme décrit dans la définition de la première étape nous allons spécifier le nom de la classe et de la l' assemblage qui la renferme. Ajouter les lignes suivantes dans le fichier DemoWCFService.svc.
Passons maintenant à la seconde étape, le fichier Web.config .
Examinons ensemble la section < system.serviceModel >
<!--Contient les informations de configuration d'un service WCF.-->
<system.serviceModel>
<!--Contient les détails de chaque service mis en oeuvre.-->
<services>
<!--Détail sur notre unique service.-->
<!--Elément name: Spécifie l'espace de noms et la classe mettant en oeuvre notre unique service.-->
< service name ="DemoWCFService.DemoService" behaviorConfiguration ="DemoServiceBehavior">
<!--Elément endpoint: Sans entrer dans les détails, il s'agit de l'élément qui fournit
aux applis. clientes les infos dont elles ont besoin pour communiquer avec
notre service DemoService.-->
< endpoint address ="" binding ="basicHttpBinding" contract ="DemoWCFService.IDemoWCFService" />
</service>
</services>
Dans l a section < behaviors > j e vais active r la pub lication des métadonnées (du Contrat de Service) ce qui va permettre par la suite aux utilisateurs d'obtenir ces métadonnées en émettant une requê t e au service WC F de type HttpGet et ainsi retrouver un wsdl classique de WebService .
Il nous reste plus qu'à présent à déployer vers IIS notre service WCF (Je pars du principe que IIS est déjà activé et configuré) . Dans IIS ajouter un nouveau répertoire virtuel dans « Site Web par Défaut » et pointer le vers la racine de la solution du service WCF (Voir ci-dessous) .
Le service est maintenant hébergé par IIS est prêt à être consommer par des applications clientes.
Test du déploiement du service WCF
Dernière partie de ce tutorial, le test de notre service WCF. Pour ce faire rien de plus simple, ouvrez votre navigateur Internet et saisissez l'adresse du service. http://localhost/DemoWCFService/DemoWCFService.svc
PS: http://localhost/DemoWCFService/DemoWCFService.svc ?wsdl pour voir afficher les métadonnées du Contrat de Service.