Mike,
We visualize maps directly through Esri's JSAPI.
For our HTTP calls, we used JSON (REST?). Primarily we were querying AGS layers (features and tables) for our data. In an nutshell, we aggregate a lot of calls. For example, our users want to search across multiple layers. We send a single request to our MVC app and dispatch our queries to the appropriate layers. We also need to query related records (several levels deep). So, our users want to see details of "cable" 123. When they request this from our MVC endpoint, we then fire up queries to fetch the cable details, including its child records and grand-child records.
Hope this helps and that it generates some discussions from Esri.
Regards,
Eric.