繁体   English   中英

如何动态配置应用程序?

[英]How to dynamically configure an application?

当我说“配置”时,我的意思是保存那些可能经常更改的值(常量值,如税率或类似值),然后当您需要更改它们时,您不想重新编译您的应用程序。

在哪里保存这些值? 数据库? XML文件? 平面文件?

这取决于这些变化的频率以及改变它们的人或者是什么。 对于某些特定于应用程序的设置,最好使用XML或配置文件,开发人员负责更新它。 对于其他“商业”价值(如汇率,税率等),最好将它们保存在数据库中,并为用户(而非开发人员)提供更新的UI。

它还取决于有多少应用程序依赖于此值,例如,如果多个应用程序依赖于某些设置(例如电子邮件服务器地址),最好将其放在数据库中,因为它可以从任何机器上轻松访问应用正在运行。

我将INI文件用于潜在的用户可配置文件,将BIN文件用于在运行之间保存会话状态的数据。

但是,它非常依赖于您正在开发的应用程序类型。

这取决于您的应用程序是如何构建的。 您可以设计应用程序,以便更改配置的位置。 只需注入提供者。

通常,如果数据是结构化的,我使用Ini文件或XML。

对于已经使用数据库并且您不希望用户轻松更改数据的应用程序,您可以使用该数据库。

除非您想为用户模糊数据,否则我几乎从不使用二进制数据。

无论应用程序如何,您可能至少会拥有3个配置数据源:

  1. 命令行标志,通常用于引导运行时环境,例如,查找配置文件,设置调试标志,包括路径,类路径等
  2. 配置文件,可能不止一个可能互相覆盖的文件。 这些通常会引导您的应用程序:连接字符串,缓存设置,特定于构建的设置等
  3. 控制数据库中的数据。 时区,转换率,稳定显示值等等。此数据也应在数据库中进行版本控制(如“数据版本”字段,不在版本控制系统中)。 当您发现需要更改新版本的设置时,对它进行版本控制会省去很多麻烦,但如果您更改它,旧版本将会中断。

通常,在运行时更改的任何内容都应该放在数据库中。 任何敏感且很少改变的东西都应该进入配置文件,任何黑客攻击都应该在命令行上进行( - [no] enable-bug-287438-hack在你需要时非常方便)。

我更喜欢简单的ini文件。 这是一个您可能觉得有用的Setting示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM