Accessing BLOB Data from External Systems Using Business Connectivity Services in SharePoint Server 2010

Tajeshwar Singh wrote a white paper which shows you how to use Microsoft Business Connectivity Services (BCS) in Microsoft SharePoint Server 2010 to access and surface BLOB data in the SharePoint user interface and search. Check out the overview below taken from the paper.

Link to document: Accessing BLOB Data from External Systems Using Business Connectivity Services in SharePoint Server 2010

Overview of the white paper

Microsoft Business Connectivity Services (BCS) is the new version of Microsoft Office SharePoint Server 2007 Business Data Catalog functionality. New features are added that help retrieve binary large object data (referred to as BLOB data) from external systems and make it available in Microsoft SharePoint Server 2010. This article describes the following:

  • The functionality that is provided by the StreamAccessor stereotype that is introduced in Business Connectivity Services.
  • How to use StreamAccessor to retrieve file attachments from external systems for viewing and indexing.
  • How to write the BDC model that is required to consume BLOB data.
  • The built-in Web Parts behavior for BLOB data, and how BLOB fields can be indexed by SharePoint Server search.

In this article's scenario, the AdventureWorks database that is hosted in Microsoft SQL Server 2008 is used as an external system that contains the binary data. The BDC metadata model is created with a StreamAccessorMethodInstance to retrieve the BLOB field of type varbinary from SQL Server as an external content type. The BLOB fields are modeled as types that can be read in chunks to help Business Connectivity Services read the stream in chunks, and not load the complete content in memory. This can help prevent out-of-memory conditions. An example of such a type is System.IO.Stream in the Microsoft .NET Framework. An External Data Grid Web Part is configured to show the external items with links to download the BLOB. Finally, Search is configured to crawl the BLOBs and show the results in the SharePoint Server search user interface (UI).

- Lionel Robinson, Program Manager

Comments

  • Anonymous
    April 27, 2010
    Hi,The article doesn't cover how to access BLOBS as StreamAccessors from WCF services.Is the BCS able to do this?
  • Anonymous
    April 29, 2010
    There's no mention in the white paper of retrieving blob data from Windows Azure or SQL Azure, which is surprising when you consider Microsoft's cloud agitprop on the topic.Is a similar white paper in the works for Windows Azure/SQL Azure?--rj
  • Anonymous
    April 30, 2010
    BCS is capable of accessing BLOB data from any kind of external system. For WCF services, an operation that accepts identifier values as input and returns a stream (System.IO.Stream, and derivatives) (possibly part of a bigger data structure) can be modelled as StreamAccessor.When there is no web service or accessible database, a DotNetAssembly model can be created with a function as described above.
  • Anonymous
    June 03, 2010
    Hi,Thanks for the great article. I have to do exactly what you showed with a WCF web service. I have to load product information with images into a SharePoint 2010 List. could you give me a hint on how to write the web service to get the stream accessor to work?