views:

60

answers:

3

Hello!

I need to make a desktop application that stores data, I want this data to protected, and besides, the user shouldn't have to install any data-servers (i.e. SQL-Server, office etc.).

I thought XML would be the best idea, the question is how can I protect the data whilst enjoying the other cool features of it which is XML literals and XLinq (VB.NET is the love of my life).

UPDATE:

It's important for me the users shouldn't know I am using an external tool.

Any ideas on this or other approaches would be appreciated.

+2  A: 

Have you considered SQLite? It can be bundled with your app as a DLL and a data file - nothing else needed.

EDIT: It's been a while, but I believe that there's also an embedded version of Firebird. Never used it though.

FrustratedWithFormsDesigner
Does EF supports it?
Shimmy
I like the SQLite idea, will check it out; is it compatible with Entity-Framework?I reupdated my question regarding the XML.
Shimmy
I don't know if SQLite is compatible with Entity-Framework (I have not used that package/product). There's a .NET plugin that I use for SQLite: http://sqlite.phxsoftware.com/Check their site for details."users shouldn't know I am using an external tool" - As I said, SQLite will be a DLL and data file bundled with your app. I don't think users would know unless they know what to look for (and where).
FrustratedWithFormsDesigner
dll is fair enough.
Shimmy
DLL id fair enought, and according to the link you provided, SQLite is compatible with EF as well!
Shimmy
+1  A: 

SQLite, SQL Server Compact Edition, or SQL Server Express if you need a little more oomph.

they're all redistributable - your end-users don't have to install anything.

as for encryption, your app can decrypt database values after retrieving them. or if using an xml file, the file can be loaded into a buffer, decrypted and parsed into an xml doc.

jspcal
How big is the distributable binary for SQL Server Compact Edition? I know the Express Edition is not trivial - you would have to build an install script to install and configure it (if the user will not do it).
FrustratedWithFormsDesigner
I edited my question, please take a look.
Shimmy
CE is under a couple MB's, originally designed for embedded apps like pocketpc. EE can be installed silently w/ msi
jspcal
+1 for the advice regarding xml encryption.
Shimmy
A: 

Check Solid File System, which provides a great hierarchical storage (actually a virtual file system) for your data.

Eugene Mayevski 'EldoS Corp