Stand alone database for Windows Application (WPF) [closed]
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question 开发者_开发百科I have created a simple (commercial) WPF application and want to distribute it with a database that can be installed on the local machine of a customer.
What database is the best to use ?
I was considering SQL Server Epress Edition 2008. I know the limitations of 10 GB, but that's more than enough and is no issue.
The only thing I'm not choosing 100% for Express is that I don't know how to let my customer backup the database.
My collegues keep telling me to use MS Access, but I don't know if that's a good option because I want to use stored procedures and views.
Please let me know what you are using or you can advise me...
SQLite is a great alternative. There is an ADO.NET provider developed by System.Data.SQLite
And there is a decent, free, editor for SQLite as well: SQLite Administrator
Backing up is as easy as copying the SQLite db file. Really.
What is the estimated amount of data?
For small databases SQLite may be an good choice - it is light, fast, opensource and needs no additionally software. It even supports encryption, if you need that.
Backup is as easy as it could be, as the SQLite-database consists of a single file.
Ruutert: database-size up to 500 mb:
That size should be no problem for SQLite. We use databases up to several GB. Only problem on big databases is, that vacuum (like reorg / compress unused space) takes as longer as bigger the database is (but that is the same for other database-types)
Ruutert: disadvantages of SQLite?
You could get problems with High Concurrency (lots of parallel database-access). Also I would consider an client-server oriented database-manager if your workload is so heava that you think about moving your database-manager to another server - splitted from application-server.
But as you considered using SQL Server Express or MS-Access, which have limited functionality too, that should not be the problem. On the other side you have the advantage that you need just an small dll (or compile it static into one of you own) instead of installing an complete database-manager.
An embedded database (like SQLite, which others answerers already mentioned) sounds like the right choice for you.
Since you're using .net anyway, how about Microsoft's SQL Server Compact?
(also an embedded database)
SQL-CE does not include stored procedures.
SQLite is usually the chosen one. However, there is also VistaDB.
You could always look into NoSQL or OO databases:
- db4o
- RavenDb
- EloqueraDB
Note that some of these may need separate DLLs in order to expose the providers in .NET code.
精彩评论