我一直在开发一个Windows应用商店应用,我必须为我的应用支持多个配置参数。其中一个参数是应用正在与之交谈的网址。
例如开发环境,测试,验收和最终生产。
我目前正在考虑的事情之一是以最少的努力支持所有这些环境的最有效方式。因为没有某种配置文件我们可以更改以更新这些参数,我提出了一些想法。我很好奇我可能没见过的其他选择。
以下是我提出的事项:
1
向应用添加多个配置,而不是在代码中使用它们来获取正确的参数,如下所示:
private string webserviceUrl;
#if DEV
webserviceUrl = "devUrl";
#elif TEST
webserviceUrl = "testUrl";
#endif
2
使用第1种方法可以提供更多选项,例如包含配置的配置xml文件,或者在应用程序第一次运行时从Web服务获取配置设置。
第3
使用分支/合并策略并更新分支中的配置文件。优点是代码是干净的,只包含它为其创建的构建所需的设置。包可以由构建服务器构建。缺点是你需要分支/合并很多。
最后一个选项感觉就像是最“干净”的解决方案。我错过了任何选项,或者您是否有使用这些方法的经验?你更喜欢什么?
答案 0 :(得分:0)
我认为假设商店中的应用程序始终指向生产。
但是,我说,我面临同样的问题,因为我们将应用程序加载到我们控制的设备上,而根本不使用Windows应用商店。
要回答你的问题,我更喜欢选项1 选项2和xml / json配置文件似乎是最好的选择 webservice选项可能不会起作用。您使用什么Web服务URL?如果你想要一些指向不同环境的实例,它将如何工作,因为它们都将从同一个URL获取配置。
您可能需要考虑的其他选项是设置超级按钮菜单中的选项。例如,为环境使用单选按钮,并允许用户配置他们想要定位的环境。
问题是将其锁定在最终用户的生产中,以便它不再可以修改。也许一次" PROD"选择了收音机,然后隐藏所有单选按钮。
如果您通过侧面加载部署应用程序,则可能会在安装过程中配置这些设置。
我也有兴趣听取其他意见。这也是一个老问题,所以我想知道你决定采用什么解决方案。