Je gère actuellement une équipe de 15 développeurs environ, et nous sommes bien arrêtés au moment de choisir la technologie. L'équipe est divisée en deux équipes complètement opposées, débattant de l'utilisation de WCF par rapport à l'API Web.
L’équipe A, qui prend en charge l’utilisation de l’API Web, avance les raisons suivantes:
- L'API Web n'est que la manière moderne d'écrire des services ( Wikipedia )
- WCF est une surcharge pour HTTP. C'est une solution pour TCP, Net Pipes et autres protocoles
- Les modèles WCF ne sont pas POCO, à cause de [DataContract] & [DataMember] et de ces attributs
- SOAP n'est pas aussi lisible et pratique que JSON
- SOAP est une surcharge pour le réseau comparé à JSON (transport sur HTTP)
- Aucune méthode surchargée
L’équipe B, qui prend en charge l’utilisation de WCF, déclare:
- WCF prend en charge plusieurs protocoles (via la configuration)
- WCF prend en charge les transactions distribuées
- Il existe de nombreux bons exemples et exemples de réussite pour la WCF (alors que l'API Web est encore jeune)
- Le duplex est excellent pour la communication bidirectionnelle
Ce débat se poursuit et je ne sais pas quoi faire maintenant. Personnellement, je pense que nous devrions utiliser un outil uniquement pour son bon lieu d'utilisation . En d'autres termes, nous devrions utiliser les API Web si nous voulons exposer un service via HTTP, mais utiliser WCF pour TCP et Duplex.
En cherchant sur Internet, nous ne pouvons pas obtenir un résultat solide. Il existe de nombreux postes de soutien à la WCF, mais au contraire, on constate également des plaintes de personnes. Je sais que la nature de cette question peut sembler discutable, mais nous avons besoin de bons indices pour décider. Nous sommes bloqués à un moment où le choix d'une technologie par hasard pourrait nous faire regretter celle-ci plus tard. Nous voulons choisir les yeux ouverts.
Notre utilisation serait principalement pour le Web et nous exposerions nos services via HTTP. Dans certains cas (disons 5 à 10%), nous pourrions toutefois avoir besoin de transactions distribuées.
Qu'est-ce que je devrais faire maintenant? Comment gérer ce débat de manière constructive?