今天上午我获得消息:Windows Azure Tools for Visual Studio 2010——2011年8月升级版被发布了。它的版本号是1.4.40727.1601,是Windows Azure SDK v1.4.20407.2049的升级版。这个升级版本拥有一些非常好的特性,这些特性让我向往已久,它们是:
- 分析Windows Azure里运行的应用程序
- 新的ASP.NET MVC 3 web角色模板
- 云项目的多配置文件
- 更多的服务包和部署阶段验证
下载和安装
若要安装Windows Azure Tools for VS2010八月升级版,您需要访问这里,这里使用web平台安装程序来下载和安装。目前还没有独立的程序包可以使用。此外,WebPI还将下载一些从属包,例如最新的Windows Azure SDK、ASP.NET MVC 3 for Windows Azure等等。
在安装这个包之后,当新建一个云项目时,我们发现ASP.NET MVC 3 Web角色模板可以使用。
在解决方案资源管理器里,我们可以看见在新的Razor视图引擎和HTML5里已经创建了ASP.NET项目。并且添加了所有与MVC3相关的程序集并默认设置Copy Local = True。
我们只用按F5在本地模拟器运行应用程序。
多层次服务配置
在云项目下我们发现两个服务配置文件(CSCFG),它们是:
- ServiceConfiguration.Cloud.cscfg
- ServiceConfiguration.Local.cscfg
这是这次升级的另一个优良特性。作为一名开发人员,通常我们需要在开发和部署之间使用不同的设置。例如,在本地模拟器开发时,我使用本地存储模拟器,SQL Azure 和4个实例。这意味着我每次都需要调整部署到云计算的服务配置。如果我们有例如开发、本地测试和云等更多不同的环境,这可能会更复杂。
多层次服务配置特性可以使工作更简单。随着启用两个配置文件,当在本地调试、打包和部署时,我们可以选择让哪一个成为服务配置文件。这意味着我们可以在本地和云环境之间的不同文件中设置不同的值。
在服务设置窗口,找到“服务配置”部分,在这里我们将选择哪一个CSCFG将会被编辑。如果需要编辑服务定义文件(CSDEF) 只需选择“All Configuration”
假设我们一开始选择All Configurations并导航到Settings选项卡,添加连接字符串来连接到应用程序使用的存储地点。
然后在Service Configuration下选择Local选项,在本地开发和调试时我们将使用存储模拟器。
接下来,选择Cloud并当部署到云环境时指定存储账户信息。
当我们打开两个CSCFG文件,我们将看到在相关文件里设置已经及时更新。
如果我们需要更多的服务配置文件,只需在Service Configuration 下拉菜单里选择Manage选项并从现有的文件中创建一个副本。例如,添加一个名为TestServer的新配置文件,当部署到本地测试服务器时将会使用它。在解决方案资源管理器中也创建了一个新的CSCFG文件。
在Visual Studio中调试时我们可以选择使用哪一个配置文件。只需右击云项目并打开其属性窗口。在开发选项卡中我们可以选择应该使用哪个配置。
新的打包和发布窗口
在以前版本的工具包中我们通过选择发布窗口的radio按钮来打包和发布我们的Windows Azure 项目。在Windows Azure项目的快捷菜单中我们可以使用Package菜单项来创建一个包,使用Publish菜单项来将应用程序直接部署到云。
在打包窗口中,将会弹出一个文本框让我们选择使用哪一个服务配置、使用哪一个编译配置和是否启用远程桌面。
在发布窗口中,与上述类似,我们需要选择一个适当的管理体系认证、托管服务、存储服务和服务配置,还有编译配置。如果我们使用的是.NET 4.0 和VS2010 Ultimate,我们可以启用IntelliTrace和分析功能,这是这个升级版的新特征。
更多验证
开发机之间的不同环境和云计算实例首次部署带来了更多工作。我们需要核实哪些引用应当设置Copy Local = True以及哪些配置应当改变。另外,介绍给你们一个网站,它将帮助你们在这个帖子中如何进行验证。但是现在Windows Azure 工具帮我们完成了项目验证。
我们刚刚发布ASP.NET MVC3 web 角色到云,我们可以看到错误信息列表窗口中有一条警告信息:使用本地数据库部署到云之后可能引起问题。
不仅验证数据库连接字符串,如果我们增加了.NET Framework包之外的一些引用,将引起一个错误,指引我们设置Local = True。
由ASP.NET Universal Providers驱动
在将ASP.NET MVC 3应用程序部署到云之后,我们可以打开网站,但又出现了一个异常。
这是因为ASP.NET MVC 3应用程序利用ASP.NET Universal Providers,并在ASP.NET Universal Providers里将默认Session状态提供程序作为ASP.NETSession状态提供程序,这意味着利用SQL Server来存储Session。
为了解决这个问题,我们可以在web.config中指定一个合适的SQL Azure连接字符串,或者如果不需要scaling-out我们可以只使用InProcSession提供程序。
ASP.NET Universal Providers扩充了支持 SQL Compact Edition 和 SQL Azure 的Session、Membership、Roles 和 Profile,这意味着作为开发人员,我们可以实现业务逻辑,不管我们使用的是哪一种后端数据库。欲了解更多该产品的相关信息,请查看Scott的博客文章。
修复这个问题之后,我们可以看到ASP.NET MVC 3应用程序在Windows Azure上运行。
总结
这个团队通过倾听开发人员的心声不断改进Windows Azure平台工具箱,使在Windows Azure的工作更加方便和简单。这次Visual Studio Tool的升级带来的特性变化并不大,但是都对我们十分有用,例如多配置和ASP.NET MVC 3 web角色。我个人强烈建议大家升级到这个版本。
希望这会有所帮助。