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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文 Windows Azure使用VS 2010的云应用开发过程 作为技术人员,如果在2010还不知道云计算,那么你已经“OUT”了;作为Visual Studio平台的使用者,如果你不知道VS 2010,那么你已经成了“土人”。

原文 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 是开发云应用的一大利器,使用它您可以很轻松地开发、配置、调试、部署云应用。您还等什么呢,赶快开始您的云计算之旅吧! 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
Trinitycore学习之windows上用cmake生成vs项目并尝试在windows上启动服务
Trinitycore学习之windows上用cmake生成vs项目并尝试在windows上启动服务
48 0
|
1月前
|
数据可视化 数据库 C++
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
|
4月前
|
Linux API C++
音视频windows安装ffmpeg6.0并使用vs调试源码笔记
音视频windows安装ffmpeg6.0并使用vs调试源码笔记
110 0
|
9天前
|
监控 安全 API
7.3 Windows驱动开发:内核监视LoadImage映像回调
在笔者上一篇文章`《内核注册并监控对象回调》`介绍了如何运用`ObRegisterCallbacks`注册`进程与线程`回调,并通过该回调实现了`拦截`指定进行运行的效果,本章`LyShark`将带大家继续探索一个新的回调注册函数,`PsSetLoadImageNotifyRoutine`常用于注册`LoadImage`映像监视,当有模块被系统加载时则可以第一时间获取到加载模块信息,需要注意的是该回调函数内无法进行拦截,如需要拦截则需写入返回指令这部分内容将在下一章进行讲解,本章将主要实现对模块的监视功能。
24 0
7.3 Windows驱动开发:内核监视LoadImage映像回调
|
4月前
|
监控 安全 API
7.2 Windows驱动开发:内核注册并监控对象回调
在笔者上一篇文章`《内核枚举进程与线程ObCall回调》`简单介绍了如何枚举系统中已经存在的`进程与线程`回调,本章`LyShark`将通过对象回调实现对进程线程的`句柄`监控,在内核中提供了`ObRegisterCallbacks`回调,使用这个内核`回调`函数,可注册一个`对象`回调,不过目前该函数`只能`监控进程与线程句柄操作,通过监控进程或线程句柄,可实现保护指定进程线程不被终止的目的。
29 0
7.2 Windows驱动开发:内核注册并监控对象回调
|
4月前
|
监控 安全 API
7.6 Windows驱动开发:内核监控FileObject文件回调
本篇文章与上一篇文章`《内核注册并监控对象回调》`所使用的方式是一样的都是使用`ObRegisterCallbacks`注册回调事件,只不过上一篇博文中`LyShark`将回调结构体`OB_OPERATION_REGISTRATION`中的`ObjectType`填充为了`PsProcessType`和`PsThreadType`格式从而实现监控进程与线程,本章我们需要将该结构填充为`IoFileObjectType`以此来实现对文件的监控,文件过滤驱动不仅仅可以用来监控文件的打开,还可以用它实现对文件的保护,一旦驱动加载则文件是不可被删除和改动的。
29 1
7.6 Windows驱动开发:内核监控FileObject文件回调
|
4月前
|
监控 安全 API
6.9 Windows驱动开发:内核枚举进线程ObCall回调
在笔者上一篇文章`《内核枚举Registry注册表回调》`中我们通过特征码定位实现了对注册表回调的枚举,本篇文章`LyShark`将教大家如何枚举系统中的`ProcessObCall`进程回调以及`ThreadObCall`线程回调,之所以放在一起来讲解是因为这两中回调在枚举是都需要使用通用结构体`_OB_CALLBACK`以及`_OBJECT_TYPE`所以放在一起来讲解最好不过。
40 1
6.9 Windows驱动开发:内核枚举进线程ObCall回调
|
4月前
|
监控 安全 API
6.8 Windows驱动开发:内核枚举Registry注册表回调
在笔者上一篇文章`《内核枚举LoadImage映像回调》`中`LyShark`教大家实现了枚举系统回调中的`LoadImage`通知消息,本章将实现对`Registry`注册表通知消息的枚举,与`LoadImage`消息不同`Registry`消息不需要解密只要找到`CallbackListHead`消息回调链表头并解析为`_CM_NOTIFY_ENTRY`结构即可实现枚举。
47 1
6.8 Windows驱动开发:内核枚举Registry注册表回调
|
4月前
|
存储 API 开发者
6.7 Windows驱动开发:内核枚举LoadImage映像回调
在笔者之前的文章`《内核特征码搜索函数封装》`中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核`LoadImage`映像回调,在Win64环境下我们可以设置一个`LoadImage`映像加载通告回调,当有新驱动或者DLL被加载时,回调函数就会被调用从而执行我们自己的回调例程,映像回调也存储在数组里,枚举时从数组中读取值之后,需要进行位运算解密得到地址。
32 1
6.7 Windows驱动开发:内核枚举LoadImage映像回调
|
4月前
|
监控 安全 API
7.5 Windows驱动开发:监控Register注册表回调
在笔者前一篇文章`《内核枚举Registry注册表回调》`中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通过这两个函数可以在不劫持内核API的前提下实现对注册表增加,删除,创建等事件的有效监控,注册表监视通常会通过`CmRegisterCallback`创建监控事件并传入自己的回调函数,与该创建对应的是`CmUnRegisterCallback`当注册表监控结束后可用于注销回调。
42 0
7.5 Windows驱动开发:监控Register注册表回调