?
Solved

Need small database to bundle with C# application

Posted on 2007-03-22
22
Medium Priority
?
498 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 5
  • 4
  • +3
22 Comments
 
LVL 35

Accepted Solution

by:
Raynard7 earned 300 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 300 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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 51

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 51

Assisted Solution

by:Gustav Brock
Gustav Brock earned 300 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
 
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 51

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 100 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: 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 51

Assisted Solution

by:Gustav Brock
Gustav Brock earned 300 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 51

Expert Comment

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

/gustav
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access custom database properties are useful for storing miscellaneous bits of information in a format that persists through database closing and reopening.  This article shows how to create and use them.
If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses
Course of the Month14 days, 21 hours left to enroll

770 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