views:

478

answers:

7

Are there any DB engines that are implemented entirely in .NET and Mono compatible? I would like to have a DB solution that will run on all platforms via Mono so that I don't have to worry about having separate native binaries for each platform.

A: 

I read a short time ago that there is now a .NET port of HSQLDB (a 100% Java database, I would assume that a .NET port is 100% .NET code). The web site seems to be down right now but you should take a look at it.

Robert Petermeier
+6  A: 

db4o is an object database engine (written in both Java and C#) that compiles/runs smoothly under Mono.

Sergey Kovalev
+6  A: 

VistaDB is fully .NET and supported on Mono. You can embed your DB server into your app with it so there's no extra setup the only issue is this isn't a free product.

Firebird has a .NET version, and is opensource, which runs on Mono as well. There's also a Lucene adaptor for it incase you want to use that for searches.

Can also give this page a look that lists the supported data providers etc. under Mono

http://www.mono-project.com/Database_Access

Brian Surowiec
Something I forgot to mention too is you could always design the app using an abstracted DAL so instead of calling out to the DB directly you'd call out to something like CommonDataProvider.GetInstance() and that will get you a reference to the provider set in the config file. Then you could target MSSQL but also MySQL, Oracle etc. and have optimized code for each. That's how apps like community server, graffiti and dotnet nuke work.
Brian Surowiec
+2  A: 

SQLite isn't written in .NET, but there is a .NET adapter (with linq to entities support), and it is portable to all platforms you're likely to consider (it's used for instance in firefox, safari, adobe lightroom, apple's aperture and skype). If you're looking for a proven, widely adopted, open-license db, it's a good contender.

However, db4o is certainly a good alternative to be mentioned, particularly since it integrates so easily into an OO environment (which sql-based db's tend not to).

Eamon Nerbonne
http://tirania.org/blog/archive/2009/Aug-06.html CSQLite in C# ;).
Dykam
The timing is hilarious ;-). I'd still use the native bindings initially, though, until the port matures.
Eamon Nerbonne
+2  A: 

csharp-sqlite http://code.google.com/p/csharp-sqlite

FlappySocks
A: 

you can take a look at siaqodb link text

it runs by same assembly on .NET and Mono

sqo
A: 

You can check new EffiProz Mono release http://www.effiproz.com/product_mo.aspx

Kris Compton