For an application in .NET Compact Framework, I need to load about 10MB worth of data stored in XML files into datasets. On a desktop, it takes approximately no time to load that data into a dataset, or write it back out to a XML file.
I thought to myself, "since this worked in less than 1 second on a PC, I should be able to do this on a mobile device in maybe 5-10 seconds" - acceptable for an application startup time. Right? Wrong. Try over 4 minutes. Nothing fancy, just a DataSet.ReadXml() and then iterating through and validating data.
Right now, you're thinking to yourself (because I'm writing this I get to choose), "why not use SQL CE or something?" - because the sole purpose of this data is to get enough data loaded into memory to get a head start on synchronizing it with the server, and SQL CE is not worth getting into as a dependency for this task. It's supposed to be as simple of a process as possible.
"Oh, that makes sense," you think. Thank you.
Knowing that 4 minutes for an applicaiton startup was a little bit excessive, I spent a few minutes turning it into a tab-delimited file instead.
The results? All the data loaded in 20 seconds. It's not fancy, it's not flexible, but it works. And that's what I care about at the end of the day.