Friday, April 01, 2005

An Embedded DB for the .Net Masses!

I am so excited! I feel like Goldilocks after I have tried the porridge that is too hot, and the one that is too cold. This one is JUST RIGHT!

For those of you who have perhaps assumed that I have a screw loose somewhere, let me explain. Programming is fun, programming is cool, programming may even get you chicks... But one of the first fnagling problems facing a developer at the beginning of any project is, "how am I going to store the data?".

In many projects this may become immediately obvious either because of existing data, or available database systems. But this becomes more of a problem when talking about a thick-client, deployment from scratch. Now you are talking about a totally isolated machine, that you won't get much time (if any) to go around, visit and make sure everything is honkey-dorey. You are also talking about an installation that needs to be small (maybe you are deploying from the web), simple (there ain't no IT guys where this program is goin'), and secure (no good having a password on your application if everyone and their brother can simply look inside the file).

In this case the choices for embedded database become fairly few and far between. Let us add an entire Microsoft bias here and say that you only care about Windows™ development in .Net (se moi). Some of your choices might be: Access/Jet, MSDE (mentioned below), SQL Server Express 2005 , XML files, MySQL, Paradox (!?)

Well, how about VistaDB? Let's do a comparison:

NameRequirementsFeaturesDrawbacksPrice

VistaDB

.Net Framework 1.1 (Mono?) 500K Redist

Encryption Transactions Triggers/Constraints Referential Integrity Indexing AutoIncrement Identities Multi-User Copy To Install

$129

Access/JET

<>

(JET engine deprecated from MDAC and no longer available) 20MB

Included in older MDAC's Referential Integrity Indexing AutoIncrement Identities

Not always available

Going forward, each deployment will require an Access license.

MSDE

Windows 98 and above 70MB

Transactions Replication Multi-User 16 Instances Stored Procs/Views Triggers/Constraints Referential Integrity Indexing AutoIncrement Identities

Large Difficult Install Patches? Lockdown Needed

Free (with various Microsoft products)

SQL Server Express 2005

.Net Framework 2.0 (ONLY) 125MB Ram (after boot) ~40MB

Transactions Replication Multi-User 16 Instances Stored Procs/Views Triggers/Constraints Referential Integrity Indexing AutoIncrement Identities

Large Difficult Install Patches?Lockdown Needed

Free (with various Microsoft products)?

XML Files

You need to code libraries

Bulky Slow Lots of Custom Development Needed

Free

MySQL

~30MB

Transactions Replication Multi-User Indexing AutoIncrement Identities

Large Requires Installation Lockdown Needed

Free

Paradox

~10MB

Indexing AutoIncrement Identities

Prone To Corruption Old Technology Requires BDE install

Free (With various Borland tools)



On top of this, there is a very nice third party review of VistaDB by Mike Gundelroy. After looking at this list, there is no comparison if you want a small, fast, simple install for an application that includes a database. I'm sold! And, I just bought my copy to play with. I'll let you know if I have any complaints.

2 comments:

VistaDB said...

Wow, thanks for this great post and thank you for your support. Every VistaDB customer is important to us. Also, just to mention that VistaDB is royalty-free. So you pay once and deploy it as you wish.


Anthony Carrabino
www.vistadb.net

Tom Baker said...

Yes! In my enthusiasm for writing this article, I neglected to mention it was a royalty free distribution.

Also version 2.0 is out wich includes a server edition. But, more important to me - since my last post there have been at least three revision releases that have corrected many minor problems.

This is still an evolving product, but it is working as we needed in our current development of a distributed 3-tier system where the clients may detach and work offline on sensitive data.