我正在帮助创建一个MVC 5 Web应用程序。它的模型是通过Web API提供的。目前,Web API的端点硬编码到我们的控制器中:
public HomeController() {
string baseUrl = "http://webApi.example/api/";
string endpoint1 = "endpoint1/{0}";
}
显然这不是最好的方法。但是,我并不完全确定我们应该把它们放在哪里。其中一个挑战是应用程序必须通过的不同环境。通过生产方式。例如,它必须按原样“工作”。 (在最小配置下)在开发环境中,QA,并最终生产。
我们考虑了一些方法,例如使用Web.config
文件。但这意味着我们必须在每个环境中编辑它......如果有30个开发环境会怎么样?还是300?我们还考虑过使用特殊密钥从Windows注册表中读取内容。这可以很容易地移植到所有环境,并提供一个通用的'溶液
然而,从注册表中读取似乎是个坏主意(没有证据告诉我它是或不是)。
那么,可以使用哪种架构师,策略或方法来创建有效的配置解决方案?
答案 0 :(得分:0)
我多年来一直在使用Web.config进行开发,测试和生产。
您当然可以将设置存储在注册表中,尽管Web.config会更容易(编辑注册表似乎更麻烦)。使用注册表的一个好处是在敏感信息(例如服务帐户密码)的情况下。这将允许基础结构团队或服务器管理员保持密码(注册表键值)的秘密,同时让开发人员自由地部署Web.config更改。在你的情况下,它只是一个简单的URL,所以谁在乎?
无论哪种方式,您都将存储相同数量的值(您有30个不同的Web.config文件,或者您有30个不同的注册表项)。但是,如果你达到了30个不同的环境,那么你可能不会手动滚动这些配置条目。您可能正在实现持续集成和部署的规模,实际上由软件驱动,其中值将基于部署设置而动态。