2010-06-18 142 views
4

我有一个关于存储站点配置数据的问题。什么是存储站点配置数据的最佳方式?

我们有一个Web应用程序的平台。这个想法是,不同的客户可以将自己的数据托管并显示在位于该平台之上的自己的站点上。每个网站都有一个配置,用于确定哪些面板与客户端相关。

该系统最初设计用于保存数据库中每个站点的所有配置数据。加载站点时,所有配置数据都将加载到SiteConfiguration对象中,并且客户端面板将根据此对象的内容生成。这是有效的,但是我发现要应用更改请求或添加新站点非常困难,因为有太多数据需要筛选,难以维护其配置的网站的心智模型。

最近我一直在负责开发的一些网站的子集被作为打印PDF文档生成。我决定采用不同的方法来定义配置,而不是将配置数据存储在数据库中,我编写了XML文件来包含数据。我发现处理起来要容易得多,因为我没有阅读与其他无意义数据行有关的无意义数据行,而是使用语义可读信息和可视化可理解元素嵌套定义的关系来获得有意义的文档。

所以,现在这些2种的方法来存储站点配置数据,我想获得的人在处理这个问题上处理这两种方法较有经验的意见。存储站点配置数据的最佳方式是什么?有没有比我在这里概述的两种方式更好的方法?

说明: StackOverflow告诉我这个问题似乎是主观的,很可能会被关闭。我并不想成为主观的人。我想知道下次如何最好地处理这个问题,并且如果有行业经验的人可以提供一些意见。

+0

fyi - Stack Overflow会告诉你这个问题似乎是主观的,因为它在标题中包含单词“best”...并且你在征求意见,这是主观imho的定义 – Jon 2010-06-18 08:55:53

+0

“最好的方式“主要是根据定义来定义一个问题,其中存在太多具体情况和有影响力的变量。 – 2010-06-18 08:56:36

+1

通过配置您的意思是内容和网站结构?将这些数据放入表格没有任何问题。只要你有一个(用户)界面来完成维护(子)站点所需的任务。使用Management Studio不是做这件事的方法。 – 2010-06-18 08:58:50

回答

0

是否需要针对每个客户端的具体配置是可能是最好的数据库为其编写使非技术人员也可以管理它的管理工具完成的信息。当你需要版本/历史时,它也更容易。 XML并不总是最好的部分。另外,XML最终难以维护(对于非技术人员)。

您是否每次从磁盘读取XML(性能命中)还是将它保存在内存中?无论您选择哪种解决方案,高速缓存对性能都有很大影响。

Grz,Kris。

+0

我目前每次都从磁盘读取xml,但如果需要的话,很容易将数据存储在缓存中。系统的这个子集只能周期性地运行,所以目前磁盘性能并不是真正的问题 – DaveDev 2010-06-18 09:00:22

0

您使用ASP.NET这样有什么错的web.config您的基本设置(如果它的每个项目的部署),然后根据你所说的,任何东西更复杂的自定义XML或数据库配置设置(或者,如果你有多个用户/客户使用相同的项目部署)?

我只使用自定义XML文档的东西,像“网站布局的文档”里的东西会不会经常变动,因此你将有很多半无意义的数据(如23553123)的。无论如何,布局应该尽可能地用css来处理。

+0

每个文件都是〜20kb,因此将其存储在web.config中并不实际。我看到你在说什么 – DaveDev 2010-06-18 09:04:03

0

对于我们的团队XML是一个不错的选择(的app.config或web.config文件或自定义配置文件,这取决于),但有时它是更好的设计时的配置API,使代码的配置。例如modern IoC containers具有fluent interfaces的代码内配置API。如果您需要配置许多类似于其他实体或希望实现良好的人类可读性,此方法可以带来益处。但是,如果非程序员需要进行配置,这不起作用。

相关问题