对于程序员来说,基于 SharePoint 的开发有着众多的途径,但是,还是应该从功能 - Feature 开始。
MSDN 中的定义如下:
A feature is a package of Windows SharePoint Services elements that can be activated for a specific scope and that helps users accomplish a particular goal or task.
Feature 是包含 SharePoint 中元素的包,可以在特定的范围激活,帮助用户完成特定的目标或人物。
从 WSS3.0 开始,Feature 提供了一种定义站点元素和增加它们到站点或者站点集中的机制,定义在 Feature 中的元素类型包括:菜单命令、链接命令、页模板、页实例、列表定义、列表实例、事件处理器、工作流、WebPart 等。
从物理文件的角度来说, Feature 是通过一个目录来组织的,这个目录定义在 Web Application 的特定位置中,其中包含一个或者多个 CAML ( Collaborative Application Markup Language ) XML 文件,按照惯例,每一个 Feature 目录中包含一个名为 feature.xml 的清单文件,其中描述这个 Feature 的高级属性,例如:ID 和用户友好的标题等。
在这个 feature.xml 文件的后面,一个 Feature 通常包含一个或者多个附加的 XML 文件,例如,elements.xml 文件,其中定义了 Feature 中实际的元素。feature 的目录中也会包含其他类型的文件,像列表的定义或者页的模板,或者图片,js 脚本和 css 样式表文件。
Feature 作为标准的功能集合成为 SharePoint 中的一个部分,每一个 Feature 有独立的目录。一旦 Feature 被安装到 SharePoint 中之后,管理员可以在站点设置的页面中使用管理员面访问这个 Feature 并激活。
自定义的 Feature 允许开发人员创建可以在站点或者站点集中激活的一个或者多个元素,SharePoint 甚至提供开发人员定义特殊的称为 Site Defintions 的能力来提供整个站点的蓝图。Site Defintions 允许开发人员定义站点的每一个方面,包括商标,初始的列表,使用的 Feature 等等。
在 Visual Studio 2010 中,当创建 SharePoint 项目之后,VS 将会帮助我们创建和维护这个 feature.xml 文件。
在项目中将会包含一个名为 Features 的文件夹,如果所示:
其中包含的 Feature 1 就是 Feature 文件。