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:
- Web API is just the modern way of writing services (Wikipedia)
- WCF is an overhead for HTTP. It's a solution for TCP, and Net Pipes, and other protocols
- WCF models are not POCO, because of [DataContract] & [DataMember] and those attributes
- SOAP is not as readable and handy as JSON
- SOAP is an overhead for network compared to JSON (transport over HTTP)
- No method overloading
Team B which supports the usage of WCF, says:
- WCF supports multiple protocols (via configuration)
- WCF supports distributed transactions
- Many good examples and success stories exist for WCF (while Web API is still young)
- 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?