对于一个小型.net应用程序来说,什么是一个好的数据库选择



我在。net中使用c#开发一个小型应用程序,我希望有一个小型的轻量级数据库,它不使用太多资源。

请列出一些最著名的轻量级数据库软件

14/06/2016 是的…还在获得支持:-/


17/03/2014我仍然收到这个问题的好评,注意这个问题最初回答的日期。虽然列出的主要三项仍然完全可行,但该清单将趋于陈旧。还有其他可用的数据库技术未列出。


您有几个立即可识别和免费的选项:

  • SQL Server Express LocalDB
  • SQL Server精简版
  • SQLite

SQL Server Compact随ADO一起下载。. NET提供程序,您将需要在代码中引用它。SQLite下载可能没有,所以这里有一个链接:

http://sqlite.phxsoftware.com/

这三个都使用SQL,尽管可能有一些限制/怪癖。Management Studio适用于Compact和LocalDB,而对于SQLite,您将需要另一个UI工具,如SQLite Administrator:

http://sqliteadmin.orbmu2k.de/

有NoSQL替代方案,例如:

    英镑
  • RavenDb

我个人会避免使用MS Access面对其他免费的选择。使用LocalDB、Compact或SQLite不会出错。它们都是可爱的小数据库,在很小的内存中运行相对较快——我想个人偏好是喜欢微软产品的宗教方面:-)

我使用Sterling进行Windows Phone编程,因为它是为使用隔离存储而构建的。我只看过关于RavenDb的文章,但我可以告诉你,它是一个基于JSON的文档存储框架。

不要混淆情况(使用SQLite, SQL Server Express LocalDB或SQL Server Compact Edition),但是还有其他嵌入式/本地数据库,有些是关系数据库,有些是面向对象的:

    嵌入式火鸟
  • db4o
  • VistaDb
  • SharpHSQL
  • Berkeley DB
  • Eloquera
  • SiaqoDb

并非所有这些都是免费的。对SQL/LINQ/进程内的支持各不相同。这个列表只是为了好奇。

现在也有Karvonite,但是代码库链接被破坏了。当它再次上线时,我将在WP7开发中研究它。

我推荐SQLite。我们在我工作的地方开发的几乎所有应用程序都使用它。

它小而紧凑。它确实需要一个DLL在应用程序目录中,但你不需要安装其他软件,如Access或SQL Server。此外,正如danielkza下面所说的,"SQLite是公共领域的,所以你完全不必担心许可问题。"这真的会有很大的不同。

您可以使用System.Data.SQLite或csharp-sqlite在c#应用程序中使用与SQL或OleDB相同的方法访问它。

您还需要一个应用程序来编辑/管理数据库。在我看来最好的是SQLite Studio。这里还有一些:
SQLite管理
SQLite 2009 Pro(页面底部)
更新- 11年7月25日-更多SQLite应用程序(这里有关于SO的问题)

关于SQLite的更多信息:
维基百科上的SQLite
使用SQLite的公司

自定义函数:另外,如果你在SQLite核心函数中找不到你喜欢的,你可以创建自己的自定义函数。下面是几个例子:
从SO
另一个例子

火鸟嵌入可以是一个不错的选择

嵌入式版本是服务器的一个惊人的变化。这是一个功能齐全的Firebird服务器打包在几个文件中。它非常。易于部署,因为不需要安装服务器。

有一些非常好的点网驱动程序

SQL Server Compact,如果您想使用microsoft官方解决方案。这样做的好处是,如果需要的话,可以在SQL server上使用复制功能。

SQLite如果你想要一些非常简单的小而免费的东西。这是android使用的内部数据库,所以它得到了很好的支持,并且有很好的。net绑定可用。

SQLite的一个明显优势是它是跨平台的。如果你想把你的应用移植到Mono。. NET,那么你就不需要对数据库实现做任何修改。

我不喜欢MS Access这个解决方案,但很多人都把它包含在他们的答案中。由于专有格式和平台依赖性,它受到限制。不过它也有它的优点。如果您有MS Access的副本,则可以轻松地操作数据,可以以图形方式构建查询并创建宏。您可以轻松地将其与MS Office的其他部分集成。

在所有这些中,我将推荐SQLite,因为它非常紧凑,文档很好,并且得到越来越多的开发人员的支持,无论使用什么平台。

编辑

我意识到还有一个选项是这里的每个人都忘记提到的

只要你不需要关系表,你可以使用通过ADO.NET读取的CSV文件作为数据集。(更多的是一个lulz的建议,但在某些情况下适用,并且不需要MS部署额外的库。

如果您正在使用。net 4.0.2或更高版本构建项目,并且需要嵌入式数据库支持,请考虑SQL Server Express LocalDB。

它是Express家族中相对较新的成员,具有更小的安装空间和更少的管理开销(与其他Express版本相比),但它保持了SQL Server的可编程性。也就是说,与Compact Edition不同,LocalDB不需要安装单独的ADO。. NET提供程序与SQL通信。

查看更多详细信息:

SQL Express v LocalDB v SQL Compact Edition (MSDN Blogs)
SQL LocalDB vs SQL Server CE (Stack Overflow)

http://en.wikipedia.org/wiki/NoSQL_(RDBMS怎么样?

特别是MongoDB for .Net

http://www.mongodb.org/display/DOCS/Home

你可以使用Sql Server Express Edition,因为它是免费的,同样强大,除非你想要mirroring等功能。看看这个。

我曾经成功地使用过db40。
基于文件,大型社区,简单易用。

http://www.db4o.com/

授权详情

自由通用公共许可证db40默认使用GPL许可。

如果您计划在内部使用db40或者您计划使用db40,那么GPL许可证是理想的作为自由软件开发和分发您自己的衍生作品

商用License需要使用商用License在商业非gpl产品中嵌入db40。商业持牌人收益获得高级服务和支持。

如果您不要求它是一个免费数据库,则没有提到的另一种选择是VistaDB。它都是托管代码,为嵌入式数据库提供了大量特性,并提供了相当好的性能。这是SQL CE和SQL Server Express之间的一个很好的桥梁,因为您的大多数VistaDB存储过程将在SQL Server Express中无需修改即可运行。在这一点上,我对客户服务也很满意。我一直在工作中使用它。没有服务要启动。一个空的DB大约是1MB, DLL也非常轻量级。ADO。NET提供程序之类的东西。我很喜欢它。

visastadb

SQL server精简版最佳,因为它是免费的,大小轻,集成良好

SQL server Express或MS Access

相关内容

  • 没有找到相关文章

最新更新