构建基块:功能
上次修改时间: 2009年12月22日
适用范围: SharePoint Foundation 2010
本文内容
功能的对象模型
用于功能的 XML
与功能相关的区域
有关功能的详细信息
功能是包括了 Microsoft SharePoint Foundation 中功能的一项或多项扩展的容器。功能包含 Feature.xml 文件和一个或多个元素文件。这些 XML 文件也称为功能定义。
功能可以包含模板、页面、列表定义、事件处理程序、工作流、 自定义项和其他对象。包含功能的目录还可能包含其他资源文件,例如,页面、图像、ECMAScript(JavaScript、JScript) 文件或级联样式表 (CSS)。一个功能也可能依赖已在更大范围内应用的另一个功能。例如,作用范围为网站级别的功能可以依赖作用范围为网站集级别的功能。但是,在较高范围级别激活的功能不能依赖在较低范围级别激活的功能。
功能还可以包含功能接收器。这些接收器是程序集,它们包含安装、卸载、停用或升级功能时运行的代码。有关功能接收器的详细信息,请参阅Feature 事件。
服务器场 – 功能将在服务器场中提供。
Web 应用程序 – 功能将在 Web 应用程序中提供。
网站集 – 功能将在网站集中提供。
网站 – 功能将在单个网站中提供。
功能的对象模型
可通过使用 SharePoint Foundation 对象模型来控制功能。其中包括查找关于功能的信息、检索已安装功能的列表以及确定激活依赖关系。通过使用对象类型,可使用下面的类来使用功能。
Microsoft.SharePoint 命名空间
- SPFeature – 表示功能的对象。功能集合存储在 SPFeatureCollection 对象中。可通过使用 SPWebService、SPWebApplication、SPSite 和 SPWeb 对象的 Features 属性来访问 SPFeatureCollection。如果功能出现在集合中,则该功能已在指定的范围内激活。
- SPFeatureProperty – 表示 SPFeature 对象的单个属性的对象。属性集合存储在 SPFeaturePropertyCollection 对象中。可使用 SPFeature 对象的 Properties 属性来访问 SPFeaturePropertyCollection 对象。
- SPFeatureScope – 可为功能指定的不同范围的枚举。其中包括 Farm、WebApplication、Site 和 Web。
- SPFeatureDependency – 表示被另一个功能所依赖的功能的对象。被另一个功能所依赖的功能集合存储在 SPFeatureDependencyCollection 对象中。可使用 SPFeatureDefinition 对象的 ActivationDependencies 属性来访问 SPFeatureDependencyCollection 对象。
Microsoft.SharePoint.Administration 命名空间
- SPFeatureDefinition – 表示功能的基本定义的对象,包括名称、范围、ID 和版本。功能定义集合存储在 SPFeatureDefinitionCollection 对象中。可使用 SPFarm 或 SPSite 对象的 FeatureDefinitions 属性来访问 SPFeatureDefinitionCollection 对象。
- SPElementDefinition – 表示在激活或使用功能时提供的元素的对象。元素定义集合存储在 SPElementDefinitionCollection 对象中。可使用 SPFeatureDefinition 对象的 GetElementDefinitions(CultureInfo) 方法来访问 SPElementDefinitionCollection 对象。
用于功能的 XML
功能主要是通过使用两个 XML 文件(Feature.xml 文件和功能元素文件)来构造的。这两个文件定义了范围、依赖关系以及将部署到前端 Web 服务器的任何相关文件。
功能元素清单文件
Feature.xml 文件用于指定支持功能的程序集、文件、依赖关系或属性的位置。ElementManifest 元素(功能) 元素指向定义功能的随附功能清单文件。有关用于属性的值的详细信息,请参阅 Feature.xml 文件。基本的 Feature.xml 文件如下所示:
<Feature Title="Feature Title"
Scope="FeatureScope"
Id="GUID"
xmlns="https://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="FeatureManifestFileName.xml" />
</ElementManifests>
</Feature>
功能元素文件
功能元素文件可以具有任何名称。定义 Feature.xml 文件时,您必须引用 ElementManifest 元素(功能) 元素中的文件名。此文件可包含 CustomAction 元素 元素、用户界面自定义、功能区自定义和许多其他自定义。有关该文件的结构的详细信息,请参阅功能架构。功能元素文件的示例如下。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<CustomAction Id="Ribbon.Library.Actions.AddAButton"
Location="ViewToolbar"
RegistrationId="101"
RegistrationType="List"
Title="Add a Ribbon Button">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.Library.Actions.Controls._children">
<Button Id="Ribbon.Library.Actions.Controls.NewRibbonButton"
Command="NewRibbonButtonCommand"
Image16by16="/_layouts/images/FILMSTRP.GIF"
Image32by32="/_layouts/images/PPEOPLE.GIF"
LabelText="Hello World"
TemplateAlias="o2" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler
Command="NewRibbonButtonCommand"
CommandScript="javascript:alert('Hello, world');" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
</Elements>