How do I manage the technical debate over WCF vs. Web API?

Posted by Saeed Neamati on Programmers See other posts from Programmers or by Saeed Neamati
Published on 2013-08-05T14:04:12Z Indexed on 2013/11/05 16:11 UTC
Read the original article Hit count: 435

Filed under:

I'm managing a team of like 15 developers now, and we are stuck at a point on choosing the technology, where the team is broken into two completely opposite teams, debating over usage of WCF vs. Web API.

Team A which supports usage of Web API, brings forward these reasons:

  1. Web API is just the modern way of writing services (Wikipedia)
  2. WCF is an overhead for HTTP. It's a solution for TCP, and Net Pipes, and other protocols
  3. WCF models are not POCO, because of [DataContract] & [DataMember] and those attributes
  4. SOAP is not as readable and handy as JSON
  5. SOAP is an overhead for network compared to JSON (transport over HTTP)
  6. No method overloading

Team B which supports the usage of WCF, says:

  1. WCF supports multiple protocols (via configuration)
  2. WCF supports distributed transactions
  3. Many good examples and success stories exist for WCF (while Web API is still young)
  4. Duplex is excellent for two-way communication

This debate is continuing, and I don't know what to do now. Personally, I think that we should use a tool only for its right place of usage. In other words, we'd better use Web API, if we want to expose a service over HTTP, but use WCF when it comes to TCP and Duplex.

By searching the Internet, we can't get to a solid result. Many posts exist for supporting WCF, but on the contrary we also find people complaint about it. I know that the nature of this question might sound arguable, but we need some good hints to decide. We're stuck at a point where choosing a technology by chance might make us regret it later. We want to choose with open eyes.

Our usage would be mostly for web, and we would expose our services over HTTP. In some cases (say 5 to 10 percent) we might need distributed transactions though.

What should I do now? How do I manage this debate in a constructive way?

© Programmers or respective owner

Related posts about wcf

Related posts about decisions