Isolated storage for the Windows Phone
platform works a little differently than Isolated Storage for Silverlight. Here is a compilation
of the top 10 things Windows Phone developers should know about using isolated
storage in their application.
- Application update – When an application is updated, its isolated
storage location is not changed. For that to take effect, you need to ensure
you build your application and submit the application as if it was an upgraded
version. Astute developers should test the upgrade scenarios to ensure
successful data migration.
- Quota limitations – Unlike Silverlight applications, Windows
Phone applications do not have a quota for the isolated storage. This allows
applications to take up a lot of space. Be deliberate in your application
design when you use disk space on the phone.
- Application uninstall – When a Windows Phone application is
uninstalled, its isolated storage data will be deleted.
- Temporary cache – For data that is short-lived, make sure you store
it in a temporary folder inside the isolated storage, which is cleaned up upon
application exit. This ensures that your application does not gobble up disk
- For user generated data, if possible, store it in the cloud with Azure platform.
This ensures that when the user formats the device, he/she does not lose the
data. If cloud storage is not possible, make sure there is a dedicated folder
in the isolated storage for that.
- IsolatedStorageSettings is not threadsafe and can throw
IsolatedStorageException when Save is called.
- Data binding – Since the Save method on the “IsolatedStorageSettings”
class throws an exception, if there are any data bound objects in
IsolatedStorageSettings, and they need to be saved, create a clone of the
object and save that.
- Always call all isolated storage API calls inside a try/catch
block, so you can handle any exception throws without taking down the
application and can inform the user.
- When the phone begins to run out of disk space, it will give the
user a warning.
- Do not use isolated storage to store high-value secrets, such as
unencrypted keys or passwords, because isolated storage is not protected from
highly trusted code, or from unmanaged code. On an unlocked device, that could
mean your application can be susceptible.
In this article, we saw various
best practices about using isolated storage in your windows phone application.
I hope you have found this information useful and will be able to use the
knowledge to write better Windows Phone applications.