1.4 Windows SharePoint Service的一些概念

本节将讲述WSS中的主要概念,以作为后续开发的基础,理解这些关键的概念后,对于后期的开发会有很大的帮助。

1.4.1 服务器场

WSS的运行环境可以由多台服务器组成,如数据库服务器、前端Web服务器,这些服务器组成了一个服务器场,如图1-3所示。

图1-3 WSS服务器场示例

MOSS服务器场具有更加复杂的结构,MOSS服务器场中的服务器角色可以分为数据库服务器、前端Web服务器、索引服务器、查询服务器等,如图1-4所示。

图1-4 MOSS服务器场示例

● 数据库服务器:运行MS SQL Server,承载WSS站点的内容数据。

● 前端Web服务器:运行WSS站点页面。直接面对用户的访问,多个前端Web服务器可以实现负载均衡。

● 索引服务器:运行爬网服务,对多个内容源进行索引。

● 查询服务器:提供内容查询服务。

1.4.2 应用程序、网站集和网站

一个应用程序对应一个IIS的网站,它是程序运行文件和身份认证的独立单位。一个应用程序具有自己单独的运行文件,具有单独的web.config文件,可以拥有独立的应用程序池,可以具有单独的身份认证机制。应用程序可以包含多个网站集,网站集是一个数据存储和权限分配的独立单位。每一个网站集可以有单独的内容数据库,网站集之间的用户和权限分配是独立的。

一个网站集可以拥有很多个子网站,网站用来规划内容结构和控制权限。一个网站将页面、文档库和列表组织在一起,可以统一地设置它们的访问权限。应用程序、网站集、网站的关系如图1-5所示。

图1-5 应用程序、网站集和网站的关系

1.4.3 字段类型、网站栏和内容类型

字段类型可以理解为基本的数据类型,如整数、文本、时间等。一个字段类型拥有完整的呈现逻辑。字段类型可以扩展,第4章将详细讲述字段类型的开发。

由字段类型可以创建出栏。字段类型是基本的数据类型,栏就是这些类型的实例。

WSS的栏分为网站栏和列表栏,网站栏可以被网站中的所有列表使用,列表栏只适用于某个列表。通过网站设置可以进入网站栏的管理页面,如图1-6和图1-7所示。列表栏的管理在列表设置页面,如图1-8所示。

图1-6 网站栏管理链接

图1-7 网站栏管理页面

图1-8 列表栏管理页面

内容类型是多个网站栏的集合,可以将它理解成“实体”。内容类型是各种数据的抽象,如日历、任务、联系人等。

1.4.4 列表和文档库

列表可以理解为数据库里的表。这个“表”可以直接在页面上设计,添加各种字段。直接提供数据的添加、编辑、查看页面。

一个列表可以存放多个内容类型,如:同一个列表中可以存放任务和联系人。可以直接给列表添加字段,或者将多个字段组合成一个内容类型,然后将内容类型添加到列表中。

文档库是一种特殊的列表,可以直接在文档库中存放各种文件,如果存放的是Office文件,Office文件可以直接在线编辑保存。列表和文档库中的数据都可以启用版本控制,系统自动保存对数据的每一次修改。

列表、文档库、内容类型和栏的关系如图1-9所示。

图1-9 列表、文档库、内容类型和网站栏的关系

1.4.5 视图和CAML

视图可以理解成数据库的视图,视图将数据源展现成各种形式。WSS的视图可以控制列表的显示,包括显示哪些字段、排序规则、分组规则、显示样式等。

在默认情况下,视图由CAML定义,CAML的全称是Collaborative Application Markup Language,是WSS使用的一种基于XML的语言。WSS使用CAML来定义字段和视图。

CAML除了定义视图的呈现外,还可以用于字段类型HTML输出的定义,第4章将会详细讲解。

1.4.6 Feature

Feature的意思为“功能”。它代表一个WSS的功能点。WSS的功能可以通过Feature来扩展,Feature由XML文件定义,一般由两个文件组成:Feature的定义文件和功能清单文件。Feature定义文件统一存放在服务器的12\TEMPLATE\FEATURES目录下。

1.4.7 WSS解决方案

WSS解决方案是用来打包基于WSS开发的各种程序集、页面、WebPart的一种部署包,一般以 .wsp为文件名后缀。WSS解决方案实际上是一个CAB文件,可以通过管理中心统一部署。部署之后,WSS会将解决方案中的文件自动分发到所有前端服务器,并自动修改站点的配置文件,添加需要的配置项。

手工打包解决方案是一个很烦琐的过程,这里笔者不会讲解手工打包的方法,需要了解的读者可以查阅WSS SDK。

WSPBuilder可以打包程序集、WebPart、Feature、页面文件等,只要目录结构跟12目录一致。WSPBuilder的具体使用请参考它的用户手册,它的最新版本可以到http://www.codeplex.com/wspbuilder下载。