views:

709

answers:

8

Hi,

I'm currently designing a small application in .Net and in the past I've been using MSAccess as standalone database that I can ship with the program. But I was wondering if in this day and age there wasn't alternative solutions, as easy to integrate in a .Net app., as transparent for the user and maybe better performance with large amount of data?

Cheers!

+7  A: 

SQLite! This is exactly what it was made for.

http://www.sqlite.org/

http://sqlite.phxsoftware.com/

Daniel Straight
+1  A: 

SQLite appears to match your needs -- see here for more.

Alex Martelli
+2  A: 

Yes. I would recommend System.Data.SQLite, which is a ADO.NET wrapper around SQLite, a popular embedded database written in C.

Matthew Flaschen
+13  A: 

Your options are:

SQL CE and Firebird are a lot faster when you need multithreaded writes, sqlite is king for single threaded access, or multithreaded reads. VistaDb is 100% managed so you can ship it on embedded devices.

These DBs in general will give you better reliability and performance to access. I would strongly recommend against using any of these dbs over a network share.

Sam Saffron
For Firebird you can see here : http://www.firebirdnews.org/docs/fb2min.html
Hugues Van Landeghem
ESE is not hard to intagrate with .NET anymore... You can use ESENT Managed Interop http://www.codeplex.com/ManagedEsent
spinodal
managed ese net is still fairly complex to consume compared to the other embedded dbs, it has a great advantage that it ships with windows.
Sam Saffron
+1 for sqlite :)
Aviatrix
+1  A: 

VistaDb is another one

Rony
A: 

There is always SQL Server CE... but I have found SQLite to be much easier to work with, especially with System.Data.Sqlite

jle
A: 

You can take a look at siaqodb - link text

You can save objects with one line of code and retrieve back via LINQ

sqo
A: 

Try C#-SQLite - an independent reimplementation of the SQLite:

csharp-sqlite

Translated from C to C#. Pure managed code. No mixed-mode netmodule.

George Chakhidze