使用Windows Azure Web Sites构建托管的WEB应用
Windows Azure Web Sites (WAWS) 是在Windows Azure 平台即服务 (PaaS) 框架基础上构建的服务,该框架简化了与托管云应用程序相关的部署、管理和可扩展性任务。
本文中使用 SQL Server 作为数据存储创建简单实用的 ASP.NET MVC 4 应用程序,通过示例理解WAWS 服务的基本元素。 这个简单的应用程序将支持创建、读取、更新和删除 (CRUD) 操作。
配置 WAWS 并生成 ASP.NET MVC 4 应用程序后,我们将使用 Visual Studio 2012将应用部署至云端。
创建MVC项目
以管理员身份打开 Visual Studio 2012 并单击"文件"|"新建"|"项目"。 从"已安装的模板"选择"Web",然后选择"ASP.NET MVC 4 Web Application"。 命名项目名称为 MVCAzure.Website,接着您需要选择项目模板为"Internet 应用程序", 视图引擎是 Razor。
图
创建ASP.NET MVC 4 Web 应用程序
在 Visual Studio 解决方案资源管理器中在 Models 文件夹下添加数据类模块,如图所示。在类模块中定义的属性将成为 SQL Database 表结构,本例中Entity Framework简化对象-关系映射。Entity Framework可实现执行 CRUD 操作而无需编写复杂的 SQL 语句。
图 将类添加到 Models 文件夹
在解决方案资源管理器中选择 Models 文件夹,从"Project"菜单中选择"Add Class…"。将该类命名为 Person。 Person 类将成为 SQL Server 中 Person 表的列。
public class Person
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
ASP.NET MVC 4 应用程序需要controller类来作为视图和模型之间的桥梁。
在添加Controller类之前,先编译Project。从"Build"菜单选择"Build Solution"。在解决方案资源管理器中,您可以右键单击 Controllers 文件夹,然后选择"Add | Controller"。如下图所示的"Add Controller"对话框,您按如下步骤设置:
- 在"Template"下拉列表中,选择"MVC controller with read/write actions and views, using Entity Framework"选项。
- 在"Model class"下拉列表中,选择"Person"类。
- 在"Data context class"列表中,选择<New data context...>。在显示的对话框中,将名称设置为 PersonContext,然后单击"OK"。
- 在"Views"下拉列表中,确认选择"Razor"。
- 单击"Add"以完成此过程。
图 添加 MVC Controller类
云端部署
创建WEB SITES服务
您可以使用连续传递框架(如 Git 或 TFS)或简单工具(如 FTP )来部署网站。 在本文中,我们将使用 Visual Studio 中的Web 部署。
登录Windows Azure管理门户,登录到此 URL: manage.windowsazure.com 。 然后单击浏览器窗口左侧的"WEB SITES"链接。 接着,单击"NEW | COMPUTE | WEB SITE | QUICK CREATE",键入所需的 URL,如图所示。在此我们使用了 mymsdnmagazine,这意味着我们的网站位于 http://mymsdnmagazine.azurewebsites.net。注意URL的名称是唯一的。
图Windows Azure 网站部署的快速配置
部署应用程序的关键步骤是获取发布配置文件,该文件包含 Visual Studio 将用于执行部署的设置。根据您所用的浏览器,您也许可以下载发布配置文件。您应在本地保存一个副本,供以后在 Visual Studio 中使用它。
配置数据服务
在使 ASP.NET MVC 4 应用程序运行前,需要配置数据库。
图 SQL Database
单击"Add"时,系统将要求您设置登录名和密码,以及希望您的 Windows Azure SQL Database 部署所在的区域。强烈建议您选择在其中运行 WAWS 的同一数据中心,以最大限度减小延迟时间和避免带宽费用。
在我们的示例中,登录名为 DBAdministrator。如果您以后要远程进行操作或需要生成连接字符串,这可能很重要。
此处的一个重要目标是保护您的数据库服务器信息,只允许特定的 IP 地址建立入站连接。单击屏幕顶部的"配置"。您将看到当前的 IP 地址,您可以使用它创建一个规则并直接从该 IP 地址连接到服务器。
由Visual Studio 执行 Web 部署
现在我们要在刚刚配置的服务器上创建数据库。返回 Visual Studio 并选择"View | Solution Explorer"。右键单击 MVCAzure.WebSite 并选择"Publish",将显示发布 Web对话框。
此过程通过向导来完成,其中第一步是将发布配置文件加载到 Visual Studio,这样您可以大大简化部署过程。您将执行几个步骤,用于为 ASP.NET MVC 4 应用程序指定发布配置文件的详细信息,提供有关您要如何在 Microsoft 数据中心内部署应用程序的信息,其中包括 Windows Azure SQL Database 服务器的目标 URL 和位置。
通过以下方式指定 ASP.NET MVC 4 应用程序将使用的 Windows Azure SQL Database 服务器:单击对话框左侧的Setting,然后单击 PersonContext 旁边的省略号,如图所示。
图
配置数据库连接
现在您将需要输入在创建数据库服务器时的信息。请注意,我们在服务器名称前面追加了 tcp。您还需要输入管理员名称(我们在前面的步骤中设置的 DBAdministrator)和密码。
图 连接到服务器并创建数据库
单击"确定"后,会在您输入的服务器上实际创建 SQL Database。系统将要求您确认此步骤。创建数据库后,您可以从发布 Web 应用程序对话框选择"Publish"。您可以在 Visual Studio 中选择"View | Output"窗口查看部署期间的步骤。
部署应用程序后,可以轻松执行监视、扩展或升级网站等工作,当然首选方法是使用 Windows Azure Portal管理这些任务,该门户提供可易于使用的仪表板。
总结语
由 Windows Azure PaaS 组件提供的功能与预置的框架(如 WordPress、Drupal、DotNetNuke 和 Umbraco)结合使用,开发人员可以专心致力于构建丰富的 Web 应用程序和数据存储库,而将基础结构任务委托给 Windows Azure 平台来执行。
在 Windows Azure 培训包 ( http://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/ ) 中包含更多Windows Azure开发的技术文档。
参考文献
Windows Azure Web Sites: Quick-and-Easy Hosting as a Service
http://msdn.microsoft.com/en-us/magazine/jj883953.aspx