We have a "large" code base already developed using SQLite and NHibernate using .NET 2 for our clients. Using SQLite we can communicate with the db (even multiple clients) across a Windows file share. Most of the time, this is perfectly sufficient for what we need to do.
Over the last few months, we have needed to integrate our application with a much older application that is very niche, and runs on a custom built version of Windows - with a lot of things stripped out. No .NET, and we aren't "allowed" to use file shares. Now we have a problem.
We're looking for an embedded database system that can be dropped in for SQLite, using NHibernate, which could also be accessed using a client/server (the resulting code must be written in C).
In short:
- Normal Usage could be with NHibernate and a local file (could be run as a service w/ client/server protocol)
- Additional Usage would be with a C library in a client/server fashion
In many cases, we'll want to do both.
SQLite with a wrapper library was our first reaction, using SQLitening for example. Firebird may be an additional option. Some computers that we install onto may already have SQL Server running (I'm not sure about C support for SQL Server).
Any others (open sou开发者_如何学JAVArce or commercial)?
If you want really lightweight, I've found CodeBase (the isam) to be hightly efficient and easy to strip things out and relink.
Otherwise SQLite is what I've often used for portable applications (embedded linux, WinCE etc.) - in preference to Microsoft portable database options where applicable.
check out http://www.h2database.com/
精彩评论