Ahora estoy administrando un equipo de aproximadamente 15 desarrolladores, y estamos estancados en un punto al elegir la tecnología, donde el equipo se divide en dos equipos completamente opuestos, debatiendo sobre el uso de WCF en comparación con la API web.
El equipo A, que admite el uso de la API web, presenta estos motivos:
- La API web es solo la forma moderna de escribir servicios ( Wikipedia )
- WCF es una sobrecarga para HTTP. Es una solución para TCP, Net Pipes y otros protocolos.
- Los modelos WCF no son POCO, debido a [DataContract] & [DataMember] y esos atributos
- SOAP no es tan legible y práctico como JSON
- SOAP es una sobrecarga para la red en comparación con JSON (transporte a través de HTTP)
- Sin sobrecarga de métodos
El equipo B, que admite el uso de WCF, dice:
- WCF admite varios protocolos (a través de la configuración)
- WCF admite transacciones distribuidas
- Existen muchos buenos ejemplos e historias de éxito para WCF (aunque la API web aún es joven)
- El dúplex es excelente para la comunicación bidireccional
Este debate continúa y no sé qué hacer ahora. Personalmente, creo que deberíamos usar una herramienta solo para su lugar de uso correcto . En otras palabras, sería mejor utilizar la API web, si queremos exponer un servicio a través de HTTP, pero usar WCF cuando se trata de TCP y Dúplex.
Al buscar en Internet, no podemos obtener un resultado sólido. Existen muchas publicaciones para respaldar a WCF, pero por el contrario también encontramos personas que se quejan de ello. Sé que la naturaleza de esta pregunta puede parecer discutible, pero necesitamos algunos buenos consejos para decidir. Estamos estancados en un punto donde elegir una tecnología por casualidad podría hacer que nos arrepintamos más tarde. Queremos elegir con los ojos abiertos.
Nuestro uso sería principalmente para la web, y expondríamos nuestros servicios a través de HTTP. Sin embargo, en algunos casos (por ejemplo, del 5 al 10 por ciento) podríamos necesitar transacciones distribuidas.
¿Qué debo hacer ahora? ¿Cómo gestiono este debate de manera constructiva?