Working in a shop that does primarily WPF desktop apps with WCF. I was hired to do some web stuff, I am familiar with web api, but have never done WCF. I am starting a new SPA using Angular. I planned to use web api, but am being asked to use WCF. Seems to me, Angular is designed to use web api. Is there a good reason NOT to use WCF?
WCF has an established architecture and a strong focus on configuration straight out of the box.
The upside of WCF is that this supports a wide degree of change with minimum recompilation of binaries.
The downside is that it comes with its own learning curve ... and depending on one's tastes, a strong bias towards XML configuration.
If you're a dev, you might find Web API a more appealing fit.
If you're a sys admin, you might find WCF a more appealing fit.
The primary differences between WCF and WebApi are that WCF is a rich but heavily typed framework and WebApi is a less heavy framework which helps for rapid development. Payload size is another problem for WCF and even though a lot of this can be configured and reduced it is more labor intense to do so than with WebApi.
I should also mention that WebApi can run in a lot more places now than WCF since Microsoft is pushing for wider adoption with ASP.NET 5. You can now run ASP.NET 5 on mac and other systems. While WCF is getting less and less love from Microsoft ASP.NET is going to be getting a ton of improvements in the years to come that will not be available to applications using WCF. So we might also consider that the technology will become dated at some point and with that comes maintenance issues.