Estou gerenciando uma equipe de 15 desenvolvedores agora e estamos em um momento de escolher a tecnologia, onde a equipe é dividida em duas equipes completamente opostas, debatendo sobre o uso do WCF versus da Web API.
A equipe A, que oferece suporte ao uso da API da Web, apresenta os seguintes motivos:
- API Web é apenas a maneira moderna de escrever serviços ( Wikipedia )
- O WCF é uma sobrecarga para HTTP. É uma solução para TCP, Net Pipes e outros protocolos
- Os modelos WCF não são POCO, devido a [DataContract] e [DataMember] e a esses atributos
- SOAP não é tão legível e prático quanto JSON
- SOAP é uma sobrecarga para a rede em comparação com JSON (transporte sobre HTTP)
- Sem sobrecarga de método
A equipe B, que suporta o uso do WCF, diz:
- O WCF suporta vários protocolos (via configuração)
- O WCF suporta transações distribuídas
- Existem muitos bons exemplos e histórias de sucesso para o WCF (enquanto a API da Web ainda é jovem)
- Duplex é excelente para comunicação bidirecional
Esse debate continua e não sei o que fazer agora. Pessoalmente, acho que devemos usar uma ferramenta apenas para o local certo de uso . Em outras palavras, é melhor usarmos a API da Web, se quisermos expor um serviço por HTTP, mas usar o WCF quando se trata de TCP e Duplex.
Ao pesquisar na Internet, não conseguimos um resultado sólido. Existem muitos posts para apoiar o WCF, mas, pelo contrário, também encontramos pessoas queixando-se disso. Sei que a natureza dessa pergunta pode parecer discutível, mas precisamos de algumas boas dicas para decidir. Estamos presos em um ponto em que a escolha de uma tecnologia por acaso pode nos fazer lamentar mais tarde. Queremos escolher com os olhos abertos.
Nosso uso seria principalmente para a Web e exporíamos nossos serviços por HTTP. Em alguns casos (digamos 5 a 10%), talvez precisemos de transações distribuídas.
O que eu deveria fazer agora? Como gerencio esse debate de maneira construtiva?