asp.net - 存储站点配置数据的最佳方式是什么?

标签 asp.net configuration oop

我有一个关于存储站点配置数据的问题。

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

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

最近,我的任务是开发一些站点的子集,以生成 PDF 文档以供打印。我决定采用不同的方法来定义配置,而不是将配置数据存储在数据库中,我编写了 XML 文件来包含数据。我发现它更容易使用,因为我没有读取与其他无意义数据行相关的无意义数据行,而是有有意义的文档,其中包含语义、可读信息以及由视觉上可理解的元素嵌套定义的关系。

因此,现在有了这两种存储站点配置数据的方法,我想就处理这两种方法的问题征求更有经验的人的意见。存储站点配置数据的最佳方式是什么?有没有比我在这里概述的两种方法更好的方法?

注: StackOverflow 告诉我这个问题似乎是主观的,可能会被关闭。我不想主观。我想知道下次如何最好地解决这个问题,以及是否有这方面的行业经验的人可以提供一些意见。

最佳答案

如果每个客户端的特定配置需要信息,最好在数据库中完成,并为其编写管理工具,以便非技术人员也可以管理它。当您需要对其进行版本控制/历史记录时,这种方式也更容易。 XML 在这方面并不总是最好的。最后,XML 也更难维护(对于非技术人员)。

您是每次从磁盘读取 XML(性能下降)还是将其缓存在内存中?无论您选择哪种解决方案,缓存最终都会对性能产生很大的影响。

格兹,克里斯。

关于asp.net - 存储站点配置数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068281/

相关文章:

swift - 如何在类层次结构中应用 Swift 泛型/协议(protocol)?

java - 假而不是真(@gmail.com)

java - 抽象数据与抽象行为

asp.net - DbContextOptionsBuilder 不包含 'UseSqlite' 的定义

asp.net - 使用数据源在 ASP.NET 中绘制折线图

c# - 使用具有复杂类型的设置

configuration - ./etc 文件夹路径上的 redis 文件被删除

c# - 无法使用 ASP.NET 标识登录,值不能为 null。参数名称 : manager

.net - 使用 .NET 3.5 缩放和提供图像

plugins - 覆盖给定执行 ID 的 Maven 插件目标定义