版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云计算之旅5实战第一个云程序一. 摘要首先圣殿骑士很高兴云计算系列能得到大家的关注和支持,这个系列准备了几个月,终于在今天发布第一篇了(由于文章太长,拆成了两篇,这是其中一篇)。在这几个月中通过不断的使用和实践,对云计算总算有了一个较粗浅的认识,所以也希望能够和大家一起分享。在发布这篇文章之前也考虑了很久,因为一开始就讲概念的话,势必会得不到很好的效果,毕竟大家都不太熟悉这个新事物。与其“人云亦云”还不如先来一个简单的实例,所以我就先选择一个实践应用来看到底云计算能给我们带来什么好处,从开发者角度,随着这个概念的引入,究竟它需要做哪些改变才是我们最关心的问题。本篇文章在安排上大致如下:首先回顾
2、前面的基础知识,这样大家就可以有一个大概的认识;接着介绍开发工具,正所谓“工欲善其事,必先利其器”;再接着就是开发第一个简单程序,通过这个简单程序来看一下其开发过程;开发完毕之后就需要部署,在讲部署之前我们必须要有账户来完成此操作,所以紧接着就依次讲解账户申请和部署流程;大家一直在用程序+数据库模式来开发我们的应用,所以接下来我们就讲SQL AZURE和经典的程序+数据库模式,这样大家就可以避免生疏感,从而使理解也变得更加容易一些。通过这篇文章,我们对云计算有了一个较清晰的认识,了解了它究竟是什么、究竟能做什么以及如何做。如果大家清楚了这些问题,也就达到了本篇预期的效果,同时也为系列后面的文章
3、打下了基石,所以希望对大家能有所帮助。二. 本文提纲 · 1.摘要 · 2.本文提纲 · 3.云计算基础回顾· 4.开发工具· 5.第一个简单程序· 6.账户申请· 7.部署· 8.SQL AZURE· 9.经典的程序+数据库模式· 10.本文总结 · 11.系列进度三. 云计算基础回顾在前面几篇文章中,我们讲了很多概念,那么这里就简单回顾一下(更多细节看前面几篇文章):一,行业发展趋势纵观软件行业的发展过程与趋势可以看出一共经历了以下几个阶段: 面向机器语言(Monolithic)的
4、开发模式:根据不同平台的机器语言来定制化开发代码,所以开发出来的代码通用性和可重用性比较差,但这也是当时和硬件和软件环境决定的。 面向过程(Procedure)的开发模式:独立于机器的程序语言(如C、Pascal等)使得开发过程逐渐变得简单了,用过程来描述我们的需求、用函数来封装我们的代码。面向过程的开发模式是对可重用代码的封装,这样相对于前面的面向机器语言开发模式又进了一步;面向对象(Object)的开发模式:用更接近现实的对象来描述和绘制一个相对完整的事物。面向对象的语言(C+、C#、Java等),提供了更抽象的封装和重用模式。面向对象的开发强调从现实世界问题直接映射成我们的程序,所以就更
5、接近人类的自然思维方式。面向对象的开发模式是对可重用对象的封装,所以比前面的面向过程开发模式又进了一步; 面向组件(Component)的开发模式:面向对象在很多方面都改善了开发模式,但是随着软件开发规模的逐渐扩大,在涉及分布式、异步架构等复杂环境中,代码级别的重用性差,可维护性差,效率低的弱点就变得尤为突出,因此人们以架构运行环境 (如.Net,J2ee等)来提供完善的支撑平台,从而把开发者解放出来,更专注于业务核心的开发。而这些业务功能以组件的形式(如DCOM, EJB等)发布运行在架构运行环境中。软件开发的重用模式也上升到业务组件的级别。面向组件的开发模式在异步架构、分布式等的系统中应用
6、尤为突出,这种模式对面向对象开发模式进行了很好的补充; 面向服务(SOA)的开发模式:当软件的使用范围扩展到更广阔的范围,往往会面对更加复杂的IT环境和更加灵活多变的需求。服务(Service)的概念出现了,人们将应用 (Application)以业务服务(Business Service)的形式公布出来供别人使用,而完全不需要去考虑这些业务服务运行在哪一个架构体系上,因为所有的服务都讲着同样的语言。SOA考虑了业务发展的长期性,体现了"变化就是永恒"的思想。SOA的核心体现在企业应用或者业务功能上的"重用"和"互操作",而不再把IT
7、与业务对立起来,这可以被视为在IT驱动业务的方向上迈出的重要一步。面向服务的开发模式是为了支持更加灵活的异构、分布式系统; 面向云(Cloud)的开发模式:其实利用前面的几种开发模式就可以解决当前各种应用了,但人们总是考虑对资源进行重组已达到对资源的最佳使用。这个时候云计算就诞生了。云计算(Cloud Computing)是网格计算、分布式计算、并行计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。简单的说云计算简化了我们的基础架构且给企业提供了更大
8、的可配置性和灵活性。在原有模式下如果构建一个小型的应用,你需要租用服务器、你需要考虑租用服务器的安全和稳定因素等。如果构建一个中大型的应用,我们需要花巨资购买硬件来集群,然后是巨额资金购买所需的系统软件而且这些也需要一些人员来维护。现在云能提供我们程序所需的硬件设备和软件设备,你所做的只是按照你的需要租用这些已有的资源,上传你的程序和修改配置文件,就可以灵活扩展或收缩你占用资源,这样就可以达到合理利用资源的目的,同时也减轻了维护这些软硬件的成本。那么上面的几个阶段也可以简单的总结为三个发展趋势,这也是现在云计算体现的三大特点: 软件即服务(SaaSSoftware as a Service)一
9、种软件分配模式,使应用程序由供应商或服务供应商托管起来,并通过网络提供给用户。 平台即服务(PaaSPlatform as a Service)一种平台分配模式,通过网络提供操作系统和相关服务,这样客户就无需下载或安装。 基础设施即服务(IaaSInfrastructure as a Service)一种基础设施分配模式,把这些基础设施通过外包的形式提供出来,其中包括存储、硬件设备、服务器和网络组件等。二,云计算的优势和劣势任何一件事物都有利弊之分,云计算更不例外了,所以我们不能对它一概而论,只有充分的认识到这些优势和劣势之后才能更好的做出决断。也许你可以称它是一场比WEB 2.0还要巨大的革
10、命;也许你也可以称它和当初AJAX一样,属概念炒作、新瓶装旧酒;不管如何,没有深入虎穴焉得虎子,那么下面我们就具体分析一下它到底有哪些优势和劣势。优势或值得应用的方面:1.能快速搭建我们的应用 云计算最大的好处就是能够快速搭建我们的企业应用,比如我们现在要开发一个网站,我们就不必担心是否需要花巨资购买硬件来集群,然后是巨额资金购买所需的系统软件而且这些也需要一些人员来组建和维护的,如果恰巧这是一个比较新且可能会带来盈利的商业点子,那搭建在云上就是一个非常不错的选择,这起码能比其他企业先行一步。2.提供了更大的灵活性和扩展性 由于“云”的规模可以动态伸缩,这样就可以不用加大投资硬件设备的力度来满
11、足应用和用户规模增长的需要,同时也无形起到了降低成本的作用。如果项目突然废弃,也没有什么大的损失,所以在这方面,云计算是相当灵活和易于扩展的。3.可以解决一些特殊的场景很多公司都是在特定的时期盈利较大,比如一些情人节和圣诞节的帮办公司,它们就是在这段时间的营业额比较大,在一年中的其他时候,几乎不能盈利,在这种情况下,如果按照传统的软件部署习惯,势必会造成一定的浪费。正如一个有大量波峰和波谷的企业一样,你可能就被迫要将更多的IT资源分配给峰值时期使用。这种情况下将峰值需求外包可能会节约更多成本。 4.缩短了产品的开发周期不管你是使用哪个厂商的云计算产品.都有一个显著的特点,那就是能缩短产品的开发
12、周期,一个想法到一个产品的开发周期因为云计算的到来而逐渐缩短,由此你可以看出里面蕴藏的巨大价值。云计算确实已经开始影响到我们做业务的方式。我们开始减少研究的循环周期,这对于我们来说非常重要而且必要。 5.节约了建立基础设施的成本其实对于每个企业来说基础设施都是一笔开支比较大的费用,而且除了费用之外还需要专门的人力和物力的投入,在这个过程中又要保持快速的软硬件更新速度来适应市场的不断变化,所以云计算的出现无疑是值得考虑的一种解决方案。很多时候,我们也会时常注意到数据中心使用面积不够、应用软件超出基础架构的承受能力、软硬件更新太快等问题,云计算服务能帮助企业将资本转移到运营费用上,尤其是在生死攸关
13、的关键时刻,所以在这方面来说,是值得考虑的。 劣势或需要改进的方面:1.数据安全性对数据安全性方面看,目前比较热的云计算厂商亚马逊、谷歌、IBM、微软、甲骨文、思科、惠普、Salesforce、VMware等都没有完全解决这个问题,所以很多企业了解到所用数据的类型和分类后,他们还是会决定通过内部监管来控制这些数据。而绝不会将具备竞争优势或包含用户敏感信息的应用软件放在公共云上,这个也是众多企业保持观望的一个原因。2.厂商按流量收费有时会超出预算虽然云厂商推出云产品时大力宣传随时获取,按需使用,随时扩展,按使用付费,但是在很大程度上价格都比较高,至少在目前还没有降低的趋势,这样对某些企业就会起到
14、相反的效果,比如说像索尼娱乐这样的公司,他们就不考虑采用外部云服务来应对存储扩展能力的挑战。位于加利福尼亚的Culver City的高级系统工程师Nick Bali表示。每天索尼动画访问和产生的数据量都在4千兆到12千兆之间。Bali解释说"如果放在云上进行数据读取的话,我们需要的网络带宽是非常庞大的,这样所需的成本过于巨大,甚至超过了购买存储本身的费用。目前索尼公司正在使用ParaScale的云存储软件评估私人存储云。所以从这点看出并不是云平台就一定便宜。3.企业的自主权降低其实关于企业自主权这个问题是一个比较争议的话题,也许这也是出于慎重的考虑,毕竟对自己公司的应用,大家都希望能
15、完全管理和控制,原来的模式中,可以搭建自己的基础架构,每层应用都可以自定义的设置和管理;而换到云平台以后,企业不需要担心基础架构,也不需要担心诸如安全、容错等方面,好处是一个方面,但同时也让企业感到了担忧,毕竟现在熟悉的东西突然变成了一个黑盒。当然在这个时候众厂商也推出了内部云或者云套件来补救,但是这个问题也没得到根本解决。4.规模大且成型的企业难以扩展很多大型企业已经花了巨资来购买硬件并逐渐构建了自己的服务器集群(有的企业还大量购置了最新的刀片服务器),然后也购买了所需的系统软件和应用软件,而且也在此基础上搭建了基础平台架构。那么针对这样的企业来说,他们没有必要把自己的应用舍本求末的放在云上
16、,所以这个也是很多企业不愿意移植的原因之一。5.云计算本身还不太成熟尽管众云计算厂商把云计算炒得大红大紫,每个厂商推出的云产品和云套件也是琳琅满目、层出不穷,但是他们都各自为战,没有有统一的平台和标准来规范。所以冷静下来想一想,到底它能不能为我们企业所用,在安全性、稳定性和企业本身因素方面必须尽管慎重的考虑才行,不要被眼前的广告所忽悠。你要知道每个企业要宣传自己的产品都会采取各种手段的,比如说到公共云不安全,厂商就开始推私有云;说到企业原有应用难以整合到云上,厂商马上就推出了混合云;但是在根本上云计算还有很长的路要走,很多地方都得优化。当然我们也愿意在这个过程中充当试金石,因为体验它之后,我们
17、相信它必定会成为未来的趋势。三,目前的现状了解了云计算的基本概念以后,接下来要做的就是如何选择合适的云供应商,毕竟我们不是亚马逊、Google、微软、阿里巴巴、浪潮等专注于云计算研发的企业,所以如果我们使用云计算,必须得选择一个合适的云厂商来为我们服务。图1上面的图中包含了前期的几家云计算厂家,其实总体来说现在云计算厂商可谓星罗棋布,不光是国外的亚马逊、谷歌、IBM、微软、甲骨文、思科、惠普、Salesforce、VMware等大型企业,还包括国内的阿里巴巴、中移动、浪潮等也加入到了这个竞技场。四,微软的云平台虽然我们不能亲自开发一个云平台,但是我们可以使用并体验云平台给我们带来的好处,在这个
18、过程中我们也可以通过具体使用、深入分析、再次使用、回归总结的方式来逐步深化我们的认知程度,这样循环往复以后就从中获得预期的收益。我们这个系列目前主要研究微软的云平台Windows Azure Platform,它是微软完整的云计算平台,目前包含了如下三大部分(详细介绍见云计算之旅4Windows Azure总览 ):Windows Azure:运行在云中的操作系统,对于用户来说是虚拟且透明的,其中提供了Compute(计算),Storage(存储),以及Manage(管理)这三个主要功能及其底层服务,使用起来相当的便捷。 SQL Azure:运行于云中的一个关系数据库,和SQL Server
19、2008类似,但是在功能上还没有那么强大。 AppFabric:全名是Windows Azure platform AppFabric,提供了访问控制、服务总线等服务,主要用于把基础应用连接到云中。四. 开发工具俗话说“工欲善其事,必先利其器”。我们在开发一个任何一个程序之前都需要了解开发它的工具,使用了开发工具之后总能起到事半功倍的效果,这一点是无需置疑的,毕竟命令行、汇编、记事本的方式是需要大量的时间和精力,而且调试和异常跟踪等也极为困难。针对微软的windows azure的开发工具很简单,我们在安装了VS2008或VS2010、SQL Server 2005/2008/2008 R2后
20、,再安装一个扩展的工具包就可以进行云应用的开发了,这个扩展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.2 (里面包含Windows Azure SDK和Visual Studio集成),其下载的地址是: 这个版本是2010年6月发布,其中包括Windows Azure Tools + SDK,所以安装了它以后就不需要再安装其他的软件了,其中功能包括:新特性支持:对Visual Studio 2010 RTM的完全支持,这样我们就可以使用最新的模板和强大的新特性。 多版本支持:.NET 4 的支持使得开发者构建服务时具有选择.NE
21、T 2.0、.NET 3.0、.NET 3.5 或者 .NET 4 框架的灵活性。 应用可视化:通过在Visual Studio Server Explorer中显示Windows Azure table 和blob容器的只读视图,我们可以用视图的方式预览我们所创建的应用。 Cloud storage explorer也使得开发者能更轻松的构建出更优秀的服务。 整合部署:开发者只需在Visual Studio Solution Explorer中选择"Publish"便能直接部署服务,这个在1.1版本也提供了。 服务监控:帮助开发者通过在Server Explorer中的&
22、#39;compute'节点来追踪和管理其服务状态。 调试简便:IntelliTrace 支持运行于云端的服务,简化了对于云端服务的调试。 其实使用VS 2008 和VS2010开发云程序的过程没有本质上的区别,主要是VS 2010提供了云应用的开发、调试、部署、管理的整套工具,如开发云计算程序模式、开发云计算的项目模板、离线测试云计算项目、云计算部署等等功能的支持,这些功能都缩短了云应用的开发周期,在很大程度上提高了开发效率,因此我们在很多时候会使用VS 2010来开发云应用,当然为了照顾部分使用VS 2008的朋友,我们也会尽量提供两个版本。五. 第一个简单程序步骤一:创建云项目&
23、#160;正所谓“千里之行始于足下”。安装了开发工具之后,我们就来创建第一个应用程序,由于我安装的是windows 7操作系统,所以用管理员权限打开Visual Studio 2008,如果是XP等操作系统,直接运行Visual Studio 2008即可,因为之前我们已经安装了Windows Azure Tools for Microsoft Visual Studio 1.2,所以你就会看到下图模板中多了一个Cloud的选项(图中标记1),点击Cloud选项,选择Windows Azure Cloud Service模板(图中标记2),命名项目为FirstCloudApp,点击OK按钮创建
24、我们的项目:图3在弹出窗口出现后,按照下图所示,分别点击标签1的ASP.NET Web Role和标签2的“>”按钮。该步骤会在右边窗口中生成一个新的WebRole项,此时你可以点击标签4的笔形图标,然后改变该Web Role名字,同时你也可以点击标签5的小叉删除新建的项,操作完之后点击OK按钮即可。图4步骤二:观察生成的云项目 项目结构如下图所示:图5由项目结构图我们可以看到云项目和普通的ASP.Net项目的差别,ASP.Net Web Role云项目会产生一个云应用的项目和一个ASP.Net的项目,云应用项目对ASP.Net项目进行引用,同时云应用项目中还包含服务程序文件和
25、服务配置文件,这两个文件在配置、运行和部署云应用时将要用到,没有这两个文件,也就没有我们的云程序。大家也可以通过这些配置文件来具体定制化我们的应用,在下一次课程中,我们也会详细讲解这个程序文件的内部原理以及注意事项。编辑Default.aspx页面,添加一些简单的测试信息,代码如:<% Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %><!DOC
26、TYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"> <title></title></head><body> <form id=&quo
27、t;form1" runat="server"> <div> <div> <img alt="" src="2010-8-22%2011-55-50.png" style="width: 314px; height: 155px" /><br /> </div> <div style="font-size: x-large; color: #FF0000"> 圣殿骑士已经在云上了!</div> &
28、lt;/div> </form></body></html>步骤三:解决运行错误问题按F5键开始调试程序。由于没有安装SQL Server Express,所以会看到下图所示的错误信息:图6那么我们可以使用VS 2010的安装文件添加安装来解决这个问题,同时你也可以通过命令行的方式来解决,在开始菜单中点击Windows Azure SDK Command Prompt进入命令行窗口,如下图:图7在如下的命令行窗口输入DSInti /sqlInstance:.(意思是:“DSInit /sqlinstance:你的sql instance名字”,我们这里
29、本机,所以是.)图8然后点击下面的OK按钮,重新运行程序即可。图9步骤四:再次运行程序,得到正确结果再次运行程序,你将会看到下面的页面,这表示你创建的windows azure的程序可以正常运行并得到了你想要的结果,如果你比较细心,你会发现它是借用本地的IIS来Host的,地址是:http:/127.0.01:81/Default.aspx:图10经过上面的步骤,我们已经创建了第一个云程序,接下来要做的就是部署到所谓的云上面去了。步骤五:观察本地云模拟器如果你足够细心的话,会发现任务栏里多了一个程序的图标,见下图1标记:图11这个就是dev Fabric和dev Storage的管理器。也就是
30、传说中的云端模拟器,这个模拟器可以让我们在本地测试自己的程序是否能够在Windows Azure Platform上正常运行。一般情况下如果在本地测试通过的程序,上传到Windows Azure Platform上就可以正常运行,但是也有一些特殊的情况,我们在后面会讲到。点击上图的2标记,就进入下图的dev Fabric管理器:图12从上图的dev Fabric管理器可以看到我们当前运行的程序以及执行的状态,这个可以帮助我们进行跟踪和调试。点击图11的3标记,就进入下图的dev Storage管理器,Windows Azure为应用程序提供了Blobs,Tables和Queues三种存储机制,
31、你可以在这个界面来开启或者关闭某种存储机制。图13对于上面这些功能,我们在这篇不会做过多的探讨,以后会在专门的文章中做详细介绍。六. 账户申请在部署之前,我们先要有一个账户,如果没有账户需要从图14购买了并激活以后就可以通过图15登陆成功以后,你会看到如下的主界面,在这个界面里面,你可以创建、管理你的Windows Azure、SQL Azure和AppFabric。图16七. 部署步骤一:发布项目开发完一个应用程序并在本地完成测试之后,就可以部署到云上去了,我们在Visual Studio的Solution Explorer窗口中,右击FirstCloudApp项目,点击Publish选项,
32、如下图:图17这里有两个选择方案发布你的项目,第一就是创建云程序包,手动上传;第二就是设置信息自动上传。由于下篇我们会分析其内部的原理,所以我们这里就选择第一种方式,如下图:图18点击OK按钮,等待Visual Studio创建压缩包并自动弹出压缩包的窗口。压缩包和配置文件如下图:图19步骤二:Windows Azure管理站点前面我们输入了Live ID和密码登陆到了Windows Azure管理站点,大家看到该网页列出了我们能够使用的Windows Azure服务,当然由于购买的服务不同,您的项目数量也会有所不同,这里我们需要创建一个服务来Host我们的程序。你可以点击下图标记1或者标记2
33、来创建我们的服务:图20步骤三:创建Hosted Services 由于是第一次部署,我们需要先创建一个新的Hosted Services来Host我们的程序。点击New Service链接:图21弹出如下页面,填入Hosted Services的标签名并输入该Hosted Services的描述,然后点击Next按钮:图22输入你想要的域名,然后点击Check Availability按钮检查该域名是否可用,接下来就是设置服务器的地理位置,由于我现在处在新加坡,所以选择东南亚,如果在中国大陆,则可以选择东亚。最后点击Create按钮完成创建:图23步骤四:上传并部署程序现在Hosted Se
34、rvices已经创建完成。我们能够在网页上看到我们刚刚创建的Hosted Service,如下图,标记1可以修改程序的描述。标记2可以删除我们刚才创建的服务。标记3和4则是我们刚创建服务的两个环境,windows azure在这方面做得很人性化,提供了Staging和Production两个环境来部署我们的应用,这个就和我们实际的项目流程比较类似了,也给我们提供了更大的灵活性。标记5则给我们提供了一个很重要的功能,你可以通过证书来保护你的应用程序。图24点击上图Staging的Deploy按钮弹出如下页面。选择在步骤一中生成的两个文件然后上传。在Application Package一栏中输入
35、.cspkg文件路径。在Configuration Settings一栏中输入.cscfg文件路径。点击Deploy:图25步骤五:启动并测试程序点击Deploy按钮之后,看到如下页面,然后等待一段比较长的时间(时间根据你项目大小而定):图26直到出现下面的界面,你会看到当前的状态为Stopped,这个时候点击Run按钮:图27你会看到状态由Stopped逐渐变为Initializing、Busy和Ready,当状态变为Ready后,点击下面的Web Site URL链接就可以看到我们刚才修改的网页了。图28经过刚才Staging环境测试之后,我们就可以点击上图中间的转换按钮,这个时候Stag
36、ing环境中的应用程序就会上传到Production环境,然后经过前面Staging相同操作,就可以见到如下图所示界面图29当发现WebRole1的状态为Ready时,我们的Web Role项目就已经成功运行了。见下图:图30然后点击Web Site URL链接,这个时候就可以看到我们期待的页面了。图31到此为止我们已经成功地把第一个云程序发布到云端了!现在任何能够访问Internet的机器都可以通过八. SQL AZURE在浏览器输入 ID和密码登陆到了Windows Azure管理站点(如图32所示),前面我们创建了一个服务来Host我们的程序,这里我们要介绍另外一个功能SQL AZURE
37、,点击页面的SQL AZURE链接图32进入如图33所示的页面,可以看到当前的所有数据库和所有操作按钮,那么我们就简单对它们进行一些介绍:标签1中的Reset Password按钮可以修改登陆密码;标签2中的Drop Server按钮是删除当前SQL AZURE服务;标签3中的Databases则是显示所有的数据库信息,其中包括数据库名、当前大小、最大容量、版本(Web版本有1G和5G两个容量可供选择,Business版本支持10G、20G、30G、40G乃至50G的大容量存储);标签4中的Firewall Settings是一个比较重要的功能,可以通过设置具体可由哪些IP访问,即相当于简单防
38、火墙的功能。标签5中的Connection Strings按钮是程序链接字符串的信息,通过它可以获取程序使用什么样的字符串来访问数据库,一共有ADO.NET和ODBC两种方式。标签6中的Test Connectivity按钮这个功能可以测试刚才我们创建的数据库是否连接正常。标签7中的Create Database按钮则是我们最常用的功能,使用它来创建我们的数据库。标签8中的Drop Database按钮删除当前选择的数据库。图33点击图33标签7中的Create Database按钮打开图34所示的界面,我们输入要创建的数据库名FirstCloudDB,选择版本类型,然后选择容量大小之后点击C
39、reate按钮即可完成创建工作。图34点击图33标签5中的Connection Strings按钮打开如图35所示界面,因为我们要在程序或者SQL Server Management Studio R2中使用到链接字符串,所以在使用的时候需要从这里查看或者拷贝。图35点击图33标签6中的Test Connectivity按钮,这个功能可以测试刚才我们创建的数据库是否连接正常,输入Username和Password,然后点击Connect按钮,就可以测试连接是否成功。图36点击图33标签4中的Firewall Settings,打开如图图37所示的界面,我们知道这是一个比较重要的功能,可以通过设
40、置具体可由哪些IP访问,即相当于简单防火墙的功能。我们先把本机加入到Firewall Settings里面,这样就可以通过本机的程序或者SQL Server Management Studio R2操作数据了。图37当设置了Firewall Settings以后就可以通过管理工具或者程序进行连接了。在讲下面的内容之前,你首先得安装SQL Server R2版本的数据库,具体下载地址:安装完成之后,我们就可以使用SQL Server Management Studio R2登陆SQL AZURE了,打开SQL Server Management Studio R2,如图38所示图38登陆成功以后
41、进入如图39所示的SQL Server Management Studio R2主界面,这个版本和其他版本基本一致,我也不做过多介绍,后面讲SQL AZURE会专门进行探讨。图39九. 经典的程序+数据库模式前面用了较大篇幅介绍了Windows Azure和SQL AZURE的基本使用,那么这里就用一个简单的实例来看一下经典的程序+数据库模式在azure中有哪些改变,首先打开SQL Server Management Studio,登陆到SQL AZURE数据库,通过如下语句建立所需的表和插入所需的数据(如图40所示)。图40创建了数据库以后,然后我们打开前面创建的FirstCloudApp程
42、序,在Default.aspx页面放置一个Label 控件,这个控件用来呈现从数据库返回的数据<% Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "/TR/xht
43、ml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <div> <img alt="" sr
44、c="2010-8-22%2011-55-50.png" style="width: 314px; height: 155px" /><br /> </div> <div style="font-size: x-large; color: #FF0000"> 圣殿骑士已经在云上了!</div> <div style="font-size: x-large; color: #FF0000"> 从SQL AZURE读取的数据:<asp:Label
45、ID="lblSqlAzure" runat="server" Text="Label"></asp:Label> </div> </div> </form></body></html>在Default.aspx.cs页面写一段简单读取数据库数据的代码,为了能够简单的展示,我没有对其进行分装,也没有引入任何修饰代码,这样大家可以更好的理解一些,如果大家看不惯这些代码,也敬请见谅,后面文章会讲解我们自己开发的ORM框架,AOP对日志、异常、特定植入代码的处理,
46、IOC对框架和组件解耦的支持以及常用设计模式和SOA service bus等的引入。namespace WebRole1 public partial class _Default : System.Web.UI.Page private const string DBNAME_STRING = "FirstCloudDB" private const string CONNECTION_STRING = "Server=tcp:;Database=" + DBNAME_STRING + "User ID=KnightsWarriorkd9v
47、hjwe8w;Password=Ncs135456;Trusted_Connection=False;Encrypt=False" / On Azure. private const string SELECT_STRING = "SELECT message FROM FirstCloudDB.dbo.tTest" protected void Page_Load(object sender, EventArgs e) this.lblSqlAzure.Text = GetResult(SELECT_STRING).ToString(); public stat
48、ic object GetResult(string SQLString) using (SqlConnection connection = new SqlConnection(CONNECTION_STRING) using (SqlCommand cmd = new SqlCommand(SQLString, connection) try connection.Open(); object obj = cmd.ExecuteScalar(); if (Object.Equals(obj, null) | (Object.Equals(obj, System.DBNull.Value) return null; else return obj; catch (System.Data.SqlClient.SqlException e) connection.Close(); throw new Exception(e.Message); 编码完了以后就可以在本地测试了,测试通过以后发布我们的程序(这个和前面操作类似,所以简单略过)。由于之前我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《月球地质图图示图例及用色标准》
- 建筑施工安全培训课件-钢筋工安全意识提升
- 2025林地的承包合同模板
- 2025拓展活动合同范文
- 二零二五年度高效仓储服务仓库库房租赁合同范本6篇
- 2025技术资料服务合同
- 二零二五版5G通信技术岗位员工服务合同3篇
- 2025酒店式公寓租赁合同书范本
- 2025年度泥浆及土方外运环保施工监理合同3篇
- 山东省文化设施建设合同范本
- 《榜样9》观后感心得体会四
- 《住院患者身体约束的护理》团体标准解读课件
- 足球比赛专用表格
- 全面设备管理(TPM)培训资料-课件
- 高中地理《外力作用与地表形态》优质课教案、教学设计
- 车间生产管理流程图模板
- 河北省邢台市各县区乡镇行政村村庄村名居民村民委员会明细
- 市场部绩效考核表
- 10000中国普通人名大全
- 学霸高中数学高中数学笔记全册(最终)
- 热棒的要点及要求
评论
0/150
提交评论