Should I use XML for data storage on client side

xml

I have to create a supplementary program that runs offline on a client machine (normally windows 7 or higher laptop). Of course, I don't want to create a pre-requisite for this program. Since this runs offline, so I can not use a database server either.

This application will store about 500-1000 entry per record and a total of max 100 records.

So, I am trying to decide on the DB tech that works offline, and does not require extra installation on the client's side. Currently I am thinking of using XML to save the data. But I am sure, there are better solutions that I am missing.

Best Answer

This also depends on what kind of records you want to be stored, whether it is semi-structured data that is best formed using XML, or plain key-value based records. SQL Server Express can store both kinds, but involves an additional install. However, to avoid extra installs, you can check out SQL Server Compact and SQLite, both of which are installed as a part of the program you will be distributing and will run embedded with it. Also, several NoSQL databases may cure your needs - just give Google a hint and check the answers. Some of them are also compatible with Linq or whatever means you are using to store and extract data from your code.