I’ve used databases in asp.net but I now have a situation where I need the power/flexibility of a database but I need to ship it with my application. I need to access my tables and create new ones etc but without requiring the user to have any kind of database software installed. I.e. I want it to be self-sufficient. What are my options? Of course standard serialization could be used but I want to use an actual database technology for cases where the records are in the tens of thousands.
Thanks for any input!
You’re probably looking at some sort of embedded / in-process database. Microsoft espouses their lite version of SQL Server. My personal recommendation is to look at SQLite. SQLite leaves you with a single DLL to run the database and one file for the actual db data.
The System.Data.SQLite project is an awesome community contribution to bridge the gap between SQLite and what .NET developers have come to expect with commerical database integration. With this project you get a driver with full ADO.NET 2.0 support, ADO.NET Entity Framework support and Visual Studio database design time integration.
Give it a look. You’ll be up and running in no time and I’m sure you’ll be impressed.