独立数据库适用于Windows应用程序(WPF)

4
我创建了一个简单的(商业用途)WPF应用程序,并希望将其与一个可安装在客户本地计算机上的数据库一起分发。
哪种数据库最好使用?
我考虑使用SQL Server Express Edition 2008。我知道10GB的限制,但这已经足够了,不是问题。
Express唯一让我不确定的是如何让我的客户备份数据库。
我的同事们一直告诉我要使用MS Access,但我不知道这是否是一个好的选择,因为我想使用存储过程和视图。
请告诉我你正在使用什么,或者你可以给我建议...

我同意其他人的观点,认为SQLite非常适合你的需求。但是,如果你唯一担心的是SQL Server Express的备份问题,那么你可以参考例如"如何使用SQL Server Express进行每日备份调度?"这样的文章。 - StackExchange saddens dancek
2
SQL Server Express 2008有4 GB的限制,而2008 R2版本将其提高到了10 GB。 - marc_s
4个回答

6

SQLite 是一个很好的替代品。有一个由System.Data.SQLite开发的 ADO.NET 提供程序。

还有一个不错、免费的 SQLite 编辑器:SQLite Administrator

备份只需复制 SQLite 数据库文件。真的很简单。


5

估计的数据量是多少?

对于小型数据库,SQLite可能是一个不错的选择 - 它轻巧、快速、开源且不需要额外的软件。如果需要,它甚至支持加密。

备份就像它应该的那样容易,因为SQLite数据库只由一个文件组成。


Ruutert: 数据库大小最多可达500 MB:

对于SQLite来说,这个大小应该不是问题。我们使用多达几GB的数据库。唯一的问题在于大型数据库的vacuum(类似于重新组织/压缩未使用的空间)所需的时间越长,数据库越大(但其他类型的数据库也是如此)。


Ruutert: SQLite的缺点?

您可能会遇到高并发性(大量并行数据库访问)的问题。如果您的工作负载如此重,以至于您考虑将数据库管理器移动到另一台服务器 - 与应用程序服务器分开,那么我会考虑一个面向客户端-服务器的数据库管理器。

但是,既然您考虑使用SQL Server Express或MS-Access,这两者的功能也有限,那么这不应该是问题。另一方面,您的优势在于只需要一个小的dll(或将其静态编译到您自己的dll中),而不是安装一个完整的数据库管理器。


我们现在已经使用完整版(Web)5年了,最大的数据库大小约为500 MB。 - Ruutert
SQLLite也有一些缺点吗? :) - Ruutert
我把我的评论移到了答案中。 - MacGucky
大家好,我选择了SQL CE(Compact Edition),这个很好用,安装和备份都很容易! - Ruutert

4
一个嵌入式数据库(例如SQLite,就像其他回答者已经提到的那样)听起来是你的正确选择。
既然你已经在使用.NET,那么Microsoft的SQL Server Compact怎么样?(也是一个嵌入式数据库)

SQL Server Compact 只面向开发人员吗? - Ruutert
SQL CE不仅仅是为开发人员而设计的,它是一个独立的、紧凑的SQL服务器。SQLite是SQL CE的替代品。 - Metro Smurf
好的,我只是一个(.NET)开发者,不是DB专家。大部分时间,我所工作的项目已经安装了SQL SERVER,这是我第一次在一个带有独立数据库的Windows (WPF)项目上工作。 - Ruutert
1
+1 推荐 SQL Server Compact Edition。新版本 4 确实是一款非常不错的软件!一个文件,轻松部署,所有库都包含在 .NET 组件中 - 太棒了! - marc_s

3

SQL-CE不包括存储过程。

SQLite通常是首选。但是,也有VistaDB

您还可以考虑NoSQL或OO数据库:

请注意,其中一些可能需要单独的DLL才能在.NET代码中公开提供程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接