《SharePoint 2010云计算解决方案》试读:第1章SharePoint 和云入门

本章提要 ● 理解云及其重要性 ● 整合云和SharePoint ● 搭建开发环境 ● 创建第一个SharePoint 和云应用 在这一章内容中,我们将了解什么是云以及云为什么如此重要。您还会了解到本书中 用来整合SharePoint 的一组云技术:Windows Azure、Web 2.0、Bing Maps 和Microsoft Dynamics CRM。为了开始进行开发,您要了解搭建和运行开发环境的整个过程,有两种 可选做法:本地化的安装或是预先安装好的虚拟机。开发环境安装好并能够运行之后,我 们也就讲到了本章的最后一部分内容:创建第一个基于云的SharePoint 应用。 1.1 云概述 作为下一代IT 技术的重大转折点,“云”正越来越频繁地被谈及。实际上,“转折点” 可能是一种保守的提法,这取决于您所了解到的资讯。诸如Gartner 和Forrester 一类的研 究机构把云描述成“颠覆性的转变”。这是因为传统软件开发和部署过程的转变更多的是在 朝一种服务驱动的方式演进,在这种方式中,软件被置于云端。 在考虑构建第一个云应用前,我们必须回答一些常见的基准问题,这与描述云的方式 无关。比如说,云是什么?您如何介入其中?它会给您和您的业务带来什么样的影响?以 及它如何影响到(或是增强了)SharePoint 的实际应用和解决方案(对本书来说至关重要)。 尽管这些看起来都是很基本的问题,但实际上,答案却未必简单。例如,最近的一篇 InfoWorld 文章指出:“……问题是……似乎每个人都定义了不一样的”云和云计算 (www.infoworld.com/d/cloud-computing/what-cloud-computing-really-means-031)。正如这篇 文章指出的那样,通常云是Web 的一种比喻—Web 自身就是巨量资源的互联—这引出 第 章 1 SharePoint 2010 云计算解决方案 2 了一个问题:云或云计算从哪里算起,以及到哪里为止。尽管云和云计算有着诸多的定义, 但我们应该会赞同本书的论题:云确实是用来比喻Web 的一种方式,而云计算则是表示把 Web 当成构建和部署软件的一组互联资源。 把软件部署到Web 上的做法代表了一种无处不在的应用开发和部署模型,这种模型带 来了如下好处: 􀂾 服务 􀂾 共享计算资源和存储 􀂾 硬件和软件的快速配置 􀂾 尽可能少的IT 基础设施和软件的管理 􀂾 开销的减少和成本优化的改善 云计算的目标包括了以下几方面:加快应用投放市场的速度;避免当前IT 部门现在面 临的订购和管理硬件、部署和管理软件等方面的障碍;以及基于实时应用所需来增加或减 少功能。本质上就是,把软件的部署和管理从生产经营场所中分离出来,放到遍及世界各 地的数据中心中。 现在,您已经可以找到许多云计算的例子了,包括诸如Microsoft Dynamics CRM、 Microsoft Office 365、Hotmail、SkyDrive、SalesForce.com、Google Apps、Amazon AWS 以 及Windows Azure 这样的技术。不过,这些基于云的技术与您目前正在管理的自建系统有 什么不同呢?例如,考虑一下图1-1,最左侧一列给出的是一种典型的代表,描述了在自 建的数据中心或实验室中,企业管理着哪些事物:运行应用、安排工作人员和各种资源来 管理软件和硬件;雇用有关人员在这一环境中构建和部署软件;诸如此类的工作都要由您 来承担。不过,沿此图向右看时,您会发现有很多服务都可以处理其中的一些管理需求。 图1-1 从自建环境向云计算环境的转变 IaaS(Infrastructure as a Service,基础设施即服务)提供了虚拟化的功能,比如虚拟机 (Virtual Machine,VM)实例,这使得您能够把机器托管在云端,Amazon AWS 和Windows 第1 章 SharePoint 和云入门 3 Azure 都提供了这种类型的云解决方案。在这种场景中,您开始把某些计算移到云端,只 管理较少的自建事务。PaaS(Platform as a Service,平台即服务)使得您能够把代码或数据部 署在云端,就像Google 那样,Windows Azure 也提供了这种类型的服务。同样,您把更多 的计算和数据移到了云端。 最后一种情况,SaaS(Software as a Service,软件即服务)提供了您所需要的一切,因此 您不需要管理任何自建的IT 基础设施。这对于许多企业来说都是一个很有吸引力的选择, 因为您可以选择让别人来为您管理一切,或是通过基于浏览器的应用自己管理,这些应用 直接和您的云方案捆绑在一起。Microsoft Office 365 和SalesForce.com 就是诸如此类的云 方案。 这里的关键转变是云计算提供了不同的方式来构建和部署应用或解决方案,而且可以 随着时间的推移在云内对它们进行管理。 在本书中,与把代码整合到自建的(或基于云的)SharePoint 实例中的做法相反,我们要 探讨的是把代码部署在云端的实践做法。具体说就是,我们打算讨论如何把一些受欢迎的云 技术和SharePoint Server 2010 整合起来;因此,讨论会涉及一系列不同的云服务。在刚才描 述的云模型中,我们会重点关注PaaS;也就是说,我们或是利用已存在于云端的现有服务、 资源或数据,或是创建新的服务或数据结构并把它们部署到云端。使用的云技术将横跨 Windows Azure、Web 2.0、Bing Services 以及Microsoft Dynamics CRM,然后这些云技术又 会被绑回到SharePoint 中,以此来说明如何把自建的SharePoint 解决方案扩展到云端。 1.1.1 Windows Azure Windows Azure 是Microsoft 的云计算平台,提供了早先讨论到的所有标准服务类型: IaaS、PaaS 和SaaS。Windows Azure 是一个很灵活的云计算平台,提供了用于虚拟化VM, 管理资源、数据和服务以及构建基于云的应用和网站的服务。作为微软关键的云战略, Windows Azure 使得您能够在云端提供及调整资源,不必再去费心搭建和管理自建的硬件 环境。例如,在使用Windows Azure 之后,不仅应用的规模变成了可调整的(随着数据和应 用的发展,需要扩充硬件),而且补丁的安装和操作系统的管理也变成了可自行完成的(您 的云托管环境始终处于最新状态),并且保证在99.9%的时间内系统都是正常运行的。作为 开发者,您还会有一个开发者门户,可用它来管理应用。 Windows Azure 目前包含了三个主要的组成部分: 􀂾 Windows Azure:Windows Azure 提供了一组核心的服务管理功能、一些开发者工具 和一个门户网站,您可通过该网站来配置应用、数据和服务,以及为彼此无关的数 据配置不同类型的存储(表、BLOB 和队列等)。此外,Windows Azure Marketplace DataMarket 使得您能够直接整合基于订阅的数据,这些数据可以通过编程来使用, 或是经由Marketplace 的浏览器UI 访问。 􀂾 SQL Azure:您可以把SQL Azure 看作SQL Server 用于云端的姊妹产品,SQL Azure 代表了云端的关系数据存储。利用SQL Azure,您可以迁移或构建关系数据库,以此 SharePoint 2010 云计算解决方案 4 来为基于云的应用或混合型应用提供丰富的并且可查询的数据源。您还可以同步自 建环境中的数据和存放在SQL Azure 上的数据,并且可以使用您目前具备的同样技 能把SQL Azure 数据整合到SharePoint 中。 􀂾 Windows Azure AppFabric:Windows Azure AppFabric 提供了一组范围广泛的中间 件服务,以此来帮助您管理安全性和身份识别(Access Control Service,访问控制服 务)、基于服务的应用以及工作流等等。这组中间件服务提供了一种很有吸引力的方 式来连接自建环境中的数据和基于云的解决方案。一个可用来说明这些服务的强大 功能的例子是:可通过Windows Azure AppFabric 的服务总线把存放在数据中心或 SharePoint 实例中的行业(Line-Of-Business,LOB)数据挖掘出来,在Office 365 或远 程设备上展示。 总之,这三部分提供了一组丰富且具备深度的技术,可以帮助您管理应用的开发和部 署所需。 本书的多章内容都会用到Windows Azure,因此您会希望为自己创建一个账户。要创 建账户,请访问https://windows.azure.com/default.aspx。在创建账户之后,就可以访问 Windows Azure 的门户网站了。请下载Windows Azure SDK 和Visual Studio 工具。编写本 书之时,可以访问www.microsoft.com/download/en/details.aspx?id=15658 以找到SDK 和相 关工具。 1.1.2 Web 2.0 Web 2.0 技术全部都是关于社交网络(Social Web)的,阅读本书的许多人也许早已加入 到了Web 2.0 中(实际上,其中的某些人可能已经读过了关于Web 3.0 的文章,Web 3.0 的 一种更常见叫法是语义网(Semantic Web))。Web 2.0 技术的例子包括Facebook、LinkedIn、 Twitter 和Google+。这些技术和其他很多技术通常都是基于浏览器的(尽管许多公司正在利 用Web 2.0 API 来构建特定于设备的应用或富客户端应用),它们在Web 上为用户提供了跨 不同语境进行沟通和协作的场所。例如,LinkedIn 就是一个专业的Web 2.0 网站,以一种 很棒的方式来帮助人们通过专业技能来建立起联系和合作关系。相反,尽管有许多公司通 过构建Facebook 站点来赋予它们的产品和服务一种虚拟取向(Virtual Conscience),不过 Facebook 还是比较的个性化。而Twitter 则是通过提供140 个字符的“tweet”消息来让社 区成员快速地交流新闻、聊天闲谈以及了解各种活动等。Twitter 公司宣称,每天发送的tweet 消息超过6 千万条。 虽然许多Web 2.0 网站都是通过自身提供的界面和方式来进行操作的,但是它们通常 也都提供了可通过编程来访问,然后在SharePoint 内部集成的功能。例如,考虑一下通过 Twitter 发送的数量庞大的消息;对于许多公司来说,tweet 消息是有价值的数据,因为它 们代表了集体的一种可做定性和定量分析的虚拟取向。您可以构建一些小应用,把它们作 为涉猎更广的门户网站的组成部分,用来观察一些特定主题的发展动向。另外,您可能希 望把LinkedIn 的档案资料和公司内部的资料整合起来。因为许多Web 2.0 应用和网站都提 第1 章 SharePoint 和云入门 5 供了公开的API,鉴于SharePoint 的协作本性,所以使用它来构建一些有意义的整合是完 全有可能的。 在本书中,您将构建在SharePoint 中运行,但与LinkedIn 和Twitter 整合在一起的应用, 这是利用Web 2.0 的两个例子。 1.1.3 Bing 服务 尽管Windows Azure 为您提供了构建和部署自己的定制服务的平台,不过Bing 还是提 供了一组随时可用的服务。因为我们生活在一个信息饱和的年代,所以具备一些浏览信息 的方式,甚至是具备一些为我们所拥有的信息提供更多背景资料的方式都在变得日益重要。 Bing 提供了一组涉及广泛的服务,范围从搜索到地理位置映射服务,本书对Bing 服 务的使用主要是围绕映射和地理定位服务来进行的。若要访问它们的服务,可以使用Bing 提供的一组丰富的API 来把Bing 功能编程整合到您的应用中。例如,假设在SharePoint 中有一个客户及联系信息的列表,不过您希望能够在地图上标出这些客户,然后为客户来 访提供自动生成的行车路线。您可以整合Bing 和SharePoint,使用Bing 的本地化服务来 提供这种综合体验,这些服务往往既以基于REST(Representational State Transfer,表征状 态转移)的方式,也以基于SOAP(Simple Object Access Protocol,简单对象访问协议)的方式 给出接口。 如前所述,Bing 提供了一组涉及广泛的服务(有些基于浏览器,有些可通过编程访问), 比如图像和搜索服务(Bing 通常为人所知的部分)、新闻、相关搜索(搜索过滤功能)、翻译、 视频和航班状态等。航班状态服务是另一个可通过编程访问的Bing 服务,比如,如果有一 个员工差旅情况列表,那么您可以构建一个查看航班服务状态的小应用,然后把它和 SharePoint 整合起来。作为订阅和使用这些日益重要的数据驱动服务的一种附加方式,这 些服务中的某些可通过Windows Azure Marketplace DataMarket 来启动和管理。 在开发Bing 应用之前,需要先获得开发者密钥,可通过访问开发者门户网站 www.microsoft.com/maps/developers/web.aspx 来实现这一点,您还可以在此找到一些到SDK 文档和代码示例的关键链接。 1.1.4 Microsoft Dynamics CRM Microsoft Dynamics CRM 是一个多语言的客户关系管理(Customer Relationship Management,CRM)软件包,既可部署在自建环境中,也可以部署在云端。CRM 这种提法 有点误导,因为Dynamics CRM 可以管理许多种不同的数据,而不仅限于市场营销数据。 实际上,CRM 是一个可用于很多种数据类型的出色的数据驱动应用,在最新发布的版本 (2011)中,Microsoft 大大增强了Dynamics CRM 的功能,加入了开箱即用的云端功能和通 过XRM 平台使用定制解决方案来扩展自身的功能。 CRM 的强大不仅是由于具有快速创建代表客户数据的“实体”的能力,而且还因为 Dynamics CRM 提供了一组丰富的Web 服务,来帮助您通过其他应用以编程方式访问这一 SharePoint 2010 云计算解决方案 6 数据。这使得您既能够把Dynamics CRM 用于针对的数据驱动和业务流程应用中,也能够 在像SharePoint 这样的协作环境中使用该数据。 在SharePoint 中,可使用多种不同的方法来访问Microsoft Dynamics CRM的Web 服务。 例如,您可以在Web 部件和事件接收器一类的常见SharePoint 工件中使用Web 服务;如 果打算部署基于云的应用,那么也可以使用JavaScript、jQuery 或Silverlight。 1.2 理解云的重要性 至此,您已经了解了云和云计算的概念,以及一些我们会在本书中讨论到的技术,现 在让我们来花上几分钟的时间说一说为什么云如此重要。 云的一个重要好处体现在成本方面,比运作自有的基础设施要便宜。例如,以Windows Azure 为例,您支付的是“使用”费,不需要付出硬件和支持成本,所以最终的情况是您 不需要为只占用20%时间的物品付出100%的费用。这就使得云模型对于各种规模的公司 来说都极具吸引力,因为任何企业都希望在降低IT 成本的同时依然能够保有部署服务和应 用的能力。 云提供的另一个重要好处是速度和灵活性,也就是说,您现在可以以相比过去快得多 的速度来创建和部署应用。例如,利用Windows Azure 的Web 角色(Web Role)的快速供应 能力,我们在几分钟之内就能够完成一个Web 应用的部署。对于诸如Facebook 或 SalesForce.com 一类的许多订阅服务来说,创建并激活账户,然后使用它们的软件,这也 是在几分钟之内就能做到的事情。就内部的各部门应用来说,速度和灵活性带来了极大的 好处,使得您能够释放所有那些被划分到某种基准之下的项目所占用的IT 资源。然而,对 于最终要面向市场的外部应用来说,速度和灵活性霎时变得超级重要起来,使用新的软件 产品还是更新现有的产品,最先进入市场还是后期才进入市场,不同的速度和灵活性会带 来不同的结果。因此,云提供了一种竞争优势,使得企业能够以更快的速度提供软件给用 户使用,而且,在许多情况下可以通过市场以一种货币化的方式来提供。 重用是云的另一个好处。例如,假设您有一个部署在内部的应用,您打算把这一应用 提供给您的合作伙伴使用,云就是一种分享该应用的可行方法。此外,随着支持多种设备 这种需求的不断增长,可重用性已是当务之急—至少在核心的应用代码方面是这种情况。 云提供了部署应用的处所,这些应用可被多种不同的设备装置访问,这些设备装置既可以 是自建的,也可以是基于云的。 另一个好处是挖掘Web 的各种持续创造力的能力。各年龄阶层的、具备各种背景的开 发者都在从事软件开发,他们正在创造一些非常有吸引力的应用和服务,可供订阅使用的 应用和服务越来越多。这些应用常常通过服务(比如基于REST 的服务或WCF 服务)提供给 您,因此与现有的应用整合到一起是很容易的(比如,通过免费的或是付费的订阅许可来使 用服务),您不需要维护任何代码(但必须跟踪这些第三方的更新以确保整合不会失效)。 尽管云有诸多好处,但云同时也带来了一些挑战。例如,云端的身份管理问题与其说 第1 章 SharePoint 和云入门 7 是一门科学,还不如说是一门艺术。随着诸如OAuth 和OpenID 一类技术的不断改进及其 采用程度的频繁上升,越来越多的开发者和应用开始使用开放的标准。此外,有了ADFS 2.0、 Windows Identity Federation (WIF)和Windows Azure 的Access Control Service,您也就有了 许多选择来满足身份管理的需求—这是与云交互的一个非常重要的方面。 使用身份来密切配合工作是一种安全保障,这种做法横跨了多种不同的前端。每个组 织都有核心的数据集需要保护,我们都知道一些这样的事例:诸如信用卡数据一类的信息 被黑客窃取,用于一些不可告人的目的。公司同样需要保护雇员数据、销售数据、预期数 据以及一些其他类型的敏感信息。采用把这些数据置于云端的方式,公司就必须实现一套 不断改进的安全措施和控制做法。 安全性虽然是一个核心问题,不过法规和政策也有可能会禁止公司把它们的数据置于 云端。世界各地都正在付出许多不同的努力,研究法规会给数据的存放带来怎样的影响, 以及公司如何在不违反法规和政策的情况下,在云计算这一范式内管理它们的资源。令人 感兴趣的是,尽管许多组织受制于规定数据存放位置的政策或法律,但与此同时,他们依 然在寻求一些表现数据视图的方式,这样就可以把报表机制置于云端。因此,他们把数据 存放在自建环境中,但为了遵守法规和法律,只给出这些自建环境中的数据的切片视图。 尽管有着这些挑战,云的势头还是无法阻挡。一些公司正快速转向云端,这反过来又 加快了发展的进程。因此,如果您还没有从广泛的意义上去认真地评估云能给组织带来的 帮助,那么现在可能会开始希望这么做。如果不知道该如何起步(特别是在SharePoint 环境 中),那么本书可为您提供帮助:本书介绍了SharePoint 和云的整合方式;阅读本书的过程 就是您在SharePoint 环境中开始实践整合的过程。 1.3 整合云和SharePoint 我们假设在阅读本书之前,您已具备一些关于SharePoint 的知识。本书讨论如何构建 一些示例性的解决方案,这一清单中为数不多的方案都是以某种方式来整合云—使用上 一节中谈到的云技术。现在,您可能想知道的是,整合的连接点会出现在哪些地方。因为 对SharePoint 已有某种程度的了解,所以您知道这个问题的答案涉及面广且深入到各个层 面中,不过,我们还是来尝试着缩减一下范围。 在高层面上,您可以使用许多不同的SharePoint 工件来整合云。例如,如果采用的是 最常见的工件—Web 部件,那么可以构建一些提供了某种级别的与云交互的自定义Web 部件。这可以是一个自定义的Twitter 趋势报表、一些由CRM 在线系统驱动的客户数据, 甚至会是一个诸如LinkedIn 这类网站的个人资料查看器。Visual Studio 2010(以及由开发者 社区源源不断提供的社区工具)为快速开发、调试和部署提供了一组丰富的Web 部件模板, 这使得这一开发过程变得简单起来。 虽然Web 部件是整合的一个连接点,但它并非是唯一的连接点。您还可以使用事件接 收器或工作流来连接和查询基于云的服务或应用,然后通过部署在SharePoint 上的应用来 SharePoint 2010 云计算解决方案 8 利用获得的数据。这方面的一个可能例子是,把诸如销售跟踪器一类的定制服务部署到 Window Azure 中。当事件或工作流活动连接到服务上以查询某个具体的销售数据时,这一 动作随后就会触发SharePoint 其他方面的一些行为。例如,当销售数据低于某一点时,就 可在SharePoint 中为某个特定零售商店创建一个后续任务。Nintex Live 就是现实世界中的 一个这样的例子,查询基于云的服务,然后根据从服务返回的信息,在某个特定方向上推 进工作流活动。 本书提供了许多不同的例子来说明如何整合云和SharePoint。例如,您会了解到如何 使用SQL Azure 来构建商业智能解决方案,以及如何使用Windows Azure 来构建自定义的 服务场景,这些场景使用Excel Services 来维护自建环境中的财务数据。您还会看到一些例 子说明了如何整合Bing Maps 和SharePoint,以根据SharePoint 列表中的数据来提供地理位 置信息;如何把LinkedIn 的个人资料整合到SharePoint 中,如何构建Twitter 趋势报表;以 及如何以ADFS 为手段,联合Windows Azure 的安全性,在自建环境和云端无缝传递声明 并对用户进行身份验证。简而言之,每章内容都是介绍如何整合云的不同方面—可以是 来自Dynamics CRM 的客户信息,也可以是联合安全性—然后分步讲解一些说明了某种 整合模式的易于遵循的解决方案。每章都通过某种方式来利用SharePoint 的不同方面,其 中包括安全性、Web 部件以及诸如Silverlight 或JavaScript 一类的客户端应用。 1.4 搭建开发环境 您可以用两种方式来搭建开发环境。第一种方式是下载一个虚拟机(被称作Information Worker Virtual Machine,或IW VM),在虚拟机中,所有的东西都已安装完毕。Microsoft 创建这一虚拟机的目的是用于学习SharePoint 开发的起始阶段;到目前为止,这是最容易、 也是最不可能失败的搭建开发环境的方式(需要Windows Server 2008 R2 来运行VM)。尽管 您可能会更看重本地化安装带来的开发工作效能,不过在VM 中进行开发工作的一个好处 是,可以在任何希望的时候用快照来存放和恢复工作现状;将来您会意识到这是一个非常 有用的功能。 第二种方式是把需要的所有软件都安装在机器自身上(或者说是本地化,我们有时会这 样提及这种做法)。下面是一些您需要用来搭建开发环境的基准软件: 􀂾 Windows 64 位兼容操作系统(如Windows Server 2008 R2 或Windows 7) 􀂾 SharePoint Foundation 2010 和/或SharePoint Server 2010 􀂾 SharePoint Designer 2010 􀂾 Microsoft Office 2010(专业增强版) 􀂾 Visual Studio 2010 􀂾 .NET Framework 4.0 􀂾 Microsoft Expression Blend(可选,但推荐用于Silverlight 编程) 􀂾 SQL Server 2008(Express 版) 第1 章 SharePoint 和云入门 9 一旦安装上述组件,您就能够从头到尾跟随本书中的代码示例进行学习,这些组件是 在组织机构中安排和进行SharePoint 2010 开发的基本要求。要注意的一点是,在本书的每 个章节中,在某些情况下还需要安装(或注册)其他软件才能完成练习。 我们先谈一下搭建虚拟环境的做法,接着再讨论如何在本地计算机上完成本地化的安 装过程。 1.4.1 搭建虚拟环境 在Windows 2008 R2(64 位)中,可以使用Hyper-V 技术来管理VM。环境是在配置 Windows 操作系统时设置的角色。例如,在安装好Windows Server 2008 R2 之后,可通过 Server Manager 添加Hyper-V 角色。图1-2 给出了Add Roles Wizard 的界面,此向导用来添 加角色。在启用向导之后,可以选中Hyper-V 角色旁边的复选框,Windows 会帮您安装该 角色。请注意,我已经把Hyper-V 角色添加到了计算机中。 图1-2 添加Hyper-V 角色 安装Hyper-V 假设Windows 操作系统已经安装就位,可执行以下步骤来安装Hyper-V。 (1) 单击Start | Administrative Tools | Server Manager。 (2) 在Server Manager 中,滚动到Roles Summary 一栏,然后单击Add Roles,接着从 上述所有软件都已预装到了IW VM 中,您可以免费下载IW VM,有180 天的试用期。 SharePoint 2010 云计算解决方案 10 列表中选择Hyper-V。 (3) Server Manager 需要您完成几个步骤,接受默认选项并单击Next 按钮,直到Install 按钮可用。 (4) 单击Install 按钮完成Hyper-V 的安装。需要注意的是,Windows 会提示重启系统。 重新启动计算机以完成Hyper-V 的安装。 (5) 在安装好Hyper-V 之后,可以添加团队预先准备好的与Hyper-V 兼容的.vhd 文件, 也可以从头开始创建文件。 (6) 要添加现有的镜像,可通过单击Start | Administrative Tools | Hyper-V Manager 来 打开Hyper-V 的嵌入式管理单元(snap-in)。 (7) 在Actions 下面单击New | Virtual Machine,接着指定镜像的名称(Name)和位置 (Location),然后单击Next 按钮。 (8) 接下来,需要给镜像分配内存(RAM)—指定为6 500MB 或更多。 (9) 接受Configure Networking 设置的默认选项,然后单击Next 按钮。 (10) 单击选中Use an existing virtual hard disk 旁边的单选按钮,接着浏览找出所用的 虚拟硬盘,然后单击Finish 按钮。 1.4.2 搭建本地环境 如果希望在本地计算机中安装必备的软件,那么也可以。实现这一做法的方式有好几 种。第一种方式是取得前面提到的所有软件,然后把它们安装在本地计算机上。第二种方 式是使用SharePoint 2010 Easy Setup Script,这一安装脚本会把所有必备软件的试用版都安 装到本地计算机上。可以通过www.microsoft.com/download/en/details.aspx?id=23415 这一地 址来下载该脚本,一旦完成脚本的下载,就可以在启动它之后,喝一杯咖啡(两杯也没问题), 因为该脚本需要花上一段时间来在您的机器上安装上所需的一切。不过,这种简化方式会 按照正确顺序安装所有软件,倒是免去了您自己花费精力来收集所有的软件。 如果选择的是手动安装软件,那么可以安装独立的SharePoint 2010 实例来作为试用环 境,做法如下(因为您要创建的是本书中一些小的解决方案,所以不需要进行多服务器场 (farm)的搭建,这种场更多的是用在生产环境中): (1) 在SharePoint 2010 的DVD 安装盘(或是安装程序所在位置)中单击Setup.exe 文件。 (2) 您会看到Agree to the License Terms 提示,单击“I accept the terms of this agreement” 这一复选框,然后单击Continue 按钮。 (3) 接着,可以选择不同的安装选项。单击Standalone 按钮以启用Standalone 安装方 Chris Johnson 写了一篇很好的博客文章,是关于如何使用Share Point 2010 Easy Setup Script 的,网址为http://blogs.msdn.com/b/cjohnson/archive/2010/10/28/ announcing- sharepoint-easy-setup-for-developers.aspx。 第1 章 SharePoint 和云入门 11 式,SharePoint 接下来就会执行安装过程(这一过程包括了软件的安装过程和配置过程)。 (4) 最初的软件安装过程完成之后,您会看到一个提示框,可在其中选择运行配置向 导,这一向导用来配置诸如服务、内容数据库等一些在第一次使用时需要指定的东西(参见 图1-3)。选中“Run the SharePoint Products and Technologies Configuration Wizard now”这 一复选框,然后单击Close 按钮。关闭此对话框后,会自动调用该配置向导。 图1-3 选择运行配置向导 SharePoint 分步执行10 个步骤来完成配置过程。 (5) 配置过程完成后,您会看到一个Configuration Successful 提示框,单击Finish 按钮。 (6) SharePoint 应该会自动向您提示已创建的独立SharePoint 实例,并且在初次打开时, 会要求选择一种站点类型,并要求设置站点的权限。浏览可用的不同站点模板,但要选择 Team Site,然后单击OK 按钮;接着验证并设置安全选项,在此可以保留默认选项并单击 OK 按钮。这样就创建了站点,站点会在默认的着陆页面中打开(参见图1-4)。 图1-4 在默认的着陆页面中打开站点 SharePoint 2010 云计算解决方案 12 此时,SharePoint 环境就应该已搭建完毕,可随时投入使用。不过,因为要进行的是 云端的开发,所以您会发现,在开始使用某种特定的云技术时,通常需要获取开发者密钥 或创建账户。例如,需要创建LinkedIn 或Twitter 账户,获取Bing Maps 的开发者密钥,创 建Windows Azure 账户或创建Dynamics CRM 账户。如前所述,作为练习的一部分,后续 章节会提供每种情况所需的注册信息。 1.5 创建第一个SharePoint 云应用 在第1 章就构建一个基于云的应用,没有什么方式能比这种安排更能让您找到感觉! 别担心,我们不会一下就构建复杂的应用;这只是一个简单的应用(我们把它命名为Map Me!),它展示了如何整合SharePoint 和Bing Maps。 在开始此练习前,需要获取开发者账户密钥—这是一个简单并且可快速完成的步骤。 首先,登录Bing Maps 门户网站www.bingmapsportal.com,如图1-5 所示,可以使用Live ID 作为现有用户(如果已经有Bing 账户的话)登录,也可以单击Create 按钮来创建新的开发者 账户。 图1-5 使用Live ID 登录或创建新账户 如果单击Create 按钮,那么需要使用Live ID 登录,然后跟随向导指示,添加账户名 称和邮件地址,接着向导会要求接受Bing Maps 的使用协议;单击Save 按钮保存账户资料。 一旦账户可供使用,您就需要获取应用的开发者密钥。在门户主页面中,单击Create or view keys,可以通过输入应用的名称并选择某个特定应用类型来创建密钥(参见图1-6)。 第1 章 SharePoint 和云入门 13 图1-6 创建开发者密钥 在单击Submit 按钮之后,就会得到将在Bing Maps 应用中使用的开发者密钥。 获取了开发者密钥后,完成下面的步骤来创建第一个SharePoint 云应用: (1) 打开Visual Studio 2010,单击File | New Project。 (2) 在Installed Templates 下面,选择Other Project Types | Visual Studio Solutions | Blank Solution。 (3) 为项目提供解决方案的名称(例如MyFirstCloudApplication),然后单击OK 按钮。 (4) 在Visual Studio 创建该解决方案之后,右击这一新的解决方案,然后选择Add | New Project。 (5) 在Add New Project 模板中选择Silverlight Application,提供应用的名称(例如 SimpleBingMap),然后单击OK 按钮。 (6) 出现提示时,选中“Host the Silverlight application in a new or existing Web site in the solution”这一复选框,然后单击OK 按钮。 (7) 右击Silverlight 应用,接着选择Add Reference。在Add Reference 对话框中,单击 Browse 按钮。 (8) 在本地计算机上浏览,找出Microsoft.Maps.MapControl.dll 库,选中后单击OK 按钮。 (9) 右击文件MainPage.xaml,然后选择View Designer。 (10) 把下面以粗体形式显示的代码加入到Silverlight 应用的XAML 视图中: <UserControl x:Class="SimpleBingMap.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft SharePoint 2010 云计算解决方案 14 .Maps.MapControl" mc:Ignorable="d" d:DesignHeight="414" d:DesignWidth="888"> <Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="394" Width="888"> <Grid.ColumnDefinitions> <ColumnDefinition Width="888*" /> <ColumnDefinition Width="314*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition Height="*"/> </Grid.RowDefinitions> <StackPanel Grid.ColumnSpan="2"> <TextBlock Text="Map Me!" FontWeight="Bold" FontSize="14" Width="888" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="12,0,12,0"> <TextBox x:Name="txtbxLatitude" Width="322" Text="Type your latitude here, e.g. 47.7656" FontSize="10"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="12,0,12,0"> <TextBox x:Name="txtbxLongitude" Width="322" Text="Type your longitude here, e.g. -122.9957 " FontSize="10"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="12,0,12,0"> <Button x:Name="btnFindMe" Content="Map It! " Width="65" Click="btnFindMe_Click" /> </StackPanel> </StackPanel> <m:Map CredentialsProvider="Your Developer Key Here. " x:Name="MyMap" Grid.Row="1" Mode="AerialWithLabels" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,14,0,0" Grid.ColumnSpan="2"> <m:Map.Children> <m:MapLayer x:Name="PushPinLayer"/> </m:Map.Children> </m:Map> </Grid> </UserControl> 您的应用现在看起来应该与图1-7 所示内容类似。 第1 章 SharePoint 和云入门 15 图1-7 Silverlight 应用的XAML 视图 (11) 双击“Map It!”按钮(btnFindMe),接着把下面以粗体形式显示的代码加入到 MainPage.xaml.cs 这一文件中: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Maps.MapControl; namespace SimpleBingMap { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } SharePoint 2010 云计算解决方案 16 private void btnFindMe_Click(object sender, RoutedEventArgs e) { //Create a new location comprising latitude and longitude. Location myLocation = new Location(); myLocation.Latitude = Double.Parse(txtbxLatitude.Text); myLocation.Longitude = Double.Parse(txtbxLongitude.Text); //Create a new pushpin to add to the map. Pushpin myPPin = new Pushpin(); myPPin.Width = 7; myPPin.Height = 10; myPPin.Location = myLocation; PushPinLayer.AddChild(myPPin, myLocation, PositionOrigin.Center); //Set the main view of the map using the location with a zoom level. MyMap.SetView(myLocation, 10); } } } 代码段 Ch01_Code.zip/SimpleBingMap.cs 这里的代码相当简单,您正在使用Bing Maps API(Microsoft.Maps.MapControl)来创建 Location 对象。创建的Location 对象有一个Latitude 属性和一个Longitude 属性,设置这两 个属性,然后赋值给PushPin 对象。您还要设置PushPin 对象的其他一些属性,然后再使 用AddChild 方法把PushPin 对象加入到PushPinLayer 中。 (12) 单击F5 键,构建应用并在默认浏览器中调试应用。 (13) 您现在看到的效果应该类似图1-8,在两个文本框中分别输入经度和纬度,然后 单击“Map It!”按钮。 图1-8 应用运行后显示的界面 (14) 在成功构建Silverlight 应用之后,右击项目并选择Open in Windows Explorer,找 第1 章 SharePoint 和云入门 17 出XAP 文件(例如SimpleBingMap.xap)所在位置,然后把文件夹路径复制到剪贴板中。 (15) 打开您的SharePoint 站点,接着创建一个新的文档库,命名为XAPS。一旦创建 好文档库,就单击Add 按钮以添加文档。接着单击Browse 按钮,然后把文件夹路径粘贴 到Choose File to Upload 对话框中。 (16) 在文件上传到新的SharePoint 文档库中之后,右击到XAP文件的链接并选择Copy Shortcut。 (17) 导航至SharePoint 站点的顶层,顶层是在安装和配置SharePoint 时创建的,单击 Site Actions 后,单击Edit Page。 (18) 单击Insert 选项卡,然后单击功能区(Ribbon)中的Web Part 按钮。在Categories 中选择Media and Content,然后单击Silverlight Web Part。 (19) 单击Add 按钮,然后粘贴上传到XAPS 文档库中的XAP 文件的快捷方式。需要 调整一下该Web 部件的大小,可通过单击Edit 按钮编辑Web 部件来做到这一点,把Width 改为900,把Height 改为400。 祝贺您!您的第一个整合了SharePoint 的云应用已经创建完成了。在正确加载之后, Map Me!应用的外观应该是类似于图1-9 所示的内容。诚然,这还是一个Hello World 应用, 不过,它已经能够告诉您,一个简单的云应用能够完成哪些事情。这一应用完全可以扩展 成与SharePoint 列表进行交互,您可以充分利用这一包罗万象的Bing Maps API(本书后面 的章节会这样做)。 图1-9 第一个与SharePoint 整合在一起的云应用的界面 SharePoint 2010 云计算解决方案 18 1.6 小 结 本章向您介绍了云的核心概念,强化了这样的想法:云代表了一个重大的机会,一个 以一种新的并且很具吸引力的方式来进行软件开发的机会。云计算是一个常有争议的概念, 不过就本书来说,我们把云定义成一种对Web 的比喻,而云计算则是表示把Web 当作一 组连接在一起的资源,使用它来构建和部署软件。本章还介绍了一些不同的云技术,比如 Windows Azure、Web 2.0、Bing Maps 和Microsoft Dynamics CRM,这些都是我们在本书中 会重点关注的核心云技术。实际情况是,后续的每一章都会以某种方式来使用这些技术中 的一种,以此作为与SharePoint 进行整合的一个关注点来构建基于云的应用。 对于应用开发来说,云是一个新奇而令人兴奋的所在,是一个充满了潜力的地方。在 开始了解了SharePoint 所能实现的事情之后,您会更加感觉潜力倍增,因为云无疑会在 SharePoint 的未来中扮演一个非常重要的角色。随着Office 365 的日益普及,在短期内就能 看到这一情况的发生。我们希望本书不但能帮助您实现云开发的起步,而且能帮助您开始 进行基于云的解决方案和SharePoint 的整合。 1.7 其他参考资料 下面是其他一些您可能会觉得有用的参考资料: 􀂾 Cloud Computing: A Practical Approach(McGraw Hill,2010),由Velte、Velte 和Elsenpeter 合著。 􀂾 Windows Azure:www.microsoft.com/windowsazure。 􀂾 Windows Azure 免费试用:www.microsoft.com/windowsazure/free-trial/ sharepoint-integration/。 􀂾 Bing Maps 开发者中心:www.microsoft.com/maps/developers/web.aspx。 􀂾 Microsoft Dynamics CRM 概览:http://social.technet.microsoft.com/wiki/contents/ articles/ microsoft-dynamics-crm-overview.aspx。 􀂾 什么是Web 2.0:http://oreilly.com/web2/archive/what-is-web-20.html

>SharePoint 2010云计算解决方案

SharePoint 2010云计算解决方案
作者: (美)福克斯(Fox, S.)
原作名: Professional SharePoint 2010 Cloud-Based Solutions
isbn: 7302295425
书名: SharePoint 2010云计算解决方案
页数: 317
译者: 叶斌
定价: 58.00元
出版社: 清华大学出版社
装帧: 平装
出版年: 2012-9