tags:

views:

133

answers:

3

I would like to build and deploy a database application for Windows based systems, but need to live within the following constraints:

  1. Cannot run as a server (i.e., have open ports);
  2. Must be able to share database files with other instances of the program (running on other machines);
  3. Must not require a DBA for maintenance;
  4. No additional cost for run-time license.

In addition, the following are nice to have "features":

  1. Zero-install (e.g., no registry entries, no need to put files in \Windows\..., etc.);
  2. "Reasonable" performance (yes, that's vague);
  3. "Reasonable" file size limitations (at least 1GB per table/file--just in case).

I've seen this question
  Embedded Database for .net that can run off a network
but it doesn't quite answer it for me.

I have seen the VistaDB site, but while it looks promising, I have no personal experience with it.

I have also looked at SQLite, and while it seems good enough for Goggle, I (again) have no personal experience with it.

I would love to use a Java based solution because it's cross-platform (even though my main target is Windows, I'd like to be flexible) and WebStart is a really nice way to distribute software, but the most commonly used DBs (Derby and hsqldb) won't support shared access.

I know that I'm not the only one who's trying/tried to do this, so I'm hoping I could get some advice.

Thanks,
John

+1  A: 

I'd go with SQLite. There are SQLite bindings for everything, and it's very widely used as a embedded database for a large number of applications.

dvorak
I guess the real question is how good is the performance and how hard is the coding in a multi-user environment.
JohnMeyers
+1  A: 

I use SQLite at work and one thing that you should keep in mind is that its file based and uses a file lock for managing concurrent connections. It is not a great solution when you have multiple users trying to use the database at the same time. SQLite is however a great database for one user application, its fast, has a small foot print and has a thriving community built around it.

Aaron Fischer
And my application requires 2-3 users hitting those files at the same time.
JohnMeyers
A: 

If you've got VStudio sitting around, how about SQL Server 3.5 Compact edition? MSSQL running in-proc.

http://www.microsoft.com/sql/editions/compact/downloads.mspx

stephbu
I had looked at this as a solution (and I do have experience running it on handhelds), but don't think it will fit here. It is a much "heavier" install and can do server things by default. But more important is that is meant for shared database files.
JohnMeyers