Visual Studio 2008 integrates Sql server 2008 express nicely into App_Data folder. You just create the database using Server Explorer, and it inserts the connection string into web.config for you. I used it when I worked on my toy project - ToastManager. I finished coding and testing on my machine and deployed it to an integration server which belongs to my SCRUM team.
A problem, as usual, arose on the integration box. My windows login had sysadmin access to my local Sql Server express, but the process that runs ToastManager did not on the box.
I blindly thought that Sql Server express is a stand-alone DB and it can be deployed together with the applicaiton. It was misunderstanding. Sql Server Express is still a server application that needs to be installed on a remote machine. I looked for an alternative and soon found that many people use Sqlite.
Sqlite is an open source database and people testify that it is really fast. In order to use with .Net, you need to install System.Data.SQLite, which is another open source ADO.NET provider for SQLite database engine.
Once you download Sqlite, you can use its own command-prompt based tool, but probably, your first reaction is to try to find some GUI management tool. Fortunately, there is one too. It is FireFox Add-on: SQLite Manager.
If you have all necessary programs, please be careful with the folloing points.
This is my repository codes I wrote against SQLite. Hope it helps.
public class OrderRepositorySqlite : IOrderRepository
ToastMasterSqlite _entities = new ToastMasterSqlite();
#region IOrderRepository Members
public IEnumerable<Order> ListTodayOrders()
return (from o in _entities.Order
where o.OrderDate >= DateTime.Today
public Order GetOrder(long id)
return (from order in _entities.Order
where order.OrderId == id
public void Add(Order order)
public void Delete(Order order)
var originalOrder = GetOrder(order.OrderId);
public Order Update(Order orderToUpdate)
var originalOrder = GetOrder(orderToUpdate.OrderId);