使用 Business Connectivity Services 创建基于代码的高级解决方案

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

本文内容
BCS 的可编程性和扩展性
使用 Business Connectivity Services 的基于代码的高级端到端解决方案的类型
Office 加载项(预部署的元数据)
Office 加载项(自我包含)
Office 加载项(仅联机)
Outlook 加载项(自我包含)
Silverlight 应用程序

您可以通过若干种方式扩展 Microsoft Business Connectivity Services (BCS) 和创建自定义解决方案。本主题概述基于代码的高级解决方案,并演示通过使用 Microsoft Business Connectivity Services (BCS) 开发、打包和部署各种基于代码的高级解决方案而所需执行的一些步骤。

BCS 的可编程性和扩展性

Business Connectivity Services 提供很多可交付丰富的端到端解决方案的本机功能。Business Connectivity Services 还是一个可编程平台,从而使您可以进一步扩展 Business Connectivity Services 以创建自定义解决方案。

可创建的三种 Business Connectivity Services 解决方案类型是:

  • 使用本机 Business Connectivity Services 功能的简单解决方案

  • 中间声明性解决方案

  • 基于代码的高级解决方案

有关不同类型的解决方案的详细信息,请参阅可使用 BCS 创建的解决方案的类型

本主题重点介绍由开发人员编码的基于代码的高级解决方案。这些解决方案的范围:从在客户端和服务器上运行代码组件的丰富的端到端解决方案,到可供声明类型解决方案的高级用户使用的可重用 Business Connectivity Services 组件。

您可以创建的主要组件是 Microsoft Silverlight 应用程序、自定义服务器组件(例如 Web 部件)和 Microsoft Office 加载项。Office 加载项可以设计为仅在联机从外部系统检索外部数据时运行,也可以设计为能够在以联机和脱机方式从 Business Connectivity Services 胖客户端缓存检索数据时运行。

这种设计中的一个重要区分因素是代码检索外部数据所依据的对象模型。

基于代码的可重用 BCS 组件

除了开发端到端的 Business Connectivity Services 解决方案以外,您还可以为要雇佣的有经验的用户创建可重用的 Business Connectivity Services 组件。以下是这类组件的示例:

  • 外部内容类型(受 Microsoft .NET 连接程序集支持)

  • 自定义 Web 部件

  • 自定义工作流活动

  • 基于代码的自定义操作

  • 自定义字段类型(显示非平面数据结构)

  • 自定义外部数据部件

使用 Business Connectivity Services 的基于代码的高级端到端解决方案的类型

您可以创建运行在最终用户的客户端计算机上的客户端组件、基于浏览器和运行在服务器上的自定义服务器组件,也可以创建跨服务器和客户端的端到端解决方案。

对于客户端组件,您可以选择创建 Microsoft Office 加载项或 Silverlight 应用程序。

表 1 显示不同的客户端解决方案类型和服务器解决方案类型。

表 1. BCS 客户端解决方案类型和服务器解决方案类型

解决方案类型

数据访问模式

BCS 打包要求

对象模型

Microsoft Office 加载项(预部署的元数据)

联机或脱机

使用已部署的元数据和订阅;使用 Microsoft Visual Studio 打包自定义代码。

BDC

Microsoft Office 加载项(自我包含)

联机或脱机

通过 BCS 数据解决方案使用打包的元数据和订阅;使用 Visual Studio 打包自定义代码。

BDC

Microsoft Office 加载项(仅联机)

仅联机

使用 Visual Studio 打包自定义代码。

BDC 或客户端对象模型

Microsoft Outlook 加载项(自我包含)

联机或脱机

BCS 解决方案包

Outlook

Silverlight 应用程序

仅联机

不适用

客户端对象模型

自定义服务器组件

仅联机

不适用

SharePoint 列表 (SPList) 对象模型

图 1 中的信息可帮助您决定要创建哪种解决方案。在决定想要创建的解决方案类型之后,请参见对应于相应解决方案类型的那一部分说明。

图 1. 用于选择解决方案类型的流程图

选择解决方案类型的流程图

Office 加载项(预部署的元数据)

说明

使用 BCS API 访问 BCS 客户端缓存数据的 Visual Studio 2010 中的 Office 开发工具加载项项目。

目标方案

发现并反映 BCS 客户端缓存中的数据的 Microsoft Office 客户端应用程序加载项。

不适合于

依赖于特定数据集的方案。使用已部署的解决方案的加载项必须处理以下情况:数据不存在和存在多个变化部署的外部列表。

Office 客户端

是:可与任何 Office Professional Plus 客户端应用程序一起使用:Microsoft Excel、Microsoft PowerPoint、Microsoft Word、Microsoft Access、Microsoft SharePoint Workspace、Microsoft InfoPath 和 Microsoft Outlook。如果在安装有 Visio 和 Project 的计算机上安装 Microsoft Office Professional Plus 2010,则还可以扩展这些应用程序。

缓存

使用可脱机工作的 BCS 客户端缓存。

对象模型

BDC

打包

用于加载项的常规 Visual Studio 2010 中的 Office 开发工具包。

详细信息

Office 加载项解决方案无法处理 Business Connectivity Services 客户端缓存的生命周期。某个现有解决方案必须已通过列表部署体验,从 SharePoint 外部列表同步到客户端上的 SharePoint Workspace,从而部署了元数据和订阅。

开发步骤

  1. 使用外部内容类型在 SharePoint 服务器上创建外部列表。

  2. 在 Visual Studio 2010 中,创建一个 Microsoft .NET 3.5 Office 2010 加载项项目。

  3. 使该项目可供最终用户部署之用,可从网络共享文件夹或本地文件夹部署,也可从运行 SharePoint Server 的计算机上的文档库文件夹部署。

    备注

    如果您在安装 SharePoint Server 时使用的是基于表单的身份验证,则使用 ActiveX 控件进行部署。

用于部署解决方案的最终用户步骤

  1. 导航至解决方案的 SharePoint 外部列表。

  2. 通过单击"同步到 SharePoint Workspace"列表功能区按钮,与计算机同步解决方案。

  3. 导航至包含解决方案加载项的已发布的项目位置,然后运行 .vsto 文件以安装加载项。

Office 加载项(自我包含)

说明

使用 BCS API 访问 BCS 客户端缓存数据的 Visual Studio 2010 中的 Office 开发工具加载项项目。

目标方案

用于联机解决方案和脱机解决方案的 Microsoft Office 客户端应用程序加载项。请注意,Outlook 解决方案通常将受益于使用 Outlook(自我包含)类型的解决方案。

Office 客户端

是:可与任何 Office Professional Plus 客户端应用程序一起使用:Microsoft Excel、Microsoft PowerPoint、Microsoft Word、Microsoft Access、Microsoft SharePoint Workspace、Microsoft InfoPath 和 Microsoft Outlook。如果在同时安装了 Visio 和 Project 的计算机上安装 Microsoft Office Professional Plus 2010,则还可以扩展这些应用程序。

缓存

使用可脱机工作的 BCS 客户端缓存。

对象模型

BDC

打包

BCS 数据解决方案加上 Visual Studio 2010 中的 Office 开发工具包的组合。

详细信息

这种类型的解决方案包括一个常规 Visual Studio 2010 中的 Office 开发工具加载项,并组合一个数据解决方案包用来填充客户端缓存中的数据。

开发步骤

  1. 在 Visual Studio 2010 中,创建一个 .NET 3.5 Office 2010 加载项项目。

  2. 使该项目可供最终用户部署之用,可从网络共享文件夹或本地文件夹部署,也可从运行 SharePoint Server 的计算机上的文档库文件夹部署。

    备注

    如果您在安装 SharePoint Server 时使用的是基于表单的身份验证,则使用 ActiveX 控件进行部署。

  3. 创建 BDC 模型和订阅文件。

    您可以使用 BCS 项目生成器工具(该链接可能指向英文页面)来基于 BDC 模型生成订阅文件。

  4. 使用 BCS 解决方案打包工具(该链接可能指向英文页面)来基于 BDC 模型和订阅文件创建 Business Connectivity Services 数据解决方案。

  5. 将数据解决方案发布到与 Office 加载项解决方案相同的位置。

用于部署解决方案的最终用户步骤

  1. 导航至包含 Office 加载项解决方案的已发布的项目位置,然后运行 .vsto 文件以安装加载项。

  2. 导航至包含数据解决方案的已发布的项目位置,然后运行 .vsto 文件以安装加载项。

Office 加载项(仅联机)

说明

Visual Studio 2010 中的 Office 开发工具加载项项目,它使用 BCS API 直接从外部系统访问数据,或使用客户端对象模型转至服务器。

目标方案

将无法脱机使用的 Microsoft Office 客户端应用程序加载项(例如,不能由旅途中的工作者使用的应用程序)。

Office 客户端

对于 BDC 对象模型方法:可与任何 Office Professional Plus 客户端应用程序一起使用:Microsoft Excel、Microsoft PowerPoint、Microsoft Word、Microsoft Access、Microsoft SharePoint Workspace、Microsoft InfoPath 和 Microsoft Outlook。如果在安装有 Visio 和 Project 的计算机上安装 Microsoft Office Professional Plus 2010,则还可以扩展这些应用程序。

对于客户端对象模型方法:任何 Office 版本的客户端应用程序都可供使用。

缓存

无。这种类型的解决方案只有在已连接时才能工作,无法通过使用缓存脱机工作。

对象模型

BDC 主要通过使用基于文件的元数据直接连接到外部系统,或者需要时通过服务器连接到客户端对象模型。

打包

常规 Visual Studio 2010 中的 Office 开发工具包。

详细信息

您应依据 BDC 对象模型编码,以便使用外部内容类型直接从外部系统访问数据。不过,您也可以选择依据客户端对象模型编码,以便使用外部列表转到服务器,以防需要您这么做的特殊情况(例如,企业防火墙阻止直接访问外部系统)。

开发步骤

  1. 在 Visual Studio 2010 中,创建一个 .NET 3.5 Office 2010 加载项项目。

  2. 对于 BDC 对象模型方法,使用 FileBackedMetadataCatalog 来加载 BDC 模型。(类似于使用服务器模型这种方法。)

  3. 使该项目可供最终用户部署之用,可从网络共享文件夹或本地文件夹部署,也可从运行 SharePoint Server 的计算机上的文档库文件夹部署。

    备注

    如果您在安装 SharePoint Server 时使用的是基于表单的身份验证,则使用 ActiveX 控件进行部署。

用于部署解决方案的最终用户步骤

  • 导航至包含 Office 加载项解决方案的已发布的项目位置,然后运行 .vsto 文件以安装加载项。

Outlook 加载项(自我包含)

说明

使用简化版本的 Outlook 集成运行时配置文件 (OIR.config) 作为解决方案清单的 Visual Studio 2010 中的 Office 开发工具加载项项目,这将与 Outlook 同步 BCS 文件夹和窗体区域数据。

目标方案

基于 Microsoft Outlook 2010 加载项的解决方案,它还实现自定义编码功能并使用 BCS 胖客户端缓存。

Office 客户端

与 Microsoft Outlook 2010 一起使用。

缓存

使用 Outlook 集成运行时解决方案清单进行缓存管理和数据管理的缓存。

对象模型

Outlook 对象模型。

打包

使用 BCS 解决方案包,这是包含 BCS 部署后操作 (PDA) 和解决方案激活的 Visual Studio 2010 中的 Office 开发工具包。

详细信息

对于 Outlook 中的解决方案,BCS 提供可增强 Outlook 与 BCS 胖客户端缓存之间的交叉同步的 Outlook 集成运行时。这种类型的 Outlook 解决方案将解决方案清单用于交叉同步,从而改进使用 Outlook 的 Office 加载项(自我包含)解决方案类型。

开发步骤

  1. 准备 BDC 模型、订阅文件和简化的 OIR.config 解决方案清单文件。

    您可以使用 BCS 项目生成器工具(该链接可能指向英文页面)来基于 BDC 模型生成订阅文件和解决方案清单文件。

  2. 准备简化的 OIR.config 解决方案清单文件。

  3. 在 Visual Studio 2010 中,创建一个 .NET 3.5 Office Outlook 2010 加载项项目。

  4. 使用 BCS 解决方案打包工具(该链接可能指向英文页面)来创建 Business Connectivity Services 解决方案包。

用于部署解决方案的最终用户步骤

  • 导航至包含 Outlook 加载项解决方案的已发布的项目位置,然后运行 .vsto 文件以安装加载项。

Silverlight 应用程序

说明

在客户端上运行代码的 Silverlight 应用程序。可通过浏览器访问该应用程序,而该应用程序可通过客户端对象模型访问外部数据。

目标方案

丰富 Internet 应用程序。

Office 客户端

不涉及。通过浏览器进行用户体验。

缓存

不使用客户端缓存。仅通过浏览器进行联机体验。

对象模型

客户端对象模型。

打包

不需要进行特定于 BCS 的打包。

开发步骤

  1. 开发 Microsoft Silverlight 应用程序。

  2. 依据客户端对象模型编码以便与外部数据交互。

用于部署解决方案的最终用户步骤

  • 使用浏览器导航到相应网站。

    备注

    客户端计算机必须安装有 Microsoft Silverlight。

请参阅

概念

演练:创建基于代码的高级 Outlook 解决方案

如何:创建沙盒工作流操作

演练:结合使用 SharePoint 完全信任工作流活动与 Business Connectivity Services

演练:在声明性解决方案中使用 BCS 可重用代码组件

其他资源

Business Connectivity Services 对象模型的代码段