views:

143

answers:

7

I am writing a desktop utility application to manage a small set of data. This application will be used by a singular person so I'd like to keep the database as simple as possible. I am considering XML or SQL Server Compact 3.5 (SQL CE). I am leaning towards SQL CE because it will probably be easier/quicker to develop than XML. Are there any other worthwhile solutions worth considering? Is SQL CE the way to go?

Edit - Here are some more specifics on the data:

  • Maybe a half a dozen tables
  • No more than 5000 records
  • Mostly CRUD operations
  • Basic reporting/exporting to excel
+3  A: 

SQL Server Express

jn29098
What does Sql Server Express offer over SQl Server Compact? Sql Server Compact is a single file, no background service which seems advantageous in this situation.
Bob
Stored procedure, triggers, remote management via SSMS.
SqlACID
+4  A: 

SQLite would be my choice.

lune
Why? What does SQLite offer over Sql Server Compact?
Bob
I agree on this highly. SQLLite is the way to go.
djangofan
SQLLite gives you the benefit of not requiring anything to be installed on the system where the software runs. If you "must" use Microsoft, as a java developer I would create an app in java, use the standard odbc driver to connect to an Access database directly, and compile it as a standalone .exe .
djangofan
What does SQL Server CE require that SQLLite does not?
Robert Rossney
+2  A: 

It depends on a number of parameters:

  • How much data will you store
  • Will you perform complex queries on the data
  • What kind of performance demands to you have
  • and more...

If you are going to store relatively small amounts of data, without complex relations, and without a great need to query the data in complex ways, XML might be enough. If you on the other hand expect a greater amount of data, need good query support and performance, SQL Server Express or some other lightweight database manager would be the way to go.

Fredrik Mörk
A: 

I've had good experiences with Sql CE, that seems like a very reasonable solution given the scenario you're describing. It has the added advantage of being much simpler to deploy than a separate solution as well, and I think that is a very big deal for a simple app like you describe.

I'm using it with Linq2Sql right now in my personal project, in fact. :)

Greg D
+1  A: 

You can take a look at Firebird Embeeded.

link text

vIceBerg
Similar to SQLLite but not as good.
djangofan
A: 

SQL Server CE is lightweight and simple, and if you're using Visual Studio you already have it.

Robert Rossney
A: 

If this is for a single user and a limited set of data, I'd recommend looking into db4o. http://db4o.com

It's an object database that would allow you to store objects directly without having to translate them into tables.

genki