原文 Windows Azure使用VS 2010的云应用开发过程

作为技术人员,如果在2010还不知道云计算,那么你已经“OUT”了;作为Visual Studio平台的使用者,如果你不知道VS 2010,那么你已经成了“土人”。现在已经有很多的先行者开始尝试在Windows Azure Platform(微软云计算平台)上使用VS 2010开发一些云应用了。在本文中将介绍使用VS 2010开发云应用的过程,不要有太多的担心,只要您熟悉ASP.Net应用程序开发,云应用开发是一个比较容易的过程,而且肯定会给您一个愉悦的开发体验。

在微软云计算平台上能做的云应用开发主要包括三类:Web应用程序、并行计算、分析应用程序,如表1所示:

进行微软云应用的开发,首先需要对开发环境进行配置。在这里我们不打算对JAVA、PHP、RUPY开发环境进行介绍,有关它们的开发环境,感兴趣的读者可以参考SDK里的相关描述。在这里我们只是介绍在Visual Studio平台下如何进行云应用的开发。

VS平台下云应用的开发环境如下所述:

(1)Visual Studio .NET 2008/2010

(2).NET Framework 3.5

(3)Windows Communications Foundation

(4)ADO.NET

(5)ADO.NET Data Services

(6)Web services (REST, SOAP)

(7)XML

(8)ASP.NET

(9).NET security

(10)SQL Server database development

因此我们在安装了VS2008或VS2010、SQL Server 2005/2008/2008 R2后,再安装一个扩展的工具包就可以进行云应用的开发了,这个扩展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.1,其下载的地址是:

http://www.microsoft.com/downloads/details.aspx?familyid=5664019E-6860-4C33-9843-4EB40B297AB6&displaylang=en

使用VS 2008 和VS2010开发云应用的过程没有本质区别,但是VS 2010提供了云应用的开发、调试、部署、管理的整套工具,如开发云计算的程序模式、开发云计算的资料模式、开发云计算的项目范本、离线测试云计算项目、云计算部署等等,这些功能都缩短了云应用的开发周期,因此我们将使用VS 2010来开发云应用。注意在开发云应用的过程中,需要安装SQL Server Express,如果没有安装,可以使用VS 2010的安装文件添加安装。

在VS 2010上安装此工具包有2种方式,一种是直接下载安装;另一种是打开Visual Studio 2010,点击“文件”*“新建项目”,选择Visual C#或Visual Basic顶级节点,在窗口右侧已安装模板列表中找到Cloud(云)节点,当你选中这个节点后,你只会看到一个项目模板“启用Windows Azure工具”,双击这个模板,将会在一个新标签窗口中打开一个HTML文档,这个文档提供了下载Windows Azure工具的链接,跟着链接下载并安装Windows Azure工具。安装了此工具包后就能创建云应用项目,如图1所示:

在VS 2010中,云应用开发主要包含5个步骤:创建云服务、配置云服务、生成云服务、运行和调试服务、发布服务,如果有需要使用云存储的应用还包括使用存储服务。在这5个步骤中,前4个步骤是开发云应用的过程,第5步是部署云应用的过程。

(1) 创建云应用程序

Windows Azure提供了一种叫做role的概念,每个role就可以被认为是一段程序,只是这段程序可以同时在一台或者多台机体上运行。每个role可以有多个实例(instance),每个实例就对应一台虚拟机。对同一个role而言,它所有的实例执行的程序都是相同的。现在有两种类型的Role:Worker角色和Web角色。一个Web角色就是运行在IIS上的一个Web应用程序,它可以通过HTTP或HTTPS端点与外界通信,一般来说,Web角色响应请求,执行一个动作,然后等待下一个请求的到来。Worker角色是运行.Net框架代码的后台进程应用程序。

在这里我们使用VS 2010,选择的角色类型是ASP.Net Web Role, 创建一个云应用的演示项目TimeAzure,如图2所示:

创建完成后,修改我们的Web Role1为TimeAzure_WebRole,现在的项目组织如图3所示:

由项目结构图我们可以看到云应用项目和普通的ASP.Net项目的不同,云应用项目会产生一个云应用的项目和一个ASP.Net的项目,云应用项目对ASP.Net项目进行引用,同时云应用项目中还包含服务定义和服务配置文件,这两个文件在配置、运行和部署云应用时将要用到。

在Default.aspx页面里拖入一个Label,命名为Label1,并在Default.aspx里输入如下代码:

<ccid_nobr>

<ccid_code>protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}

在这里,我们开发云应用的步骤就结束了,整个开发过程和开发ASP.Net没有任何区别,我们无需从零开始学习云应用开发,这也是微软云计算平台的一大优势。

(2) 配置云服务

开发完云应用程序后,我们就需要对应用进行配置。打开ServiceConfiguration.cscfg文件,修改配置文件如下:

<ccid_nobr>

<ccid_code><?xml version="1.0"?>
<ServiceConfiguration serviceName="TimeAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2
008/10/ServiceConfiguration">
<Role name="TimeAzure_WebRole">
<Instances count="3" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value=
"UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>

在服务设置文件中,我们可以定义角色并对角色进行设置,这里使用默认已经创建好的角色,只是设置了实例的数量,由“1”改成了“3”。

(3) 生成云服务

生成云服务和生成普通的ASP.Net程序完全一样,点击Build |Build Solution即可,编译的过程中,会对云应用服务进行打包,生成TimeAzure.csx文件,本地Development Fabric会使用这个.csx文件。

(4) 调试和运行云服务

点击Debug | Start Debugging开始对云应用的测试,如果没有安装SQL Server Express就会出现如图5所示的错误,这也是在前面提到的需要安装SQL Server Express的原因。

设置TimeAzure为启动项目,点击运行或调试,运行或调试云应用的时候会启动本地的Development Fabric,它模拟了Windows Azure的服务。Development Fabric宿驻了你的服务中所有的Web Role和Worker Role的实例。要显示Development Fabric的用户界面,双击系统任务栏中的Development Storage图标,打开窗口如图7所示:

在上图中显示了运行的服务的3个实例,这3个实例也对应了我们在服务设置文件里设置的实例数,点击每一个实例的窗口,可以查看实例的详细信息。注意当停止服务运行或调试,本地Development Fabric和Storage元素不会停止,必须手动从系统工具栏中停止才行。

(5) 发布云服务

生成解决方案后,对应用程序也进行了调试,这些工作完成后就可以发布云应用。值得推荐的一个部署过程是:

 在Windows Azure Development Fabric中使用本地存储,在本地运行云应用程序。

 在Development Fabric中使用Windows Azure存储帐户,在本地运行云应用程序

 在Windows Azure上使用Windows Azure存储帐户运行云应用程序

要发布服务,右键单击TimeAzure项目,然后选择发布,如图8所示:

这将打开Windows Explorer到解决方案文件夹中的Publish文件夹,如图9所示:

在打开publish文件夹的同时打开Azure Services Developer Portal。在这里我们使用Live ID来登录到Azure Services management portal上进行部署,在部署时需要有一个邀请码,关于邀请码的获得,以前的方法是直接在Azure的网站上进行申请。然后就可以登录到Developer Portal并按照向导上传应用程序到Windows Azure,有关上传的步骤这里就不描述了,这是一个向导式的过程,把.cscfg和.cspkg上传就可以了。注意在部署的时候我们可以部署到生产环境或者演示环境,如果只是做一个Demo,那我们就把云应用部署到演示环境上。有关云应用部署的更详细步骤,感兴趣的读者可以参考MSDN:

http://blogs.msdn.com/b/azchina/archive/2010/02/18/webrole.aspx

部署完成后,打开界面类似图10所示:

部署完成后,就可以点击Run来运行我们的云应用,这样所有的机器就可以通过Internet来访问我们的云应用了。

小结

单纯从开发应用程序的过程来看,开发云应用和ASP.Net应用没有太多区别,这对广大的ASP.Net程序员来说是一大福音。VS 2010 是开发云应用的一大利器,使用它您可以很轻松地开发、配置、调试、部署云应用。您还等什么呢,赶快开始您的云计算之旅吧!

Windows Azure使用VS 2010的云应用开发过程的更多相关文章

  1. Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式

    <Windows Azure Platform 系列文章目录> 这是笔者在之前的项目中遇到的问题,做一下总结,给网友做参考. 在一般情况下,Visual Studio开发的Cloud Se ...

  2. 基于Windows Azure 安装 SharePoint 2010简体中文语言包

    在Windows Azure上安装的Windows Server默认是英文版本的,当时安装的SharePoint也是英文版的,为方便使用,决定安装中文的语言包,具体过程如下: 1. 安装 Window ...

  3. 将 Java Spring Framework 应用程序迁移到 Windows Azure

    我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序( ...

  4. Windows Azure Storage

    之前都是在博客园看别人的文章,今天开始就开启自己的博客咯,欢迎阅读,共同探讨! 简单点说Widows Azure Storage就是一个大的网盘,可以让用户存储任何想存储的数据,数据一旦存储到“云”中 ...

  5. Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(上)

    Windows Azure是微软的云平台,可以提供广泛服务.您可以通过它搭建.部署并管理解决方案,用于实现您可以想象的几乎任何目标.换言之,WindowsAzure是拥有无限可能的世界.无论您是需要运 ...

  6. 在 Windows Azure 中运行SuperSocket

    关键字: Windows Azure, WorkRole, InputEndPoint, 云计算, 微软云 什么是 Windows Azure? Windows Azure 是微软的云计算平台!微软的 ...

  7. 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序

    原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...

  8. 【Azure 云服务】Azure Cloud Service (Extended Support) 云服务开启诊断日志插件 WAD Extension (Windows Azure Diagnostic) 无法正常工作的原因

    问题描述 在Azure中国区上面创建一个云服务(外延支持)后,根据官方文档(在云服务(外延支持)中应用 Azure 诊断扩展: https://docs.azure.cn/zh-cn/cloud-se ...

  9. 跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版

    随着公有云的普及,越来越多的客户将关键应用迁移到云端.但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响.此外, ...

随机推荐

  1. 1294 - Positive Negative Sign(规律)

    1294 - Positive Negative Sign   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...

  2. 2013 ACM/ICPC Asia Regional Chengdu Online---1003

    哈哈哈 #include <iostream> #include <cstring> #include <string> #include <cstdio&g ...

  3. 机器学习笔记(一)- from Andrew Ng的教学视频

    最近算是一段空闲期,不想荒废,记得之前有收藏一个机器学习的链接Andrew Ng的网易公开课,其中的overfiting部分做组会报告时涉及到了,这几天有时间决定把这部课程学完,好歹算是有个粗浅的认识 ...

  4. BZOJ 3132: 上帝造题的七分钟( 二维BIT )

    二维树状数组... 自己YY一下再推一下应该可以搞出来... --------------------------------------------------------------------- ...

  5. Linux怎么设置PostgreSQL远程访问

    原文链接: Linux怎么设置PostgreSQL远程访问 安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置. ...

  6. QGraphicsTextItem中的文字对齐

    QGraphicsTextItem类可以放到QGraphicsScene或者QGraphicsItem上,用来显示格式化的文本内容,如HTML,当然纯文本也可以显示.如果只是显示纯文本,可以使用QGr ...

  7. jQuery特效手风琴特效 手写手风琴网页特效

    今天写一个简单的手风琴效果,不用插件,利用强大的jQuery,写一个手风琴效果. 页面预览,请点击这里预览:  手风琴预览 案例分析: html结构 就是一个大盒子里面放着5个li,每个li的小小是2 ...

  8. Python 2.7 学习笔记 基本知识

    python是一种解释型的.面向对象的.带有动态语义的高级程序设计语言.本文介绍下python的基本知识. 一.安装 各种操作系统有自己的安装方法,linux系统一般都自带了python的环境.这里不 ...

  9. php __autoload使用

    官方介绍: void __autoload ( string $class ) 你可以通过定义这个函数来启用类的自动加载. 转载一篇文章: PHP autoload机制详解 (1) autoload机 ...

  10. WebLech是一个功能强大的Web站点下载与镜像工具

    WebLech是一个功能强大的Web站点下载与镜像工具.它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为.WebLech有一个功能控制台并采用多线程操作. http://sour ...