Solved

Need small database to bundle with C# application

Posted on 2007-03-22
22
487 Views
Last Modified: 2013-12-17
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?
0
Comment
Question by:dwieringa
  • 7
  • 5
  • 4
  • +3
22 Comments
 
LVL 35

Accepted Solution

by:
Raynard7 earned 150 total points
ID: 18777387
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
 
LVL 75
ID: 18777395
Zero Maintenance ... that sounds good!

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

mx
0
 
LVL 2

Assisted Solution

by:_Eyeball_
_Eyeball_ earned 150 total points
ID: 18777837
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
 
LVL 75
ID: 18777854
MDB's are pretty 'real' ... when used appropriately, lol !  

mx
0
 
LVL 2

Expert Comment

by:_Eyeball_
ID: 18777865
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
 
LVL 75
ID: 18777878
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
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 18779333
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
 
LVL 39

Expert Comment

by:stevbe
ID: 18779335
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
 
LVL 39

Expert Comment

by:stevbe
ID: 18779367
0
 

Author Comment

by:dwieringa
ID: 18781425
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
 
LVL 49

Assisted Solution

by:Gustav Brock
Gustav Brock earned 150 total points
ID: 18781525
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
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 75
ID: 18781536
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
 
LVL 75
ID: 18781558
And Kudos to cactus_data.

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

mx
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 18781609
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
 
LVL 75
ID: 18781645
Mission Accomplished ;-)   Me Too.  
Ditto on multi-user ... since A1.0 !!
A2007 is HERE!!! Long Live Jet.

mx
0
 

Author Comment

by:dwieringa
ID: 18781762
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
 
LVL 39

Assisted Solution

by:stevbe
stevbe earned 50 total points
ID: 18781882
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
 

Author Comment

by:dwieringa
ID: 18804799
0
 

Author Comment

by:dwieringa
ID: 18804823
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
 
LVL 49

Assisted Solution

by:Gustav Brock
Gustav Brock earned 150 total points
ID: 18806327
> 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
 
LVL 75
ID: 18831417
Did we get a resolution to this question?

mx
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 18844272
Did you find a solution?

/gustav
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now