I have a .net WinForms 2.0 application that has an image library of about 3000 images currently. Currently I'm using SQLite and storing all of the images as BLOBs with a unique Ids that makes things easy to retrieve.
The benefit to this is that the end users don't have to worry about the installer unzipping a massive blob of images on their computer, and when updates are made, I can push out a single file for the users download that is a fresh copy of everything. The files to tend to be rather large (currently ~60 meg.), but the end users are used to it and the application also has a "no image" mode for those on dial-up.
The one downside to all of this is that generating the library can be a little tricky at times. The data has to get converted into the binary format, I have to make sure the corresponding Ids are properly linked. The job that generates the library takes a while to run as well.
I'm in the process of upgrading the application and I'm wondering if there is a better approach to doing this. I'd still like to keep the single file approach for ease in sending updates to users and keeping the footprint on the computer smaller. Is there some kind of "portable filesystem" or resource library that I can use/create that would allow me to easily insert/retrieve images from it without necessarily having a database for the application to interact with?