我对存储网站配置数据有疑问。
我们有一个Web应用程序平台。我们的想法是,不同的客户可以将自己的数据托管并显示在自己的网站上,该网站位于此平台的顶部。每个站点都有一个配置,用于确定哪些与客户端相关的面板显示在哪些页面上。
系统最初设计用于保存数据库中每个站点的所有配置数据。加载站点时,所有配置数据都将加载到SiteConfiguration对象中,并根据此对象的内容生成客户端面板。这是有效的,但我发现很难处理应用更改请求或添加新站点,因为有太多的数据需要筛选,很难维护站点和其配置的心理模型。
最近,我的任务是开发一些要作为PDF文档生成的网站的子集用于打印。我决定采用不同的方法来定义配置,而不是将配置数据存储在数据库中,我编写了XML文件来包含数据。我发现它更容易使用,因为我没有阅读与其他无意义的数据行相关的无意义的数据行,而是使用具有语义,可读信息的有意义的文档,其中关系由可视化可理解的元素嵌套定义。
所以现在有了这两种存储站点配置数据的方法,我想得到一些人在处理这两种方法时更有经验处理这个问题的意见。存储站点配置数据的最佳方法是什么?有没有比我在这里概述的两种方式更好的方法?
注意: StackOverflow告诉我这个问题似乎是主观的,可能会被关闭。我不是想要主观。我想知道下次如何最好地解决这个问题,如果有行业经验的人可以提供一些意见。
答案 0 :(得分:0)
如果每个客户特定配置需要信息,则最好在数据库中使用为其编写的管理工具来完成,以便非技术人员也可以管理它。当你需要版本控制/历史记录时,它也更容易。在这方面,XML并不总是最好的。此外,XML最难维护(对于非技术人员)。
您是否每次从磁盘读取XML(性能命中)或者是否将其缓存在内存中?无论您选择何种解决方案,缓存都会在性能方面产生重大影响。
Grz,Kris。
答案 1 :(得分:0)
您正在使用ASP.NET,因此对于您的基本设置(如果是每个项目部署),web.config有什么问题,那么正如您所说,自定义XML或数据库配置设置更复杂(或者如果您有多个用户/客户有相同的项目部署?)
我只会将自定义XML文档用于类似“网站布局文档”的内容,其中事情不会经常发生变化,并且您将拥有大量半无意义的数据(例如23553123)。无论如何,布局应尽可能由css处理。
答案 2 :(得分:0)
对于我们的团队,XML是一个不错的选择(app.config或web.config或自定义配置文件,它取决于),但有时最好设计配置API以在代码中进行配置。例如,modern IoC containers具有fluent interfaces的代码内配置API。如果您需要配置许多类似于彼此的实体或想要获得良好的人类可读性,这种方法可以带来好处。但是,如果非程序员需要进行配置,这不起作用。