Je me demandais s'il était préférable dans WCF d'utiliser plusieurs contrats d'opération ou d'avoir un seul contrat d'opération avec un contrat de données polymorphes.Dans WCF, vaut-il mieux avoir plusieurs contrats d'opération ou avoir une seule opération avec contrat de données polymorphes?
Permettez-moi de vous donner un petit exemple:
[OperationContract]
action1Answer action1(action1data a);
[OperationContract]
action2Answer action2(action2data a);
ou
[OperationContract]
actionAnswer action(actionContract a);
contrat d'action serait une classe abstraite qui à la fois action1Contract et action2Contract vont hériter de. Le contrat d'action spécifierait la fonction membre do()
dans son interface qui serait à son tour surchargée dans les classes enfant
Personnellement, je trouve la seconde approche plus intéressante car elle permet de bien encapsuler les données et l'action dans le contrat d'action dérivé et facilite l'ajout de nouvelles actions. Mais c'est la première fois que j'utilise la WCF alors vous savez probablement mieux!
Merci pour la réponse très informative! Je n'ai jamais réalisé OO et SOA pourraient être en contradiction comme ceci. Même si je préfère la deuxième approche (venant d'un arrière-plan OO), je pourrais aller avec le premier, pour le bien de la description du service. –
Je suis en train de lire «Microsoft .NET: architecturer des applications pour l'entreprise», qui traite de la SOA de manière satisfaisante, mais il se réfère à «Patterns of Enterprise Application Architecture» de Martin Fowler; Les deux devraient être une bonne lecture si vous êtes intéressé. –
Merci pour les heads up –