BDC Functional Capabilities

SharePoint 2010

Last modified: April 15, 2010

Applies to: SharePoint Server 2010

In this article
Connectivity to Various External Systems
Extensible Provider Model
Write-Back to External Systems
Connectivity to External Systems Without Writing Code
Batch and Bulk Operation Support
Symmetrical Server and Client Runtimes
Stereotyped Operations
Direct Access to Native Types
Read Blobs
Read and Write-back of Complex Types
Security Services
Rich API Set and Extensibility

Business Data Connectivity (BDC) service in Microsoft Business Connectivity Services (BCS) is the underlying framework in the Microsoft SharePoint Foundation 2010 platform on which Business Connectivity Services is built. BDC facilitates the declarative integration of SharePoint applications and Office applications with external systems, thus enabling you to surface external data in SharePoint Server and in rich client Microsoft Office applications with read/write capabilities. Most of the other features of Business Connectivity Services are built around BDC.

BDC is deployed as a shared service in a SharePoint farm. The BDC runtime is present on both client and server.

BDC provides the following functional capabilities.

The core function of BDC is to provide connectivity support to the following kinds of external systems:

  • Databases

  • Web/WCF services

  • .NET connectivity assemblies

  • Custom data sources via the extensible provider model described below.

In addition to connectors for the previous list of data sources provided by BDC, BDC provides a pluggable framework with which developers can plug in connectors for new external system types. This enables these new data source types to be accessed via the BDC.

BDC now offers write-back capability to external systems.

One of the major design goals for BDC is to enable you to surface business data from various external systems declaratively, with minimal coding effort. To achieve this goal, BDC provides homogeneous access to the underlying data sources with a metadata model that provides a consistent and simplified client object model.

Using SharePoint Designer or Visual Studio, the developer can declaratively describe the external system and tell SharePoint Server what data he or she wants. The developer does not have to write code to develop an interface to a back-end system, such as ERP, as long as the data source type is supported natively by BDC.

In Office SharePoint Server 2007, BDC supported only single item operations, such as search. BDC now provides batch and bulk operation support which enable you to read multiple items in a single call thus reducing round trips to the back-end significantly.

In the 2007 Microsoft Office system, BDC was provided only in the Microsoft Office SharePoint Server 2007 Enterprise CAL. In Microsoft Office 2010 and SharePoint 2010, BDC is included to provide symmetrical client server scenarios. The primary reason for the client-side presence is to enable external data integration scenarios on Office client applications such as Microsoft Outlook 2010, Microsoft SharePoint Workspace 2010 and Microsoft SharePoint Workspace 2010. On the client computer, a Microsoft SQL Server Compact Edition database is used to cache external data to provide a uniform experience offline when there is no network connectivity. BDC supports two data paths from client to external system:

  • Client to external system, direct connection (known as online connection mode)

  • BDC client fetches data from the local cache (known as cached connection mode)

The BDC Runtime object model provides programming interfaces that make the experience of programming against varied back-end systems uniform. This is performed by programmatically converting method calls into stereotypical, normalized operations that are requested by an application into a back-end business application-specific invocation. BDC transforms the line-of-business (LOB) system interface definitions into normalized, stereotypical operations against Entities, such as "Create-An-Entity-Instance", "Read-Entity-Instances", and "Check-Entity-Instance-Permissions”. Assuming that the underlying back-end system does expose Create, Read, Update Delete, Query (CRUDQ) interfaces and is modeled in the BDC accordingly, the Runtime object model provides capabilities to perform these operations without requiring details about the underlying system. For more information, see Stereotyped Operations Supported by BDC.

In addition to the previous list of stereotyped operations, BDC also enables direct access to the native underlying types in the external system via the GenericInvoker method instance type.

BDC now supports reading Blob data types. This is useful for streaming Blobs of data from the external system.

BDC now supports dot notation in field names and therefore enables you to read and write complex types.

BDC includes a set of security services for authentication and authorization that provide great flexibility for declaratively modeling how to connect and authenticate against systems. It also provides a centralized location from which to manage users and what actions they can perform against these external systems. For more information, see Business Connectivity Services security overview (SharePoint Server 2010) and Business Connectivity Services security overview (SharePoint Foundation 2010). .

Developers can use the BDC Runtime object model to write generic applications by using the stereotyped APIs as building blocks. Such generic applications are then ensured to work against any external system, including those that are preexisting and those that are yet to be built.

Developers can also write specific applications that make assumptions about the abstract entity model (the fields exposed by these, and the types of the fields).

And with the .NET Assembly Connector, Custom Connector and the pluggable Secure Store provider, it provides a rich extensibility mechanism for software developers.