VistaDb (100% Managed Database Engine)
Wow it's been a while, sorry for the lack of updates. It is due to a combination of studying for the MCPD (second attempt is looming) and having a bit of a deadline to meet on a project. I've been spending most of my time helping folks out on the MSDN forums. Many people ask me questions through this blog, although I really appreciate you coming and reading my blog, your best bet is to post to the forum. Much more likely to get your questions answered there.
Anyway found this wonderful fully managed database engine by the name of VistaDB, here is the link... it does look pretty amazing even though I've only had a small look.
http://www.vistadb.net/default.asp
This is a fully managed (written completely in C#) file based database engine that has less than a 1Mb foot print. It's like Access without the Jet Engine and it's like an SQL database without SQL Express. You create your database as a file, deploy it with your software along with a 1Mb DLL file (referenced by your project) and thats it, a fully functional database and engine. There isn't much of a learning curve as it uses all the ADO.NET objects you'll be familiar with, here a dummy example....
VistaDBConnectionStringBuilder connString = new VistaDBConnectionStringBuilder();
connString.OpenMode = VistaDB.VistaDBDatabaseOpenMode.NonexclusiveReadWrite;
connString.DataSource = "MyFirst.vdb3";
VistaDBConnection conn = new VistaDBConnection(connString.ConnectionString);
VistaDBCommand cmnd = new VistaDBCommand("SELECT * FROM [Employee]", conn);
conn.Open();
VistaDBDataReader readr = cmnd.ExecuteReader();
while (readr.Read())
{
//and so on
}
conn.Close();
Fantastic, all you need to specify is the connection string which at its most basic is "Data Source = 'C:\databaseFile.vdbc3'"
There are some limitations (although not that many) and the only one I can think of is there is no TSQL Stored Procedures, but there are CLR Stored Procedures. These are, from the look of things, method calls from assemblies that are embedded into the database. Really thats about the only limitation I can really find and there is a question of performance but I can not comment on it as I haven't ran any benchmarks.
To be honest though it's worth looking at and I know I'm going to be buying a copy. No need for your users to install anything, no SQL Express, no Jet Engine (which is not supported on 64 bit). Ideal. It also has XML support in that you can build a database from a schema and import XML data in, and I'm guessing out. It has CLR Triggers, Referential Integrity, Views, and have I said... I'm getting a copy. Cheap as chips.