1. Computing

An evaluation of open source and free embedded databases for .NET

By

For an extensive commercial application that I am upgrading (to C# from Delphi) I need to use an embedded database running on .NET. It's an upgrade so the client will not pay for the database technology which restricts it. the application will be installed on client PCs, so installation has to be clean and support free. That means avoiding separate db servers whether Java (may need JRE's installed) or .NET. It may be that the requirement for particular versions of ADO drivers will also be a limiting factor and I may decide to write my own version as the requirements are fairly modest.

I wrote the original code and used a windows single file volume holding everything in two volumes (static data and dynamic). There are about 10 tables needed though only two have more than a few records and it's accessed by a single user.

I have decided to evaluate the following embedded databases during the period September-October 2010 and write my evaluations here. If you know of others that may fit this requirement, please email me at cplus@aboutguide.com.

DB40

DB40 is available in two versions (Java and .NET) and installs with a single .MSI. Documentation is very good with plenty of reference and tutorial provided both online and off line. Db40 is provided as a single dll. DB40 is an object database so rather than running bespoke queries written in SQL, you write queries using LINQ. E.g. using their examples:

Pilot pilot1 = new Pilot("Michael Schumacher", 100); db.Store(pilot1);

To query the DB, use this

IList pilots = db.Query (delegate(Pilot pilot) { return pilot.Points == 100; });

Effiproz

EffiProz was originally a conversion of of HSQLDB (a SQL 92 Java relational DBMS) to C# but it has now surpassed that with extra stuff. It's licensed uner a liberal BSD so is free for non-commercial (research etc) but for commercial use needs a license. (If you used it to power a website, how would they know?)

ScimoreDB

This has the advantage of being both free and royalty free and a 3 or 4MB footprint. It can be used from C++, C# and Vb, is ASP.NET enabled and runs either in process for very fast access or out of process for safety. In process means that if your App crashes, it brings down anything else in the same process.

A big advantage of this is that ScimoreDB scales up from embedded to the Server and Distributed cluster. A very big advantage is that you are permitted to use Scimore products freely for both non-commercial and commercial products. You can royalty free distribute ScimoreDB with your software.

SQL Server Compact 3.5 SP2

This is a bit of a strange product competing as it does with SQL Server Express. It's meant for Mobile usage as well as lightweight desktop embedded without requiring the complexity that installing SQL Server Express involves. Compact is single user and supports T-SQL but does not support stored procedures, views or triggers. The data file can be encrypted and the password is embedded in the file.

SQLite.NET

TBD

Perst .NET Open Source

Perst is an object Oriented database meaning that instead of storing data in tables linked by relationships, Perst makes objects persistent by storing them and related objects. It uses special ancestor classes to simplify loading and retrieving.

Conclusions

TBD
  1. About.com
  2. Computing
  3. C / C++ / C#
  4. Pro. Development
  5. Free and Open Source Embedded Databases for .NET

©2014 About.com. All rights reserved.