代码改变世界

Inside Microsoft SharePoint 2010 简译(1): SharePoint 2010开发者路线图

2013-05-09 02:21  程序开发助手  阅读(1166)  评论(2编辑  收藏  举报

早在2011年时候,就想过要翻译这书SharePoint的经典之作,但是最终还没坚持下来。时隔两年,再次提笔,这次一定要坚持翻完。由于是第一次翻译,加上本人水平有限,不免有错误及翻译不当的地方,还请各位多提宝贵意见及勘误。您的支持,是对我最大的支持及鼓励。

 

第一章 SharePoint 2010开发者路线图

除非你不问世事,或者是去搞云计算了,否则你一定已经注意到了SharePoint变得越来越火了。在过去短短的几年时间里,SharePoint的销售额就已经超过了数10亿美金。可以毫不夸张的讲,SharePoint已经迈进了主流软件产品的行列。每天都有全球数百万的用户在使用SharePoint, 这些用户不仅包括普通的业务员,一线经理,企业高管,还包括网站管理员,系统管理员以及开发人员。

截止这一本书出版时(2011年),微软共发布了4个版本的SharePoint,详见表1-1。每次发布都会包含两个产品,一个是仅提供核心功能的免费版本,另一个则是在其基础之上增加很多功能的商业版本。收费版本,以服务器端及客户端访问许可的方式出售。

年份

内核版本

商业版本

2001

SharePoint Team Services

SharePoint Portal Server 2001

2003

Windows SharePoint Services 2.0

Microsoft SharePoint Portal Server 2003

2007

Windows SharePoint Services 3.0

Microsoft Office SharePoint Server 2007

2010

Microsoft SharePoint Foundation

Microsoft SharePoint Server 2010

SharePoint 2001提供了一个,允许普通用户根据需求,自助创建站点、列表以及文档库的环境。这个环境是以数据驱动为导向,并基于Sql Server实现的。通过在数据库中,增加记录来跟踪站点及列表的创建。但是这个版本有一些先天性的不足。首先,对站点进行自定义的过程非常的繁琐。其次,上传到文档库中的文件,被存放在前端服务的硬盘上。这导致无法通过增加服务器场的前端服务器来对其进行扩展。

SharePoint 2003, 是第一个基于 .Net Framework 及Asp.net 来构建的版本。 由此,开发人员可通过Web Part及Event Handlers(事件处理器)来扩展SharePoint。此外,这个版本还修改了文档库的实现机制,将文件存放到后端的数据库,而不在是前端服务的硬盘上。这一改动,使得通过增加服务器场的前端服务器,来扩展SharePoint变成了可能。

SharePoint 2007在其基础架构上,引入许多新的概念。这些概念包括站点列,内容类型,features 以及solution packages。微软同进还增强了SharePoint与Asp.net之间的集成,使得Asp.net开发人员可以使用他们所熟悉的Asp.net组件,如模板页,用户控件,navigation providers,authentication providers, 自定义HttpModule等来扩展SharePoint。

SharePoint 2010是SharePoint的第四个版本,也是本书出版时的最新版本。它包括Microsoft SharePoint Foundation(内核、免费版本)和Microsoft SharePoint Server 2010(商业版本)。这个章节的主要目标是让您对SharePoint有一个较高层次的认识。除此之外,你还将学习到SharePoint Server是如果通过扩展SharePoint Foundation,来为增加额外的功能及商业价值。

SharePoint Foundation

 

SharePoint Foundation在内核层次上对SharePoint2007做了很大的改动。对于使用过2007的用户而言,它在浏览器上的用户体验有了一个质的的飞跃。2007的UI已经过时了,它的UI设计完全没有遵循当前的HTML标签,甚至没有包含任何web 2.0的概念。这些限制,严重的影响了它的可访问性及跨浏览器特性。2007在用户体验上的最大的败笔可以总结为两点:没有必要的服务端回发,莫名奇妙的页面跳转。

SharePoint 2010通过引入新的以Ajax驱动的UI,极大的增强了用户体验。SharePoint 2010的页面通过借助JavaScript的异步访问,消除了不必要的服务端回发。SharePoint 2010还通过inline editing和模式对话框消除了莫名奇妙的页面跳转。最后,SharePoint 2010还通过引用服务端Ribbon来增强用户体验。借助服务端Ribbon, 用户不必离开当前页面,便可查找和执行大量的上下文命令。

SharePoint 2010除了提升用户体验外,还带来了其它大量的增强点。表1-2列出了一些对于SharePoint 2007的开发人员来讲,比较感兴趣的点。这些主题将贯穿整本书。

表1-2:SharePoint 2010针对开发人员的增强点

增强点

优势

服务运用程序架构

重新设计架构,可方便的跨运用程序或服务器场共享资源

Windows PowerShell 的支持

可以直接使用PowerShell(windows上的管理脚本)来管理SharePoint

Feature 的版本化及升级

Feature也直接版本化及升级了

基于Visual Studio 2010的SharePoint 2010开发工具

一流的SharePoint开发体验

纱箱解决方案

可以在站点集级别部署解决方案

New features for throttling lists

and controlling

query execution

通过控制列表数量及低效的查询,提高服务器场的稳定性

New events for sites, lists, and

workflows

允许开发人员监听更多的事件

LINQ to SharePoint provider

可以直接使用Linq访问List的数据

REST-based access to SharePoint

list items

可使用基于REST风格的Web 服务跨网络访问SharePoint

Client-side object model

在跨网络时使用.net, Silverlight,JavaScript 访问SharePoint,仍然可利用SharePoint对象模型

Enhanced support for integrating

Silverlight applications

可以方便的开发和部署Silverlight

Claims-based security

新的认证模式,可方便的扩展外面用户的可访问性

Business Connectivity Services

(BCS) and external lists

增强的可读写BCS

.NET Assembly Connectors for

BCS

可以方便与任何数据源集成

SharePoint Foundation Architecture

从本质上讲,SharePoint Foundation 只是一个供给引擎而已。它的设计理念,其实就是利用基于Web的模板来创建站点,列表,文档库并在里边存储和管理内容。模板被用于创建站点以及站点内的各种元素,例如列表,页面及web part.

SharePoint 对于面临创建及管理大量网站的企业及组织而言,尤其有用。因为它显著的减少了所需做的工作。一个IT管理员,甚至是一个普通的业务人员,都可以轻松在一分钟内,通过在浏览器里点点鼠标来创建一个基于SharePoint的网站。创建网站的内容如列表或页面,也如创建站点一样简单。

SharePoint会通过添加或修改数据库记录,来处理好所有创建站点及内容的细节。数据库管理员也不需求去创建新的数据库或数据表。Asp.net开发人员也不需要创建新的网站来提供用户接口。系统管理员,也不需要在前端服务器上复制任何文件,或对IIS进行配置。这就是SharePoint的魅力所在。

SharePoint的架构被特意的设计成在服务器场内运行。图1-1,展示一个具有两个Web前端加一个数据库服务器的简单服务器场架构。在具有多个前端服务器的应该场景中,一般都需要有一个网络负载均衡来处理HTTP的请求,将请求分发到适当的web前端服务器。

clip_image002

图1-1:SharePoint通过设计具有多前端的Web服务器场来实现其可扩展性

SharePoint Foundation 和 SharePoint Server 2010都只有64位的版本,可以被安装到64位的Windows Server 2008 或 Windows Server 2008 R2。如果是搭建开发环境的话,也可以把它们安装到64位的客户端操作系统,比如Windows 7 或 Windows Vista。

SharePoint 2010借助前端Web服务器上的IIS 7来监听Http请求,同时使用IIS和应用程序池架构来管理服务端的工作进程。SharePoint 2010的运行时环境是作为一个服务端的进程来运行的,这个进程的名称为w3wp.exe,它是由IIS的运行程序池启动和执行的。详情请见图1-2,从这个图片,可以发现SharePoint是构建在.NET Framework 3.5 和 ASP.NET 3.5 Service Pack 1之上的。

clip_image004

图1-2: SharePoint运行时被加载到运行ASP.NET 3.5的IIS 应用程序池中

SharePoint 2007是构建在.net 3.0之上的,并且也可以通过修改Web前端服务器的配置,来使其支持.net 3.5。但是由于各方面的原因,实现这个配置其实是非常困难的。因此,大部的SharePoint开发,都没有使用到.net 3.5所引入的新开发优势。相比SharePoint 2007,SharePoint 2010天生就支持.net 3.5,以及3.5所引入的新特性,比如Ajax, Linq还有Silverlight。本收假设大部分从07迁移到10的SharePoint开发,都是第一次使用.net 3.5的新特性。

同时,你还应该注意到,SharePoint 2010的最初版本,并不支持.net 4.0。直到撰写本书为止,微软还尚未发布任何消息,称SharePoint将支持.net 4.0。

SharePoint Farms (SharePoint服务器场)

所有的SharePoint部署,都是基于服务器场的概念来部署的。简单来说,服务器场就是一台或多台服务器协同工作,一同为客户提供SharePoint相关功能。在一些比较简单的应用场景下,你可将所有SharePoint相关的服务及组件安装并配置到单台服务器上。在真实的生产环境中,一个典型服务器场,都会包含一台独立的专用的Sql Server数据库服务器,同时还包含多台前端服务器,如图1-3所示。在稍后的章节,你还将看到,一个服务器场,除了包含一个数据库服务器,多台前端服务器外,也还可以包含一个或多个应用程序服务器。

clip_image006

图1-3: 你可以使用单服务器场的模式来搭建开发环境

每个SharePoint服务场,都运行着一个唯一的称之为配置数据库的数据库。每当创建新的服务器场时,SharePoint都会创建一个配置数据库,并来用保存服务场级别的配置信息。例如,配置数据库保存着服务场包含的Web前端服务器信息,同时还保存对服务器常具有管理权限的用户信息。

在搭建开发环境时,最好是在单一服务器场上安装和配置。记住,你可以选择在客户端操作系统 (如Windows 7)上安装和配置SharePoint。如果你一定要在客户端操作系统上搭建开发环境的话,最佳实践是在64位Windows 7构建。

如果工作环境允许的话,还是应当考虑在64位的Windows Server 2008 或 Windows Server 2008 R2.安装SharePoint 2010。一种做法是直接在物理机的安装SharePoint 2010。另一个比较受欢迎的做法是在虚拟机上安装SharePoint 2010。你可以通过安装Windows Server 2008 R2并配置Hyper-V,来安装虚拟机。Hyper-V允许你创建虚拟机,并在虚拟机里安装64位的Windows Server 2008 R2 和SharePoint Server 2010。

在服务器端操作系统(比如Windows Server 2008 R2)上搭建SharePoint开发环境,具有一个关键的优势,那就是可以安装和配置活动目录,以便于更一步的模拟真实的生产环境。图1=3展示了安装在SharePoint开发环境上的软件层次结构。

作为一个SharePoint开发人员,请一定要记住,你面临的服务器场,将可能是各种各样配置及结构的。虽然你多半是都是在单一服务器上开发及测试代码的,但它几乎不会是你的代码即将被部署到的服务器场类型。如果你认为生产环境服务器场和开发环境差不多,那你就大错特错了。

许多已经投入到SharePoint开发的公司,都会把它们的服务器场划分为三类。

1. 开发服务器场:开发人员在这个环境开发并调试

2. Staging服务器场 : 模拟真实的生产环境,并用来测试SharePoint解决方案。一般情况下,不会在Stage环境中的服务器上安装开发工具。一旦SharePoint解决方案在Stage上通过测试,它便可以部署到生产环境上了。

3. 生产服务器场: 最终用户真正使用的环境。