I've been working on a single-page web app that is entirely ajax-based (no POSTs) and for now I'm using ASMX for the web services while it's in development. The web services work with JSON data. For the release, I know I'll need to upgrade to either WCF or WebAPI.
Eventually, I plan to build native mobile applications that will work with the same web services as the web app. All things being equal, if I have to choose between the two, which option should I go with so that the web services can work with different client apps?
( 2 months ago )
If your application is designed to be only accessible by mobile devices from various platform, it means you will have to find the common easiest denominator for all these platforms. So, in other terms, if interoperability is your concern, you will focus on one unique communication technology that all platform can use.
JSON + REST seems to be the common easiest denominator for many platforms today (of course including mobile ones). And if that's the only communication technology you will implement, WebAPI seems the obvious choice.
WCF is more extensible, more configurable, you can plug different bindings, different encodings, on different protocols, it implements SOAP, WS-*, it can be very fast (with carefully chosen bindings), you can also do JSON+REST with it, but you don't need all that power (and WCF can be also quite complex because of all these features), what you need seems to be ubiquity and simplicity. Given y