【问题标题】:Which database to use locally in a desktop application?在桌面应用程序中本地使用哪个数据库?
【发布时间】:2010-08-11 04:56:10
【问题描述】:

我在桌面应用程序中使用数据库有两种不同的选择。我更喜欢基于服务的数据库,甚至在本地也是如此。但是我应该改用本地数据库吗?

【问题讨论】:

  • 取决于您可以使用的数据库系统。 SQL Server 或 SQL Server CE。
  • 我有 Visual Studio 2010 pro 和 MS SQL Server 2008。

标签: c# .net database visual-studio


【解决方案1】:

.Net / VS 环境中最好的集成是正确的 MS SQL Compact:

http://en.wikipedia.org/wiki/SQL_Server_Compact

但也有类似的选择:

http://en.wikipedia.org/wiki/SQLite

Is there a .NET/C# wrapper for SQLite?

【讨论】:

  • 我熟悉的适用于 Android 和 Python 的 SQLite,但我不知道也有适用于 .NET 的 SQLite。感谢您的注意! BR -
【解决方案2】:

取决于进一步的要求。

基于服务器:MS-SQL Express。本质上与较大版本的引擎相同,当您需要更大时,这将很好地扩展。请注意,有一种附加文件模式,这意味着您不需要向服务器永久注册每个数据库。

本地:SQL Compact Editon,基于文件的嵌入式解决方案。更容易部署,但不是 100% 向上兼容。基本上是一个单用户解决方案(但随着 v4 的变化)

【讨论】:

  • 感谢您清除此问题。我期待这样的事情,但从来没有真正知道不同数据库的优缺点。 BR -
【解决方案3】:

通常取决于它的部署位置。如果您将其部署在您控制的环境中,我通常会使用基于服务的环境,但如果您需要将其发送给客户端,则取决于客户端。有技术人员的客户可能会希望基于服务,但如果是一个没有技术人员/知识的小客户只想点击运行,那么本地数据库可能是最好的。

【讨论】:

  • 这很重要。有时,人们想将应用程序发送给仅展示功能的非技术客户。您对答案的态度使我得到了我没有的见解! BR -
【解决方案4】:

对于桌面应用程序,您应该考虑使用带有 C# 包装库 here 的 Sqlite,我一直在项目中使用它,它运行良好、易于使用、速度快,并且所有内容都放在一个文件中。

虽然它不是为多用户环境设计的,所以你不会想将它用作例如 Web 服务后端的数据库。

我还使用 NHibernate 和 NHibernate.Linq 与数据进行交互,您可以在此处获得两者兼容的构建:http://www.dennisdoomen.net/2009/07/nhibernate-210-ga-with-linq-and-fluent.html

【讨论】:

  • 我熟悉 Android 和 Python 环境中的 sqlite,但不知道它也适用于 .NET。谢谢你让我明白这一点。 BR -
  • 我也在我的 c# windows 应用程序中使用 SQLITE db,它工作正常。
【解决方案5】:

你一定要看看Firebird

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多