26
Création d’un service WCF Auteur: Iulia NAGY

Création d’un service wcf

Embed Size (px)

Citation preview

Page 1: Création d’un service wcf

Création d’un service WCF Auteur: Iulia NAGY

Page 2: Création d’un service wcf

Création d’un service WCF

WCF est une technologie de plus en plus présente sur tous les grands projets d’entreprise.

Ainsi connaître son fonctionnement et savoir réaliser des services devient plus qu’une simple nécessité.

Cet article a pour but de montrer la création d’un service basique.

Afin que cela soit à la portée de tout le monde une base d’exemple SQL de Microsoft sera employée.

Et comme j’ai déjà beaucoup parlé, on va plutôt passer à quelque chose de plus concret.

Principe de WCF

Le but de WCF est de rendre disponible des informations à plusieurs clients si ceux-ci ont les droits nécessaires pour accéder à ces informations.

Du point de vu technique, cela se traduit par le fait d’exposer une ou plusieurs méthodes d’un objet à travers un réseau afin que des applications tierces puissent les utiliser.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 2

Page 3: Création d’un service wcf

Création d’un projet WCF

Tout d’abord il faudra ouvrir Visual Studio (dans mon cas VS 2010) et aller créer un nouveau projet :

Fichier > Nouveau > Projet

De la nous allons dans C# > WCF > Application du service WCF, le nommer et faire OK

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 3

Page 4: Création d’un service wcf

Regardons ce qu’il a créé :

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 4

Nous pouvons voir que nous avons : • le fichier de configuration (Web.config) • une classe pour le service (Service1.svc) • l’interface pour cette classe (IService1.cs) Pour montrer exactement comment ces classes sont créées nous allons les supprimer dans un premier temps. Du coup Service1.svc et IService1.cs partent à la poubelle (clic droit sur chaque et ensuite supprimer)

Page 5: Création d’un service wcf

Importation de données et création d’une connexion SQL

En ce qui concerne les données nécessaires pour alimenter le service je me suis servi de la base SQL d’exemple de Microsoft. Vous pouvez la télécharger ici.

Une fois le téléchargement finis lancez-le .MSI et la fenêtre suivante va s’ouvrir à vous:

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 5

A la fin de l’installation vous devez ouvrir le répertoire où les donnes ont été extraites (dans mon cas C:\SQL Server 2000 Sample Databases)

Page 6: Création d’un service wcf

Voici à quoi il ressemble le contenu de ce dossier.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 6

Ouvrir ensuite le fichier intpubs.sql in VS. Faire un clic droit et Exécuter. La base contenant les données nécessaires vient d’être rajoutée et alimenté en SQL. Nous allons maintenant rendre cette base accessible depuis Visual Studio.

Ajout d’une référence vers une base en Visual Studio Ouvrir l’Explorateur de serveurs en Visual studio (Outils > Se connecter au serveur). Ajoutez ensuite une nouvelle connexion: Connexion de données clic droit > Ajouter une connexion

Page 7: Création d’un service wcf

Dans la fenêtre suivante sélectionnez une connexion de type « Fichier de base de données » si vous souhaitez utiliser la base d’exemple SQL que je viens d’importer.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 7

Une fois que vous avez testez la connexion faire OK. La nouvelle connexion apparaitra dans l’onglet Explorateur de serveurs. Les données étant maintenant disponibles il est nécessaire de créer les méthodes d’accès. Dans un but de simplicité et rapidité, Entity Framework 4.0 a été utilisé.

Page 8: Création d’un service wcf

Création des accès vers la base de données – Entity Framework 4.0

Allez sur le projet récemment créée.

Click droit : Ajouter > Nouvel Elément.

Dans la fenêtre qui s’ouvre allez sur Données et sélectionnez l’ ADO.NET Entity Data Model

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 8

Nommez-le (PubsEntityModel dans mon cas) et cliquez sur Ajouter.

Page 9: Création d’un service wcf

Dans la fenêtre suivante sélectionnez « Générer à partir de la base de données »

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 9

Page 10: Création d’un service wcf

Et finalement rajoutez dans la fenêtre suivante la base de données précédemment référencé dans l’Explorateur de serveurs.

Cliquez sur Suivant.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 10

Page 11: Création d’un service wcf

Cochez ensuite le check box Tables ainsi que la premier check box tout en dessous.

Nommez le modèle de base de données PubsModel.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 11

Page 12: Création d’un service wcf

Faire terminer. Et le modèle de base de données importé est le suivant :

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 12

Page 13: Création d’un service wcf

Si vous souhaitez voir ce qu’il a été généré par Entity Framework il suffit de jeter un coup d’œil dans le ficher PubsEntityModel.Designer.cs

Pour rester simple je vais m’en servir uniquement de 2 tables afin de montrer comment créer un service WCF : les tables employee et job.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 13

Page 14: Création d’un service wcf

Création des éléments WCF

Un service WCF se base sur 3 points majeurs, connu dans le monde informatique comme l’ ABC de ce gendre de service :

• A – addresse : n’importe quel service WCF doit avoir une adresse qui spécifie la location de celui-ci afin qu’il puisse expose aux clients.

• B – liaison (binding en anglais) – spécifie comment le service est rendu accessible, par quel type de protocole. Plusieurs protocoles sont envisageables : HTTP, TCP, NamedPipe, Peer2Perr, MSMQ.

• C – contrat – utilisé pour spécifier ce que le service fait (quelles informations sont fournies aux applications clientes

Cette partie est principalement dédie à la création du service avec les méthodes qui sont exposées aux clients et aussi leur implémentation.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 14

Page 15: Création d’un service wcf

Ajout d’un service

Rien de plus simple :

allez sur la solution et faites click droit > Ajouter > Nouvel Elément

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 15

Page 16: Création d’un service wcf

Ensuite sur Web sélectionnez Service WCF ; nommez le CompanyService et faites Ajouter.

Nous remarquerons que 2 fichiers ont été rajoutés dans la solution :

un CompanyService.svc et un ICompanyService.cs.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 16

L’interface ICompanyService contient la définition ( avec leur signature) des méthodes qui seront exposées aux applications clientes. La classe CompanyService.svc.cs contient l’implémentation de ces méthodes.

Page 17: Création d’un service wcf

Ajouter les DataContract

Comme certains d’entre vous se doutes bien nous n’allons pas exposer le contenu des tables sql tel quel, juste certains éléments seront visibles aux applications client.

Les éléments qui sont exposées portent le nom de data contract (ou contrat de données).

Pour créer un contrat de données il n’y a rien de mystique : il faut tout simplement rajouter des classes c#. Une que nous allons nommer Employee.cs et une autre que nous allons nommer Job.cs

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 17

Page 18: Création d’un service wcf

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 18

Dans la classe Employee nous allons mettre le code suivant :

Page 19: Création d’un service wcf

Définir le contrat du service

Ajouter le code suivant dans ICompanyService

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 19

Ceux-ci sont les méthodes du service qui seront disponible aux applications clientes.

Page 20: Création d’un service wcf

Implémenter les méthodes du service

Ajouter le code suivant dans la classe CompanyServices.svc.cs

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 20

Page 21: Création d’un service wcf

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 21

Page 22: Création d’un service wcf

Architecture finale de la solution et fichier de configuration

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 22

Voici l’architecture de votre projet si vous avez suivi correctement ce qu’il a été indiqué dans cet article. Nous remarquerons facilement que la solution reste simple, sans des arborescences compliquées. Pour finir il faudra juste s’assurer que le fichier de configuration est bien propre.

Pour cela ouvrez Web.config et supprimez les références vers le Service1 car ceux-ci ne font que rendre la configuration illisible.

Page 23: Création d’un service wcf

A la fin de cette manipulation la partie service de votre configuration doit être :

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 23

Page 24: Création d’un service wcf

Exécution du service

Pour rendre les choses simples un WCF Test client a été utilisé. Un autre article beaucoup plus complet sera dédié à la création d’un vrai client.

Pour tester notre service c’est bien simple : Ctrl + F5

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 24

Page 25: Création d’un service wcf

Il suffit ensuite de cliquer sur une des méthodes et dans la fenêtre de gauche fournir les paramètres (si nécessaire). Ensuite, dans la fenêtre de droite cliquer sur Invoke.

Voici le résultat pour la méthode GetAllJobs().

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 25

Page 26: Création d’un service wcf

Conclusion

Cet article se veut une introduction simple aux services WCF.

Cela permet de comprendre rapidement le fonctionnement de ce gendre le service et de pouvoir en monter un très rapidement.

24/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 26