views:

85

answers:

4

Hello,

(This question falls between programming and finding a tool, so I guess I'll ask here in SO since it has more activity than SuperUser.)

I like the simplicity of SQLite, but by design, it doesn't support concurrent access. The apps I write don't have heavy needs, so I'd like to avoid heavier solutions like MySQL that are more difficult to deploy (remote customers with usually no computer personnel).

Does someone know of a good solution that would offer the following features?

  • Client available for VB.Net applications
  • The server itself doesn't have to be a .Net application. Actually, I'd rather a bare-metal server so that it can run even on embedded Linux hosts with less RAM/CPU than regular PC's
  • Easy install: the client part should either be statically linked inside the client application or be available as a single DLL, and the server should just be a single EXE listening for queries, à la Fossil (http://www.fossil-scm.org)
  • clients can locate the server on the LAN by broadcasting data picked up by the server, so users don't have to write down the IP address and paste it into each client
  • open-source, or moderately priced closed-source

Thank you.

A: 

Have you considered SQL Server? It scales well from Compact Edition (free, file based), through Express Edition (again, free, but requires installation) and then through the paid-for editions for when your product needs to scale further.

Rowland Shaw
Valid points about SQL Server but it doesn't run on Linux.
ConcernedOfTunbridgeWells
@concernedOftunbridgeWells I was inferring platform from "Client available for VB.Net"
Rowland Shaw
A: 

HSQLDB is also very leightweight, and the upcoming 2.0 release supports concurrency in form of MVCC. It is based on Java though, but there is an ODBC connector available.

PartlyCloudy
I'd rather a bare-metal solution, ie. no extra layer like Java, since the goal is a solution that is as easy to deploy as SQLite.
OverTheRainbow
A: 

You may also consider Derby... Its free and open source.

Muhammad Yasir
Derby is also Java-based, which makes this a bigger pain to deploy than MySQL.
OverTheRainbow
+1  A: 

I would recommend Firebird SQL http://www.firebirdsql.org

Can be embedded and can work as a separate server. Very little footprint with high capabilities.

Fedor
Unless I'm mistaken, Firebird is not a single-EXE program like SQLite, and requires an installer just like MySQL.
OverTheRainbow
Firebird can be file based, although I wouldn't recommend it from **my** experience.
Rowland Shaw
Firebird installation is very simple - just copy files and add registry records. It can be done from your application installer.
Fedor