100Kb Default Limit
It looks like (via ScottGu's blog), that there will be no increase in the size of isolated storage for Silverlight 2 Beta 1, infact it's now less (silverlight 1.1 was 1Mb). I think it's unlikely that this will increase to drastically in the future (in fact since it has been reduced, it indicates the direction).
My opinion won't be very popular but here we go.
In the past I have been someone who has publicly stated that we need a large default, but i now believe i was wrong. If the default was 100Mb, I am not sure after visiting 10 sites, I would want 1GB of my hard disk taken up.
User Configurable Limit
the good news is that for those folks who need more than 100Kb, this limit is user configurable. So if you need to use more than 100Kb that you will need to ask your users to increase the limit.
In Silverlight 1.1 Data stored in Isolated Storage was volatile, so when you clear your browser cache, your isolated storage is also cleared. This has changed in the beta (and it is now stored on your local file system independant of your browser cache). However a user can just go and delete data therefore we need to ensure data is synchronised with the backend server (which means that you need to keep bandwidth in mind).
As a user I am not sure I would be too happy with losing my vital data because it wasn't saved back to the server or with using an internet application that i couldn't use throughout the world (due to my data sitting on my local file system), hence why synchronization is important.
So what should we be storing in the isolated storage?
I believe the point of the isolated storage area is to enhance the UI experience not detract from it, so I genuninely believe that I was wrong, and that Microsoft are right and low limits are sensible (with the flexibility of allowing the user to increase it).
There is no point storing media files in Isolated Storage as the browser already has a perfectly adequate caching mechanism. There is also no point keep vital documents (that are not saved back to the server) for the reasons above.
I believe isolated storage is really about 2 things:
- Accessing / storing common data to reduce frequency of server calls
- Temporary storage of data which is synchronised with the back end server.
Good uses of Isolated Storage
To give a flavour of what Isolated Storage should be used for I have given some examples below (this list is by no means exhaustive)
- Displaying user details in the site e.g. "Hello Bob, Welcome Back Bob"
- Storage of theme / skin preferences (so when you return to a site, you can see the site with your preferred skin without waiting for a response from the server first).
- Temporary storage area for document drafts, prior to synchronisation with the server (very useful if internet coverage is flaky)
Bad uses of Isolated Storage
- The only storage place of every vital document i have ever written
- Attempting to store the entire contents of wikipedia
The point is if you wish to be a naughty programmer and waste your users hard disk space, you are going to have to ask them very nicely. This is not to say you can't use Isolated Storage in genuine (and innovative ways), you just need to have your users give you permission.
What is more likely to happen (with low default limit) is that there is a better chance that you will enhance the UI experience (and be respectful of hard disk space, and bandwidth), and not degrade it.
If Microsoft can fit Silverlight 1.0 in a 1MB download, and Microsoft can fit Silverlight 2, in a 4MB download, do we really need a 100MB default isolated storage limit.