C# 用于保存有限数量设置的小型数据库

C# 用于保存有限数量设置的小型数据库,c#,asp.net,settings,C#,Asp.net,Settings,我正在用asp.net c#为一位客户设计一个网站,他希望在不修改源代码的情况下访问一些设置。例如,页面元关键字、一些sms和电子邮件文本以及一些数值。嗯,这些都是用代码编写的。但我不知道在保持速度和质量的同时,在哪里保存它们,使它们可以通过面板进行更改 是否将它们保存在数据库中?它们有不同的数据类型;在xml文件中?我认为这会对速度产生很大影响。你有什么建议 如果数据集较小且平坦(例如,非关系或分层),我会将数据放入App_data.xml或Web.config文件中。关系数据库对于平面应用程

我正在用asp.net c#为一位客户设计一个网站,他希望在不修改源代码的情况下访问一些设置。例如,页面元关键字、一些sms和电子邮件文本以及一些数值。嗯,这些都是用代码编写的。但我不知道在保持速度和质量的同时,在哪里保存它们,使它们可以通过面板进行更改


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

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

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


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

我们通常在Web.config中保留小的设置。我不确定这是否与你的问题有关

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


客户希望从管理面板编辑设置。xml文件的速度会不会给我带来麻烦?如果它是用xml存储的成千上万个选项,是的。如果它是一个相对较小的数字,xml就可以了。@AshkanMobayenKhiabani如果您在启动时将xml文件的内容保存在内存中,则不会。然后,每当有人想要编辑文件时,更新内存中的状态,然后将其写入文件。无论如何,xml I/O速度非常快——即使没有缓存——除非您谈论的是成百上千的用户更新此页面。线程安全的开销可能是最慢的部分。我不是完全不同意,但是。。。。里面并没有“ORM”这个词是很简单的。我如何通过编程让用户可以从面板更改设置?打开和关闭web.config进行编写不是一个问题吗?在运行时从代码更改web.config中的设置是不正常的。但是,您可以使用另一种使用app.Config的方法-