Language agnostic 如何动态配置应用程序?
当我说“configure”时,我的意思是在哪里保存那些经常更改的值(常量值,如税率或类似值),然后当您需要更改它们时,您不想重新编译应用程序Language agnostic 如何动态配置应用程序?,language-agnostic,configuration,Language Agnostic,Configuration,当我说“configure”时,我的意思是在哪里保存那些经常更改的值(常量值,如税率或类似值),然后当您需要更改它们时,您不想重新编译应用程序 在哪里保存这些值?数据库XML文件?平面文件?我将INI文件用于潜在的用户可配置文件,将BIN文件用于在运行之间保存会话状态的数据 但是,这完全取决于您开发的应用程序的类型。这取决于您的应用程序的体系结构。你可以这样设计你的应用,你可以改变你的位置配置。只需注入提供者即可。这取决于这些更改的频率以及更改者或更改内容。对于某些特定于应用程序的设置,最好使用
在哪里保存这些值?数据库XML文件?平面文件?我将INI文件用于潜在的用户可配置文件,将BIN文件用于在运行之间保存会话状态的数据
但是,这完全取决于您开发的应用程序的类型。这取决于您的应用程序的体系结构。你可以这样设计你的应用,你可以改变你的位置配置。只需注入提供者即可。这取决于这些更改的频率以及更改者或更改内容。对于某些特定于应用程序的设置,最好使用XML或配置文件,由开发人员负责更新。对于其他“业务”值(如汇率、税率等),最好将它们保存在数据库中,并为用户(而不是开发人员)提供一个更新的UI
它还取决于有多少应用程序依赖于此值,例如,如果有几个应用程序依赖于某个设置(如电子邮件服务器地址),最好将其放入数据库中,因为它可以从运行应用程序的任何机器上轻松访问。通常,如果数据是结构化的,我会使用Ini文件或XML 对于已经使用数据库且不希望用户轻松更改数据的应用程序,可以使用数据库
我几乎从不使用二进制数据,除非您想为用户混淆数据。无论应用程序如何,您可能至少会有3个配置数据源:
通常,在运行时更改的任何内容都应该放在数据库中。任何敏感且很少更改的内容都应该进入配置文件,任何黑客攻击都应该进入命令行(-[no]enable-bug-287438-hack在需要时非常方便)。我更喜欢简单的
ini
文件。下面是一个您可能会发现有用的示例。您是对的。问题是,当要修改UI的系统庞大且具有任何结构设计时,您可能会希望将这些设置保留在数据库中。我不希望这样,但我认为这是一个必要的缺点