Je suis en train de développer un service Web WCF qui est devenu très pléthorique. Quelles techniques utilisez-vous pour séparer l'exécution du contrat?WCF Web Service Bloat
Répondre
Eh bien, vous avez un choix de couple:
D'abord, vous pouvez tout laisser dans une classe, mais subdivisée en types de fichiers différents en utilisant la fonction de classe partielle de C#. Deuxièmement, vous pourriez avoir la classe de service principale simplement passer les demandes à l'une des nombreuses autres classes qui sont organisées logiquement.
Une troisième alternative consiste à considérer refactoring pour réduire le nombre d'opérations que vous avez. Y a-t-il réellement un usage à toutes les méthodes que vous exposez?
Enfin, vous pouvez toujours diviser le service en plusieurs services WCF.
Il est difficile de répondre à votre question si vous ne donnez pas plus d'informations. Voulez-vous dire que votre interface de service est gonflée, ou la mise en œuvre de la classe? Il est difficile de répondre correctement, si je ne vois pas le code, ou si je n'ai pas d'autres informations, je vais essayer:
Notez que le service WCF est fondamentalement juste une classe régulière qui implémente une interface et possède quelques attributs sur ses méthodes. Donc, toutes les autres bonnes règles de conception OO s'y appliquent. Pensez à ce qu'il fait, a-t-il vraiment une responsabilité unique, sinon essayez de sous-traiter une partie de cette responsabilité à d'autres classes dont dépend votre service. Si vous avez besoin d'un constructeur autre que celui par défaut, utilisez IInstanceProvider pour créer la classe de service et fournissez-lui ses dépendances (ou si vous utilisez le conteneur Windsor, utilisez WCF Facility).
Si vous voulez vraiment vous pouvez vous attaquer à votre chaîne d'héritage, et déplacer une partie du code vers une classe de base. Je ne le fais pas, cependant et préfère toujours utiliser la composition sur l'héritage.
Inspectez votre contrat de service, et de réfléchir à la façon dont il est vraiment cohérent. Peut-être que ce que vous devriez faire est de le diviser en quelques services plus petits et plus cohérents.
- 1. erreur service Web WCF
- 2. Structure d'exposition - service web WCF
- 3. WCF Web Service, exemple interdomaines
- 4. Liaison Wcf pour le service Web
- 5. Conversion d'ASMX en service Web WCF
- 6. Délégation dans le service Web WCF
- 7. Conversion de service Web en WCF
- 8. ASP.NET Authentifier application Web avec service WCF
- 9. URL dynamique du service Web WCF
- 10. 2.0 Proxy de service Web pour le service WCF
- 11. Service WCF RESTful sur Service WCF standard
- 12. Bloat Feature - combien est trop?
- 13. Déploiement d'un service WCF
- 14. HttpContext vide lors de l'appel du service Web WCF
- 15. Comment exposer ma collection à partir du service Web (WCF)
- 16. Authentification WCF Web Service basée sur des groupes AD
- 17. Lecture d'un cookie à partir d'un service Web RESTful WCF
- 18. Silverlight WCF web service d'hébergement sur domain.com et www.domain.com
- 19. Comment attendre/rejoindre un service Web WCF appelé depuis Silverlight?
- 20. Comment appeler un service Web WCF à partir de Silverlight?
- 21. Conventions de dénomination avec service Web/WCF et aucune surcharge
- 22. Comment appeler un service Web WCF à partir de jQuery?
- 23. Comment documenter un service Web WCF dans une spécification technique?
- 24. Managed C++ référence Web à des problèmes de service WCF
- 25. WCF, implémentation d'un service Web à partir d'un schéma existant
- 26. Référence Web dans WCF
- 27. Appel de service Web asynchrone depuis le client Web asp.net 2.0 vers le service Web WCF (problème asynchrone)
- 28. ASP.NET RESTful Web Service
- 29. WCF Service & demande
- 30. Service WCF robuste