XML vs. SQlite vs. Access XML vs. SQlite vs. Access sqlite sqlite

XML vs. SQlite vs. Access


I would consider using NHibernate, you can hook it up to SQLite, but can upgrade later to a full database later without needing to change much code. If you're not keen on this, I would use SQLite directly over XML files.


You do not need to install Access to use the Jet engine. Jet is installed with all recent versions of Windows, as far as I recall. You can use Jet (Access) with Linux. Jet requires very little in the way of database management compared to the alternatives, including SQLite.


I would use SQLite over Access - for SQLite you just need to ship the DLLs, for Access you need an installer (although I think it's built into recent versions of Windows). Also SQLite is a better DB.

Or you could of course abstract the data stoarage mechanism using the Repository pattern or similar? If you were to store the data in a file, then load it and expose it from your repository using Linq-To-Objects, then later you could just drop-in replace that with Linq-to-SQL without changing any of your client code.