Solved

Need small database to bundle with C# application

Posted on 2007-03-22
22
496 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 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
Industry Leaders: 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 50

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 50

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
 
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 50

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: 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 50

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 50

Expert Comment

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

/gustav
0

Featured Post

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

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

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
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.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

729 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