Accueil
Articles
Astuces
Vidéos
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
WCF : L’extensibilité par la pratique – L’exemple
Dans le précédent volet, je vous ai expliqué une partie des fondamentaux de l’extensibilité WCF. Je vous ai aussi décrit le fonctionnel d’un exemple plus complet que je vais maintenant concevoir et développer pour illustrer l’invocation d’opération.
Par
Frédéric Colin
publié le 13/09/2009 à 22:18, lu 1796 fois, 9 pages
0 commentaire(s)
Tags:
C#
,
Architecture
,
Visual Studio 2008
,
Réflection
,
Windows Communication Foundation
3 | Implémentation de la solution
1 | Introduction
2 | Choix conceptuels pour la solution
3 | Implémentation de la solution
4 | Implémentation de l’extensibilité personnalisée
5 | Implémentation du processus porteur
6 | Implémentation du contrat et du service façade
7 | Implémentation de l’IHM de test
8 | Test de la solution
9 | Conclusion
Téléchargez le code source - 59 Kb
Implémentation de la solution
La solution mise en œuvre est donc classiquement composée des projets suivants :
Pour arriver à automatiser au maximum l’exécution, j’ai mis en place la mécanique de compilation suivante :
La compilation du projet « THB.Sample.DataContracts » recopie la dll générée dans le répertoire « THB.Sample.Host\Contracts » du processus porteur.
La compilation des projets « THB.Sample.Service » et « THB.Sample.Service2 » recopie les dll générées dans le répertoire « THB.Sample.Host\Assemblies » du processus porteur.
La compilation du projet « THB.Sample.Host » recopie son répertoire « Assemblies » dans le répertoire « Assemblies » de la cible de compilation.
La compilation du projet « THB.Sample.Host » recopie le contenu de son répertoire « Contracts » directement dans le répertoire cible de compilation.
Cela me permet ainsi de définir le répertoire cible contenant les Assemblies à exposer et de ne pas avoir à me soucier des chemins d’accès des dépendances lors de l’exécution en « debug » ou en « release » de la solution à partir de Visual Studio.
Les deux Assemblies métier à exposer « THB.Sample.Service » et « THB.Sample.Service2 » n’ont absolument aucune complexité particulière. Je me contenterai donc de fournir ici les diagrammes de classe correspondant en indiquant que tout est finalement codé en dur dedans.
Pour « THB.Sample.Service » : cette Assembly permet de tester les cas simples (surcharges de méthodes, paramètres simples, tableaux, fonctions, procédures, etc.).
Pour « THB.Sample.Service2 » : cette Assembly permet de se rapprocher de cas plus orientés métier renvoyant ou acceptant en paramètres des classes de contrats de données éventuellement composées.
Voici le diagramme de classe utilisé comme contrat de données par l’Assembly précédente :
Au niveau de la notion de contrats de données, nous nous servirons simplement de la possibilité qu’a WCF (depuis le SP1 du Framework 3.5), de gérer les objets de type POCO et donc non marqués comme étant des contrats de données. En d’autres termes, il n’y aura rien à faire sur ce sujet là et c’est une bonne chose !
1
2
3
4
5
6
7
8
9
»
Démarrer une discussion
Ecrire un commentaire
Titre
Commentaire
Annuler