构建基块:功能

上次修改时间: 2009年12月22日

适用范围: SharePoint Foundation 2010

本文内容
功能的对象模型
用于功能的 XML
与功能相关的区域
有关功能的详细信息

功能是包括了 Microsoft SharePoint Foundation 中功能的一项或多项扩展的容器。功能包含 Feature.xml 文件和一个或多个元素文件。这些 XML 文件也称为功能定义。

功能可以包含模板、页面、列表定义、事件处理程序、工作流、 自定义项和其他对象。包含功能的目录还可能包含其他资源文件,例如,页面、图像、ECMAScript(JavaScript、JScript) 文件或级联样式表 (CSS)。一个功能也可能依赖已在更大范围内应用的另一个功能。例如,作用范围为网站级别的功能可以依赖作用范围为网站集级别的功能。但是,在较高范围级别激活的功能不能依赖在较低范围级别激活的功能。

功能还可以包含功能接收器。这些接收器是程序集,它们包含安装、卸载、停用或升级功能时运行的代码。有关功能接收器的详细信息,请参阅Feature 事件

  • 服务器场 – 功能将在服务器场中提供。

  • Web 应用程序 – 功能将在 Web 应用程序中提供。

  • 网站集 – 功能将在网站集中提供。

  • 网站 – 功能将在单个网站中提供。

功能的对象模型

可通过使用 SharePoint Foundation 对象模型来控制功能。其中包括查找关于功能的信息、检索已安装功能的列表以及确定激活依赖关系。通过使用对象类型,可使用下面的类来使用功能。

Microsoft.SharePoint 命名空间

  • SPFeatureScope – 可为功能指定的不同范围的枚举。其中包括 Farm、WebApplication、Site 和 Web。

Microsoft.SharePoint.Administration 命名空间

用于功能的 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>

与功能相关的区域

构建基块:解决方案

构建基块:内容类型

构造块:列表和文档库

有关功能的详细信息

使用功能

Feature 事件

Feature.xml 文件

How To: Create a Simple Feature