It depends. The WCF service is more flexible since you donโt need to rely on HTTP and use direct TCP connectivity instead, and I find it very easy to make it expose SOAP. Just setting up web.config for behavior, endpoint, etc. A little harder than it should be.
MVC, on the other hand, is probably faster to set up because you donโt have to deal with the fact that itโs sometimes a little difficult to modify DataContracts (since they require redeploying the general assembly).
WCF = more "solid" with a much larger protocol to it, to make it "stable", that is: you can establish a tight contract between the Supplier and the Consumer.
MVC = is more flexible and possibly easier to configure, but without a hard contract - if you change the Json format, your clients may break if you do not notice it initially, so it is much more suitable.
In general, I use MVC if I have no reason to use WCF as described above (the requirement for a stable / guaranteed / detectable contract between the client and the server, the requirement for SOAP, or when it is inconvenient / no need to configure the IIS website, for example, because my server is running as a windows service)
Michael stum
source share