I would like to get feedback on best practices in regards to querying/storing a data set. I am creating a Windows Phone 7.5 application that uses a public open data set. I can download the entire data set (about 1.2 MB) and store it in Isolated Storage, or I can call a service to retrieve the data I need at a specific time. My main concern has to do with the service not being available at a certain time, and having my application not function properly as it heavily relies on the data set. At the same time, storing the data set locally on the phone has the potential of displaying obsolete data to the user if I don’t continue to download the data set periodically. This data is not supposed to change very often, but it could and that’s a concern.
So in your experience when developing mobile applications that require data from external services, what approach have you taken to query service data in a reliable manner?
In the scenario you outline we would normally cache the data in isolated storage and update the changes only on a regular basis.
That means you need to get the data from your own web service, instead of the public data set, so that you have full control over the additions/deletions/updates.
It is all about improving your user’s experience by reducing traffic over their “slow” network connection. You may even want a copy of the data set to be part of the app download to avoid an initial large first update.