I am using IsolatedStorage in Silverlight 3 to store some settings when a user navigates away from a page hosting the application.

Currently i'm using a DataContractSerializer to write the settings to file. In some circumstances the resulting file is quite large, over 10MB (a lot of this size is due to the serializer itself and the XML it generates). This produces problems because 

* i have to request the extra space from the user
* it is really slow writing the data to file

can anyone share some strategies they have used for dealing with larger files in IsolatedStorage?

* how do you determine the likely amount of disk space you will need?
* do you use a DataContract or Xml Serializer and then zip the result before saving?
* or do you use some sort of binary/custom serialization? If so, did you gain any substantial space or time savings?
* is there some way of declaratively saying your application requires a certain quota, so that the user doesn't have to be prompted at some arbitrary point?

I personally don't like writing large quantities of data to file like this, but i need to know all the available options before i explain the issues to a product manager and persuade them to change the requirements.

Thanks!