SharePoint 工具扩展的编程模型的概述

更新:2010 年 5 月

在 Visual Studio 2010 中创建 SharePoint 工具扩展时,首先将实现由 SharePoint 工具公开的一个或多个扩展性接口。 在大多数情况下,您还将使用 SharePoint 工具提供的其他类型来实现扩展中的功能。 在某些方案中,您还可以使用 Visual Studio 和 SharePoint 提供的其他对象模型中的类型。 您必须了解每个对象模型的用途以及如何将这些对象模型结合使用,以创建 SharePoint 工具扩展。

通过实现扩展性接口来扩展 SharePoint 工具

Visual Studio 使用 .NET Framework 4 中的 Managed Extensibility Framework (MEF) 为 SharePoint 工具提供扩展性模型。 MEF 是一个在 System.ComponentModel.Composition 程序集中实现的 API,它使应用程序能够公开扩展性点并在运行时发现和加载扩展。 有关 MEF 的更多信息,请参见 Managed Extensibility Framework 概述

若要扩展 SharePoint 工具,请实现由 Visual Studio 公开的一个或多个扩展性接口。 必要时,您还必须将 System.ComponentModel.Composition.ExportAttribute 和其他特定于 SharePoint 工具的特性应用于接口实现。 下表列出了一些接口,可实现这些接口以扩展 SharePoint 工具。

接口

说明

ISharePointProjectItemTypeProvider

实现此接口可定义新类型的 SharePoint 项目项。 有关示例,请参见如何:定义 SharePoint 项目项类型

ISharePointProjectItemTypeExtension

实现此接口可扩展已在 Visual Studio 中安装的 SharePoint 项目项类型。 有关示例,请参见如何:创建 SharePoint 项目项扩展

ISharePointProjectExtension

实现此接口可扩展 SharePoint 项目。 有关示例,请参见如何:创建 SharePoint 项目扩展

IDeploymentStep

实现此接口可定义一个新的可在部署或撤消 SharePoint 项目项时执行的部署步骤。 有关示例,请参见演练:为 SharePoint 项目创建自定义部署步骤

IExplorerNodeTypeExtension

实现此接口可在“服务器资源管理器”窗口中的“SharePoint 连接”节点下展开现有节点。 有关示例,请参见如何:扩展服务器资源管理器中的 SharePoint 节点

IExplorerNodeTypeProvider

实现此接口可在“服务器资源管理器”窗口中的“SharePoint 连接”节点下定义新类型的节点。 有关示例,请参见如何:扩展服务器资源管理器中的 SharePoint 节点

IFeatureValidationRule

实现此接口可定义自定义功能验证规则。 有关示例,请参见如何:为 SharePoint 解决方案创建自定义功能和包验证规则

IPackageValidationRule

实现此接口可定义自定义包验证规则。 有关示例,请参见如何:为 SharePoint 解决方案创建自定义功能和包验证规则

在实现 SharePoint 工具扩展后,您必须在 Visual Studio 扩展 (VSIX) 包中部署扩展程序集,才能允许 Visual Studio 发现和加载该扩展。 有关更多信息,请参见在 Visual Studio 中部署 SharePoint 工具扩展

了解在 SharePoint 工具扩展中使用的对象模型

在创建 SharePoint 工具扩展时可使用多种对象模型:

  • SharePoint 工具对象模型。 此对象模型提供了扩展性接口(可实现这些接口以创建 SharePoint 工具扩展)和其他相关类型。

  • Visual Studio 自动化对象模型和集成对象模型。 使用这些对象模型可访问 SharePoint 工具对象模型范围之外的 Visual Studio 功能。

    提示

    利用 SharePoint 项目服务,可以将 SharePoint 工具对象模型中的一些对象转换为 Visual Studio 自动化对象模型和集成对象模型中的对象,或进行相反的转换。 有关更多信息,请参见在 SharePoint 项目系统类型和其他 Visual Studio 项目类型之间进行转换

  • SharePoint 服务器对象模型和客户端对象模型。 使用这些对象模型可从 SharePoint 工具扩展的上下文中修改 SharePoint 网站或检索 SharePoint 网站中的数据。

SharePoint 工具对象模型

每个 SharePoint 工具扩展都使用 SharePoint 工具对象模型中的类型来定义扩展的核心行为和功能。 下表描述此对象模型中包含的命名空间。

程序集

命名空间

说明

Microsoft.VisualStudio.SharePoint.dll

Microsoft.VisualStudio.SharePoint

包含用于扩展和自动化 SharePoint 项目系统的类型。 例如,您可以扩展内置 SharePoint 项目和项目项,也可以创建自己的项目项。 有关更多信息,请参见扩展 SharePoint 项目系统

Microsoft.VisualStudio.SharePoint.Deployment

包含用于扩展 SharePoint 项目的部署过程(例如,创建您自己的部署步骤和部署配置)的类型。 有关更多信息,请参见扩展 SharePoint 打包和部署

Microsoft.VisualStudio.SharePoint.Explorer

包含用于在“服务器资源管理器”窗口中的“SharePoint 连接”节点下展开节点或定义新类型的节点的类型。 有关更多信息,请参见扩展服务器资源管理器中的“SharePoint 连接”节点

Microsoft.VisualStudio.SharePoint.Features

包含用于访问 SharePoint 项目中的功能定义的类型。

Microsoft.VisualStudio.SharePoint.Packages

包含用于访问 SharePoint 解决方案中的包定义的类型。

Microsoft.VisualStudio.SharePoint.Validation

包含用于为 SharePoint 项目自定义功能和包验证行为的类型。 有关更多信息,请参见如何:为 SharePoint 解决方案创建自定义功能和包验证规则

Microsoft.VisualStudio.SharePoint.Commands.dll

Microsoft.VisualStudio.SharePoint.Commands

包含用于创建自定义 SharePoint 命令的类型。 SharePoint 命令是一个用于从 SharePoint 工具扩展中调入 SharePoint 服务器对象模型的方法。 有关更多信息,请参见调入 SharePoint 对象模型

Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll

Microsoft.VisualStudio.SharePoint.Explorer.Extensions

包含可用于获取有关内置“服务器资源管理器”节点的信息的类型,这些节点表示 SharePoint 网站上的各个组件,如表示列表、字段或内容类型的节点。 有关更多信息,请参见扩展服务器资源管理器中的“SharePoint 连接”节点

Visual Studio 自动化对象模型

Visual Studio 自动化对象模型提供了可用于自动化 Visual Studio 项目和 IDE 的 API。 使用 Visual Studio 对象模型可执行与项目相关的任务(非 SharePoint 项目专用任务),或执行 Visual Studio 中的其他常规自动化任务。 虽然从传统上说,此对象模型通常在 Visual Studio 外接程序和宏中使用,但您也可以在 SharePoint 工具扩展中使用它。

EnvDTE.dll 程序集中定义了 Visual Studio 自动化对象模型的主要部分。 EnvDTE80.dll、EnvDTE90.dll 和 EnvDTE100.dll 程序集提供了 Visual Studio 2005、Visual Studio 2008 和 Visual Studio 2010 中引入的其他功能。 这些程序集是 Visual Studio 2010 附带的。

有关自动化对象模型的更多信息,请参见扩展 Visual Studio 环境自动化与扩展性参考

Visual Studio 集成对象模型

集成对象模型提供了一些 API,可以使用这些 API 通过创建 VSPackage 来向 Visual Studio 中添加功能。 VSPackage 是一个模块,它通过提供自定义功能(如工具窗口、编辑器、设计器、服务和项目)来扩展 Visual Studio IDE。

若要添加将用于内置 SharePoint 工具的新 Visual Studio 功能,则可以使用集成对象模型。 例如,如果创建一个表示 SharePoint 网站的自定义操作的自定义 SharePoint 项目项,则也可以创建一个实现该自定义操作的设计器的 VSPackage。 通过在**“解决方案资源管理器”**中将一个上下文菜单项添加到表示自定义操作的项目项中,可以将设计器与自定义操作相关联。 开发人员可以通过右击自定义操作项目项来打开相应的设计器。

Visual Studio SDK 附带的一组程序集中定义了此对象模型。 此对象模型中的一些主程序集包括 Microsoft.VisualStudio.Shell.dll、Microsoft.VisualStudio.Shell.Interop.dll 和 Microsoft.VisualStudio.OLE.Interop.dll。

有关集成对象模型的更多信息,请参见 Visual Studio Development Environment ModelVisual Studio SDK Reference

SharePoint 对象模型

SharePoint 工具扩展可以使用 SharePoint API 来修改 SharePoint 网站或从 SharePoint 网站检索数据。 Microsoft SharePoint Foundation 2010 和 Microsoft SharePoint Server 2010 提供了两个不同的对象模型:服务器对象模型和客户端对象模型。

可以在 SharePoint 工具扩展中使用任一对象模型中的 API,但在 SharePoint 工具扩展的上下文中,每个对象模型均有各自的优点和缺点。 有关更多信息,请参见调入 SharePoint 对象模型

对象模型

说明

服务器对象模型

通过服务器对象模型,可以访问 Microsoft SharePoint Foundation 2010 和 Microsoft SharePoint Server 2010 以编程方式公开的所有功能。 此对象模型旨在供在 SharePoint Server 上运行的 SharePoint 解决方案使用。 Microsoft.SharePoint.dll 程序集中定义了此对象模型的大部分内容。 有关服务器对象模型的更多信息,请参见 Using the SharePoint Foundation Server-Side Object Model(使用 SharePoint Foundation Server 端对象模型)。

客户端对象模型

客户端对象模型是服务器对象模型的子集,可用于从远程客户端或服务器与 SharePoint 数据进行互操作。 它旨在将执行常规任务时必须执行的往返次数减至最小。 Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll 程序集中定义了客户端对象模型的大部分内容。 有关客户端对象模型的更多信息,请参见 Managed Client Object Model(托管客户端对象模型)。

请参见

概念

调入 SharePoint 对象模型

Visual Studio Development Environment Model

使用 SharePoint 项目服务

其他资源

扩展 Visual Studio 中的 SharePoint 工具

修订记录

日期

修订记录

原因

2010 年 5 月

新增了与 SharePoint 工具对象模型公开的 MEF 接口有关的详细信息。

信息补充。