根据MSDN文档,MicrosoftAzure移动服务是一个旨在简化使用Azure创建功能强大的移动应用的服务。它整合了一系列Azure服务,为应用提供了后端能力。Azure移动服务为应用提供了以下后端功能:
通过这种方式,Azure移动服务将增加移动应用的开发效率,并且它支持主要的移动平台是一个优势。
在某些情况下,当为应用提供新特性时,可能需要不同的环境,因为每个版本都可能改变或破坏Azure移动服务的后端版本,因此测试并保持生产运行是很重要的。Azure移动服务允许在本地主机上测试服务,但不提供创建不同环境的方法。为了创建不同环境,需要为每个环境创建一个Azure移动服务,然后为每个环境创建配置。
在Azure门户中,创建两个.NET后端的Azure移动服务,分别命名为:
在Azure门户中,结果将是:
可以使用相同的数据库,但需要使用不同的架构。如果提供了不同的数据库,更容易管理每个环境(更新或甚至删除)。使用Entity Framework迁移的后端将从头开始重新创建服务,并且可以随时删除、部署和重新创建。
在Visual Studio中,选择解决方案并打开上下文菜单,然后点击配置管理器,然后创建新配置。在这种情况下,基于Debug配置定义了Dev配置,而Prod配置应使用Release配置。
此时,可以定义Debug、Dev、Prod和Release配置。对于每个配置,可以定义条件编译。例如,在Dev中可以有:
#if Dev
// 例如,可以填充数据库的假数据
#else
// 在其他非Dev环境中
#endif
要利用这些配置的优势,请使用Web.Config添加配置转换,如下所示:
结果将是:
现在可以:
每次部署时,将使用相应的配置。
选择项目并使用上下文菜单点击发布,然后使用Azure帐户连接到Azure移动服务,并选择MyAMSDev。在设置中,设置配置和文件发布选项,然后发布。
对Prod执行相同的过程,然后发布。可以看到Web发布活动显示发布过程。
此时,两个环境都已部署并运行,不需要定义或更改每个环境,只需要确保在部署前设置好每个环境。
在这种情况下,使用了MS_TableConnectionString1名称来定义连接字符串,Azure门户中定义的默认值MS_TableConnectionString将被忽略。
开发者可以设置不同的连接字符串,甚至更改名称,但需要在所有环境中使用相同的名称。