Embedded database engines for .NET
I am developing app using dot net which needs a local database. I have found a number of vendors but I have not found any objective review of the products. Does any one have any experience they can share on the topic? My requirements are: easy instillation, and reliable data storage (A corrupted file would be a very bad thing). Speed is not important to this project.
Probably want to use Jet or MSDE.
+1 for Jet (Access). Perfect for lightweight use, as the SQL is pretty standard, backup is easy, and no additional install required above and beyond the already-needed MDAC (for ADO.NET).
And, as a helpful tip, its easy enough to embed a blank .mdb as a resource in .NET (the assembly comes to a smidge over 100k) - which means you can do the whole thing via OLE DB and without needing a legacy reference.
FileCopy Blank.mdb MyNewOne.mdb
That's one option - but not, in my opinion, a particularly good one (although my method is a glorified version of the same thing, its a tad tidier and you don't have to worry about blank.mdb still being where you expect it to be).
The Open Source options include SQLite [ http://www.sqlite.org ] and MetaKit [ http://www.equi4.com/metakit/ ] which is not an SQL database, but has an SQL front end called MkSQL [ http://www.mcmillan-inc.com/mksqlintro.html ].
But you were saying that you would include blank.mdb in the resource for the application. In which case, you could persist it to the hard drive and copy it. A much less computationally taxing solution far less prone to errors than recreating the schema in code through ADOX.
DanP -- You might want to check out Advantage Local Server, a free fileserver based database. Advantage has a wide following in the Delphi community, but it also has ODBC and OLEDB providers so you really can use it in any Windows environment.
I have one, generic, piece of code that lets me splat a blank database into my choice of location on the HDD.
Fog Creek Home