对于CMS产品/平台,编辑和存储设置的可维护性和清晰度是什么?
我不是在谈论技术(connstring,nh config,...)设置,而是改变产品行为的设置:
这些设置例如是
此时我们并没有真正的方法,因此结果是所有设置都以web.config结束。
这可能不是最好的方法,因为这只是一个无数的模糊键值对的结尾......
在这种情况下,我们也无法真正预测到类型(没有codegen),因此复选框或预定义选项的设置很难管理。
另一个选择是为每个设置(类型)创建所需的表,并将其用作核心设置系统,但这对每个客户来说将更难部署和管理。
我对这个问题有很多半答案但不是真正的自上而下的解决方案......
我的意思是自上而下:
目前为止的选择:
但这些都是关键价值方法......还有其他建议吗?
答案 0 :(得分:1)
您可以编写一个custom configuration section,它允许您在配置文件中存储比键/值设置更多的内容。这就是说配置文件是为只读设置而设计的。如果您需要使用管理屏幕编辑功能,那么最好使用数据库。将此信息存储在文件中也是可能的,但由于这是一个多线程应用程序,因此您需要正确地同步对这些文件的访问,这很快就会变得很麻烦。
答案 1 :(得分:0)
基本上你可以创建设置表。包括名称和值字段。你可以存储设置。
public class Setting : Entity
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
表格中会有很多行设置。此结构基本上是键值对使用。但!我的建议使用下面的结构。
public class Setting : Entity
{
public int Id { get; set; }
public string SiteName { get; set; }
public string ProductsPerPage { get; set; }
...
}
因为缓存很容易。您可以获取所有设置表并只缓存它。轻松缓存,不再需要查询。