What Database to distribute as part of a C# app backend

I am planning on writing and commercialising a C# app which will store data in an underlying database I use MySQL on my environment for my own development and this is what I would have used to write the application for myself (no need to use FK - MyISAM engine would be fine).

I am concerned about how easy it will be to distribute the app together with the database engine. Would using MySQL allow me for easy packaging of the app for a "one-click" install on the client side? (ie I do not want them to have to install MySQL by themselves) and also is it feasible from a licensing point of view?

Are there other Database systems which would make the process more straight-forward

Answers


The key here is what kind of database you need. Is this database to be shared among several users of the app? If so, than MySQL would be fine.

But it sounds more like you intend to use this database as a private data store, where each installed instance of the application has it's own data local to that machine or profile. In that case, you want an in-process engine like Sql Server Compact Edition, Sqlite, or even Access rather than a server-class engine like MySql or Sql Server Express Edition.


Take a look at SQL Server Compact 3.5


Sqlite is very simple. You just deploy the DLL with your app. I can't tell how appropriate it is for your situation, given the lack of info.


I think SQLite could do the trick, as it is a filesystem-based database, so no installation required.

Access could also do the trick, and most of businesses have it already installed as part of Microsoft Office, though you wouldn't need it to be installed in order to use the Odbc or OleDb assemblies that are part of the GAC.


I think, that an embedded DBMS is the best way for yor. For example, you can use Firebird Embedded


SQL Server 2008 Express is available for redistribution by ISVs. You an also deploy this using Microsoft Web Platform Installer.


SQL Server Express is another option. Has excellent integration with .NET, free to install and supports upto 10GB per database (or more if you use the Filestream feature).


Need Your Help

how to fix wrong encoding in translation application?

java translation urlencode

I implemented some translational application and faced with the problem - incorrect output.