In the early years of VNCScan, all of the data was stored in a Microsoft Access database and the settings were stored in INI files. This worked well but required that I distributed a lot of additional runtime files to access the database(pardon the pun).
In late 2003, I decided to move away from Access in favor of flat XML. To this day, I still debate with myself which was better because each have their issues. The XML file format for data made it possible to ship a smaller product with less dependencies but it severely limited the multi-user capabilities for sharing data.
The XML format is just plain text files. When one console reads the data and then writes a change, there’s a chance that another console that is also reading from that same textual XML file can write back what it thinks is accurate data and overwrite the first consoles changes. It can get messy real fast.
At least with the Access database, you could have a few users adding and reading data at the same time without overwriting the whole file just for one change to a single field.
I realize that Microsoft is steering its developers to their mini desktop SQL server instead of Access but it just seems like a lot of overhead for the type of data being stored.
Today, all of the routines needed to read and write to an Access database is built into the existing DotNet Runtime. What drove me to this XML format is no longer a problem.
So, what do you think? Should we make the move back to the Access database to facilitate a better multi-user experience or stick with the XML?