【问题标题】:small database for saving limited number of settings用于保存有限数量设置的小型数据库
【发布时间】:2013-09-02 11:19:59
【问题描述】:

我正在用 asp.net c# 为客户设计一个网站,他希望无需修改源代码即可访问某些设置。例如,页面元关键字、一些短信和电子邮件文本以及一些数值。好吧,这些总是用代码编写的。但我不知道将它们保存在哪里,以便通过面板更改它们,同时保持速度和质量。

将它们保存在数据库中?它们有不同的数据类型;在 xml 文件中?我认为它会影响速度很大。你有什么建议?

【问题讨论】:

    标签: c# asp.net settings


    【解决方案1】:

    如果数据集小而扁平(例如非关系或分层),我会将数据放入您的 App_Data.xml 或 Web.config 文件中。关系数据库对于平面应用程序设置来说太麻烦了。然后,您可以在运行时仅使用 .NET 附带的 Xml 库编辑 App_Data 文件。

    【讨论】:

    • 客户想要从管理面板编辑设置。 xml文件速度不会给我带来麻烦吗?
    • 如果是存储在 xml 中的数以万计的选项是的。如果是比较小的数字,xml就可以了。
    • @AshkanMobayenKhiabani 如果您在启动时将 xml 文件的内容保存在内存中,则不会。然后每当有人想要编辑文件时,更新您的内存状态,然后将其写入文件。无论如何,xml I/O 非常快——即使没有缓存——除非您正在谈论成百上千的用户更新此页面。线程安全的开销可能是最慢的部分。
    【解决方案2】:

    一种可能的数据库解决方案是将ServiceStack.OrmLite 与 SQLite 数据库一起使用。您的设置文件将是 POCO。查询/更新发生在一行中。

    另一种解决方案是使用 LINQ2XML - 不时写入和读取小文件的开销是微不足道的。

    【讨论】:

    • 我并不完全不同意,但是....里面的“ORM”这个词一点都不简单。
    【解决方案3】:

    我们通常在 Web.config 的appSettings 中保留一些小的设置。我不确定它是否与您的问题有关。

    <?xml version="1.0"?>
    <configuration>
      <appSettings>
        <add key="mysetting" value="abcd"/>
        <add key="anothersetting" value="cdef"/>
      </appSettings>
    </configuration>
    

    【讨论】:

    • 如何以编程方式授予用户访问权限以从面板更改设置?打开和关闭 web.config 进行编写不会有问题吗?
    • 在运行时从代码中更改 web.config 中的设置是不正常的。但是,您可以使用另一种使用 app.Config 的方法 - Read/Write App.Config File with .NET 2.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2019-11-08
    相关资源
    最近更新 更多