Need small database to bundle with C# application

I'm developing a C# application that will collect data over time.  I would like to store this data in a database for later reporting/analysis.

I want my application to have a rather small footprint, simple install process and zero maintenance.  Thus, I'm avoiding a database server.

If I were developing a Java app, I believe I would be looking for Derby (formly Cloudscape).

What are my options for C#?

I may sell the product in the future, so I need to take licensing issues into mind (e.g. I glanced at Perst).  But currently this is rather experimental, so I need to keep costs low.

I'm developing with VS2005.  I may attempt to target .NET 1.1.

Suggestions?
dwieringaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Raynard7Commented:
I'd suggest that you use sqlite - this is very easy to use, is very small and easily portable, its code is completely in the public domain and you are free to use its applications in any form without having to pay any royalties.  It also handles large files (up to gigabytes) pretty well.  There is no install process required provided you have the appropriate libraries in your project (there are some for c#)

www.sqlite.org/ 
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
Zero Maintenance ... that sounds good!

So ... are you asking if an Access Back End would be doable ?

mx
0
_Eyeball_Commented:
If you want a "real" db i think Raynard7 is right. sqlite would be the best solution for you. If you are interested in an alternative i would suggest db4object to you (http://www.db4o.com/)

This is an object based database. You save objects, as they are, into the database. It's much easier and native for OOP! Give the manual a quick look... i think you would like it!

best regards
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
MDB's are pretty 'real' ... when used appropriately, lol !  

mx
0
_Eyeball_Commented:
i know that MDB's are pretty "real". furthermore i know that sqlight has a little less overhead than mdbs have.

And last, but not least, with "real" i mean a db to speak with sql - commands, and not the quality of the db :)

best regards
0
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
lol ...

Well ... let us not forget that Access is the most widely used desktop database application in the World!

I'm not familiar with the products you mention ... but I'm sure you're right. I'm not really a C# guy either ... however I do have one app running that is a guest book built with Flash + ASPX + C# + Access MDB back end.  Very low traffic ... works well for in this case.

mx
0
Gustav BrockCIOCommented:
Access' database, JET, speaks SQL, and drivers, DAO or ADO, are typically installed with newer Windows, thus zero install for you. Perfect for stand-alone use.

/gustav
0
stevbeCommented:
there is a new SQL CE that M$ is testing that has a very small foot print and does not requir a service to be running. I don;t have a lot of details but let me see if I can find the link ...
0
stevbeCommented:
0
dwieringaAuthor Commented:
Thanks for all the suggestions.  Let's please limit the MS Access suggestions unless they include concrete benefits over the alternatives.

Here's what I've come across so far: (no particular order)

1) SQLite: two recommendations...  SQL, free; Can anyone point me to a recommended C# interface and quick start doc/tutorial?

2) MS SQL Server 2005 Compact Edition
http://www.microsoft.com/sql/editions/compact/sscecomparison.mspx

3) VistaDB 3.0: SQL, all the right specs, not free for commercial (but only $250).

http://www.vistadb.net/compare_sql_compact.asp
http://www.vistadb.net/compare.asp

VistaDB has all of the right marketing (and it's cut-and-pasted a lot of places on the web), but I have yet to hear any recommendations from developers.  ...I have heard two negatives (at least one based on the older 2.x version).

4) Perst: oo database; no SQL; single app access only; not free for commercial

5) db4o: oo database; no SQL, but can replicate to relational database; not free for commercial

$200-300 for "in-process".  $1500 if you want client/server.  The $300 in-process with replication to a server is probably what I would want.  Does anyone know if the replication is 2-way?  Do relational changes make it back?

6) Access/Jet.  No thanks.
http://www.vistadb.net/compare_jet.asp


I'd consider dropping the money for VistaDB if I heard a number of glowing reviews (from USERS).  I'd jump on SQLite if I turned up some simple information to get up and running quickly.  If I don't get either of that I may start with MS SQL Server Compact...and play with the others including db4o "when I have time".
0
Gustav BrockCIOCommented:
Please, there is so much negative hype around about Access and JET, including your link which is based on outdated info. The current version of Access, 2007, uses upgraded versions of JET and DAO, so neither of these are "dead".

That said, given that you use VS2005, SQL Server 2005 Compact Edition (which I didn't know of) appears to be the right choice.

/gustav
0
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
ok then ... this will be my last post re Access ... however, from 'http://www.vistadb.net/compare_jet.asp' :

 "which as most developers know, does not work well in multi-user applications." (yes, web server - probably not)
**Totally bogus statement.

"With the nail in the coffin for the Jet engine, "
**More fantasy!

Clearly, this site is bad-mouthing Access/Jet in order to hype THEIR product.  It's filled mis-leading statements. Beware!!!

mx
0
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
And Kudos to cactus_data.

And now ... back to the Microsoft Access Database Zone.  Will you be joining me Cactus?

mx
0
Gustav BrockCIOCommented:
Certainly - I didn't even realize this was a C## zone. Wonder what I am doing here ... but it seems I had a mission.

I could add, that we have used Access and JET for our multiuser clients since 1993 for mission critical systems (accounting), and that combo has never let us down.

/gustav
0
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
Mission Accomplished ;-)   Me Too.  
Ditto on multi-user ... since A1.0 !!
A2007 is HERE!!! Long Live Jet.

mx
0
dwieringaAuthor Commented:
Here's an answer to one of my own questions:

db4o's replication to relational databases IS bi-directional (optionally).

http://www.db4o.com/about/productinformation/features/drs.aspx

Pretty cool stuff.
0
stevbeCommented:
msdn has lots of info (as expected) on SQlServer 2005 CE

http://www.microsoft.com/sql/editions/compact/default.mspx

and it is ClickOne deployable for C# projects
0
dwieringaAuthor Commented:
Since this died down, I'll just re-summarize my "question".

1) Anyone used VistaDB 3 and liked it?

2) Any recommendations on how to get up to speed with SQLite with C#/VS2005 quickly?  (I'm relatively new to the MS world...C#, VS2005, etc).  I see there are multiple C# wrappers out there.

0
Gustav BrockCIOCommented:
> I'm relatively new to the MS world...C#, VS2005, etc. ...

If so, I would stick with SQL Server 2005 Compact Edition; it seems the perfect match for VS2005.

/gustav
0
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
Did we get a resolution to this question?

mx
0
Gustav BrockCIOCommented:
Did you find a solution?

/gustav
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.