What benefits/drawbacks have you experienced when using web maps as an application data source?
This is a much discussed topic, so I'm looking for any insights or personal experiences on either end of the spectrum.
I've only developed a single web app so far but...
Your app lives and dies based on dependencies, and those dependencies are usually out of your control. In my organization, I'm free to develop using an internal instance of AGS but, if the app is to be public facing, it requires a formal project initiation with our IT (and the code base is handed off to them for implementation on the other side of the firewall).
During development and a silent "live" beta period of 10 months, my app worked largely flawlessly. Just 2 months after turning live, the app went south and spent far more time not working than working. I largely blame the issues on a.) outdated version of ArcGIS Server (10.1), b.) possibly inefficient AGS Server setup, and c.) whatever the hell that IT people usually do on a routine basis that has unintended far reaching effects.
I anticipated several situations that would result in an app that did not work or load properly but it seemed like many of the culprits were the result of something else (hardware failure, SDE connections changing due to upgrades, etc).
I've found it extremely difficult to be proactive about application uptime. Services seem to go stale or stall too quickly and there's no GOOD way to get alerted to this before you're contacted and told that your app has been dead for days. Again, I think our problems might lie in the installation and setup of AGS in our organization. I kind of want us to contact Technical Support and get a 3rd party "audit" of our setup to ensure we have done things properly. We're FINALLY upgrading AGS to 10.3 so I'm hopeful that this will help.
Outside of instability, I knew upfront that I would need to create a "mobile friendly" version of our application. I've done that and I'm happy with that but it does add another whole new base of code to maintain. If you need to fix some sort of flaw or add an enhancement, you have to maintain two sets of code.