对于小型.NET应用程序,什么是数据库的良好选择?

时间:2011-07-19 15:16:33

标签: mongodb sqlite vistadb eloquera database

我正在使用.NET中的C#开发一个小应用程序,我希望有一个小的轻量级数据库,它不会占用太多资源。

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

11 个答案:

答案 0 :(得分:190)

2016年6月14日是的......仍然得到提升: - /


17/03/2014 我仍然接受这方面的投票,请注意最初回答的日期。尽管列出的主要三个项目仍然完全可行,但该列表将趋于变得陈旧。还有其他未列出的数据库技术。


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

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

http://sqlite.phxsoftware.com/

所有三个都使用SQL,但可能有一些限制/怪癖。 Management Studio适用于Compact和LocalDB,而使用SQLite则需要另一个UI工具,例如SQLite Administrator:

http://sqliteadmin.orbmu2k.de/

有NoSQL替代品,例如:

就个人而言,我会避免在面对其他免费选项时使用MS Access。 LocalDB,Compact或SQLite不会出错。它们都是可爱的小型数据库,在相对较快的RAM中运行 - 个人偏好关于喜欢微软产品的宗教方面我认为: - )

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

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

并非所有这些都是免费的。 SQL / LINQ / in-proc支持各有不同。此列表仅用于好奇心。

现在还有Karvonite,但代码库链接已损坏。当它再次存在时,我会研究这个用于WP7开发。

答案 1 :(得分:56)

我建议SQLite。我们几乎在我工作的所有应用程序中使用它。

它小巧紧凑。它确实需要DLL在app目录中,但您不必安装其他软件,如Access或SQL Server。另外,正如danielkza所述,“SQLite是公共领域,所以你不必担心许可。”这真的可以产生很大的不同。

您可以使用System.Data.SQLitecsharp-sqlite在C#应用中使用与SQL或OleDB相同的方法访问它。

您还需要一个应用程序来编辑/管理数据库。我认为最好的是SQLite Studio。这里有几个:
SQLite Admin
SQLite 2009 Pro (bottom of the page)
更新 - 2011年7月25日 - More SQLite apps (question here on SO)

关于SQLite的更多内容:
SQLite on Wikipedia
Companies that use SQLite

自定义功能: 另外,如果您正在查看SQLite Core Functions并且看不到自己喜欢的内容,则可以创建自己的自定义函数。以下是几个例子:
From SO {
{3}}

答案 2 :(得分:10)

Firebird embedded可能是一个不错的选择

  

嵌入式版本是服务器的一个惊人变体。它是一个   功能齐全的Firebird服务器只包含几个文件。这个很   易于部署,因为不需要安装服务器。

有一些非常好的dot net驱动程序

答案 3 :(得分:8)

SQL Server Compact如果要使用官方的Microsoft软件解决方案。如果您需要这样的东西,这具有能够与SQL服务器一起使用复制的优点。

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

SQLite的一个明显优势是它是跨平台的。因此,如果您想将应用程序移植到Mono.NET,那么您将无法对数据库实现进行任何修改。

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

所有这些SQLite都是我的推荐,因为它非常紧凑,文档齐全,并且得到越来越多的开发人员的支持,无论平台如何。

修改

我意识到还有另一种选择,这里的每个人都忘了提及

只要您不需要关系表,就可以通过ADO.NET将CSV文件读取为数据集。 (更多的lulz建议比其他任何东西,但在某些情况下适合,并且不需要额外的库进行MS部署。

答案 4 :(得分:8)

如果要使用.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博客)
SQL LocalDB vs SQL Server CE(堆栈溢出)

答案 5 :(得分:7)

答案 6 :(得分:4)

您可以使用Sql Server Express Edition作为免费版,除非您需要mirroring之类的功能,否则功能同样强大。请查看this

答案 7 :(得分:2)

我已经成功使用了db4o 基于文件,大型社区,简单易用。

http://www.db4o.com/

许可详情

  

免费通用公共许可证db4o默认使用GPL许可。

     

如果您打算在家中使用db4o或计划,GPL许可证是理想的选择   开发和分发您自己的衍生作品作为自由软件   在GPL下也是如此。

     

商业许可证如果您愿意,则需要商业许可证   将db4o嵌入到商业非GPL产品中。商业被许可人获益   获得优质服务和支持。

答案 8 :(得分:2)

如果您不要求它是免费数据库,则未提及的备选方案是VistaDB。它是所有托管代码,为嵌入式数据库提供了大量功能,并提供了相当不错的性能。 SQL CE和SQL Server Express之间的一个很好的桥梁,因为大多数VistaDB存储过程在SQL Server Express中无需修改即可运行。此时我对客户服务也非常满意。我一直在工作中使用它。没有服务可以开始。空数据库大约为1MB,DLL也非常轻量级。有ADO.NET提供商等等。我很喜欢它。

VistaDB

答案 9 :(得分:1)

SQL Server Compact Edition最好,因为它是免费的,并且大小很轻并且集成良好

答案 10 :(得分:0)

SQL Server Express或MS Access