【问题标题】:Use ini/appconfig file or sql server file to store user config?使用 ini/appconfig 文件或 sql server 文件来存储用户配置?
【发布时间】:2010-05-16 04:48:40
【问题描述】:

我知道 INI 或 appconfig XML 的偏好在于它们的可读性。

假设为我的应用程序存储的用户首选项是分层的,大约有一千个项目,如果用户编辑 INI 来更改内容,这真的会让人感到困惑。

我一直在使用 INI 和 appconfig 的组合。

我现在倾向于使用 sql server db 文件。每次用户在使用应用程序时更改首选项时,它都会存储到 db 文件中——这是我的想法。我还认为这样的配置数据库文件也可以随应用程序一起移动,就像 INI 一样。

在我这样做之前,任何建议
1. 如果在 INI 或 appconfig 上使用 db 文件有任何缺点。
2. 如果一个商店使用mysql或oracle,你认为你的同事会扬起他们亲mysql或亲oracle的眉毛,质疑为什么你会在mysql或oracle商店使用sql server技术?我的意思是,我只是像 INI 文件或 app.config 一样使用它,对吧?

其他信息
我希望阅读我的问题的人理解我使用的不是“企业数据库”,而是与应用程序一起存储的“preferences.mdf”。我希望使用 ado.net 将用户配置项存储为实体。

【问题讨论】:

    标签: c# sql-server app-config


    【解决方案1】:

    这实际上取决于您的应用程序的架构。

    例如,如果您正在创建一个网络应用程序,那么您需要将用户设置存储在数据库中,因为无论如何整个用户/角色系统都将存储在数据库中。

    如果它只是在单个机器上使用的简单桌面应用程序,软件副本之间没有交互,那么您可以使用 XML 文件来存储设置 - 使用数据库可能有点过头了,特别是如果您不使用用于其他任何事物的数据库。

    当然,这两种方法各有利弊。如果您使用数据库,这意味着部署中涉及更多设置步骤(同样,取决于您的架构),而使用简单的配置文件更轻量级并且可以轻松移动。

    需要注意的一点:如果你走数据库路线,你将需要使用配置文件无论如何来存储连接数据库所需的信息。

    【讨论】:

      【解决方案2】:

      我经常将用户偏好存储在一个集中的数据库中,因为这意味着用户的设置可以在 PC 之间“漫游”。

      另一个优点是正在备份用户首选项。

      【讨论】:

        【解决方案3】:

        我的一般方法是将用户配置条目放入数据库(在我们的例子中是集中式的,但同样适用于本地存储)。

        但是,也有例外,我将以下内容存储在基于文本的文件中(通常是 app.config):

        1. 如何连接到数据库的详细信息(我更喜欢在配置文件中包含此内容,而不是使用约定)。
        2. 可能会阻止应用程序正确启动的任何设置。

        如果存在可能“破坏”启动的设置,用户应该能够在不使用软件的情况下访问它们——最好是基于文本的存储。

        在代码中,我编写了一个配置类,它“知道”配置条目是存储在文本文件中还是存储在数据库中;这允许我将配置从一个移动到另一个,而不会破坏对它的所有引用。

        赫比

        【讨论】:

          猜你喜欢
          • 2016-04-09
          • 1970-01-01
          • 2014-02-26
          • 1970-01-01
          • 2011-08-06
          • 2012-01-13
          • 2019-09-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多