Business Connectivity Services lives in the “Composites” section of the blue workloads circleComposites =Building robust business applications without any/much involvement from IT (IT Pros/developers)Easily integrate and consume external data not resident within SharePointAlso has a developer extensibility point to provide lots of customized options
Business Connectivity Services is composed of many piecesOffice Client – By connecting to SharePoint, Office clients can consume data from the external systemsSharePoint Server – SharePoint houses the external content types (ECTs) which is the backbone of the entire systemExternal Data – this is the source of where the data is coming from**SharePoint Foundation 2010 does not offer rich client extensions. To show external data to Microsoft Office clients, you must use Microsoft SharePoint Server 2010. Also, if you are using SharePoint Foundation 2010, you must create a Feature Event Receiver to enable the import of BDC models. How to create a Feature Event Receiver will be covered soon. Alternatively, you can use Microsoft SharePoint Server 2010 for development as it will deploy BDC models to the Metadata Store from Visual Studio without the need for additional code.
Build 1Everything begins with a SharePoint Site. The “OBA Designer” feature must be enable for anything except simple External List. The OBA Designer feature (which will be renamed to fit with BCS) provide 8 Document Libraries that house all of the artifacts necessary for the solutions.Build 2The “Solution Designer” uses the SharePoint Designer to create some External Content Types against an the CRM system so that contact information can be surfaced in MS Outlook. The work involves creating some forms for Outlook and some actions that can be taken against the External Content Types.Layouts: XML files that define form pages similar to web part pages in the clientActions: Ribbon component definitions for Office clientsContexts: Defines relationships and statesBuild 3The Client Extensions are what allows for the deployment of the External Content Types, Forms, Actions, and Outlook Add-In to the client. Client extensions are essentially a .VSTO package file.Build 4The Solution Designer uses SPD to Publish the solution to a SharePoint Site. Today the publishing process is a PowerShell script that creates the .VSTO file. This will go away in the future. There will also be APIs that expose the publishing process.Build 5The Process wraps up everything that the client will need to use the solution. Manifest and add-in are standard VSTO components. Office Integration Runtime (OIR) files are specific to BCS and used by the client-side BCS components.Build 6These are components that are common to all BCS solutionsOBA Client Application Manifest: Solution ManifestEntity Model: External Content TypesSubscriptions: Define data to cache on the clientPre/Post Deployment: Actions to take pre/post deployment (e.g., create a set of InfoPath forms for the client views)Build 7The “Solution Developer” wants to add a solution to the site based on data from the ERP system that should surface in Excel. He uses Visual Studio to create External Content Types and an Excel Add-In. Build 8The Solution Developer publishes the solution to the Client Extensions. The client will get both solutions with no additional effort.He runs the Publishing script and his custom add-in is added to the .VSTO package.Build 9Now the Solution Designer wants to add the capability to use the CRM data in MS Word for creating invoices. He updates his solution and deploys it.Build 10User goes to site and can download the package through ClickOnce (a link to the .VSTO file) or it can be deployed directly to the client machine by Operations.
ListsUse BCS to populate Can update data in source systemSPS Server to take offline (to Outlook for ex.)Can NOT use workflowCan NOT use content types, versioning, check-in, & check-outColumnsUse BCS to populateCan be used by internal Lists onlySPS Server to display data in Word
This slide introduces the SharePoint Workspace as the primary client for SharePoint.
BCS is used for you to build an External Content Type in Visual Studio 2010 and deploy it to SharePoint Foundation 2010 and the code in the External Content Type retrieves the data which is then shown in a standard SharePoint list.SPMetalis included with SharePoint Foundation and is located in %ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\14\\BIN.ExampleSPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.cs
Visual Studio 2010 BDC Designer allows you to develop, debug and deploy Business Data Connectivity Models using the External Systemtype “.NET Assembly Connector”. This type is used for: Aggregation scenarios (across back-ends, across multiple calls to same backend, read from one back-end write to another) Custom/Complex Data Transformations, Custom Security (e.g. where SSO falls short)Custom Business Logic/Rules needed outside the back-end (don’t have good example of this)In addition Visual Studio 2010 BDC designer allows to import models created by SPD customize them, package them and deploy them through the Visual Studio
This object model is not available in SharePoint Foundation 2010Example<LobSystem Name="BdcModel1" Type="DotNetAssembly"> <LobSystemInstances> <LobSystemInstance Name="BdcModel1" > </LobSystemInstance> </LobSystemInstances> <Entities> <Entity Name="Product" Namespace=“MyConnector.BdcModel1“EstimatedInstanceCount="1000" Version="188.8.131.52"> <Properties> <Property Name="Class" Type="System.String"> MyConnector.BdcModel1.MyService, BdcModel1 </Property> </Properties>
BCS packaging tool - http://blogs.msdn.com/b/bcs/archive/2010/04/25/bcs-solution-packaging-tool.aspxDownload the tool - http://code.msdn.microsoft.com/odcsps14bcspkgtool
This slide explains the authentication story for BCS
Example of Search Security code<!-- BinarySecurityDescriptorAccessor --><MethodInstance Name="ReadSecurityDescriptorInstance" Type="BinarySecurityDescriptorAccessor“ ReturnParameterName="acl"> <Properties> <Property Name="WindowsSecurityDescriptorField" Type="System.String">SecurityDescriptor</Property> </Properties></MethodInstance><!-- Access Checker --><MethodInstance Name="CheckItemAccess“Type="AccessChecker"ReturnParameterName="result" />
SharePoint 2010 Business Connectivity Services
Business Connectivity Services for SPS 2010<br />Lynn Langit<br />Microsoft – Developer Evangelist<br />Blogs.msdn.com/SoCalDevGal<br />
SPS 2010 and BCS<br />Sites<br />NEW - Business Connectivity Services<br />Communities<br />Composites<br />Combine Internal (SharePoint) and External Data (LOB Systems)<br />Content<br />Insights<br />Superset of BDC<br />Search<br />
What is BCS?<br />Surfaces External data to Office 2010 <br />Includes no code solutions<br />Includes Developer Extensibility<br />
What is Business Data Connectivity?<br /><ul><li>Data from OUTSIDE of SharePoint
Data which can be DISPLAYED inside of SPS or Office</li></li></ul><li>What is the Architecture of BCS?<br />Search, Workflow, Web Parts, R/W connections<br />Offline (uses SQL Compact)<br />
Connect to existing WCF, ADO.NET or .NET Objects
Author thin or rich client UX for External List or InfoPath Forms</li></ul>Produce WSP/ClickOnce<br />Package w/BDC Model<br /><ul><li>Create custom back-end integration logic using .NET Assemblies
Author thin or rich client UX as SPS or VSTO projects</li></ul>SharePoint Designer<br />Pro Dev<br />
What is an External Custom Content Type?<br />Custom Content Type sourced from OUTSIDE SPS<br />data access info (i.e. connection, security, data access permissions, type info) - ENTITIES<br />Includes information about data access from inside of SPS, Word, etc…- i.e. read or read/write) - BEHAVIORS<br />Usually used as metadata for lists or columns in SPS<br />Can also be displayed in Office applications (Outlook, Word…)<br />Can be offline, can be updatable<br />Created in SharePoint, SP Designer or VS<br />
Connecting to External Data<br />SharePoint Designer 2010 supports <br />SQL Server databases<br />Web and WCF services<br />.NET connectivity assemblies<br />SharePoint 2010 provides WCF adaptersfor<br />Oracle, SAP and Siebel<br />Other external systems <br />Edit the model XML (BDC) file in VS 2010<br />
External List Web Part in SPS<br />Designed to display External Content<br />New for SPS 2010<br />Can also display external content as an external column <br />
Challenges with No-Code Solutions<br />Subset of operations with no way to customize the implementation<br />No folder support<br />No attachment support<br />No search security support<br />No support for Word or Excel add-ins<br />
Scenarios for Custom Coding<br />Aggregations of external data<br />Requiring multiple calls to source to complete<br />Requiring calls to different sources to complete<br />Complex Transformations<br />Requiring one or more transforms<br />Requiring dependent (transactional) transforms<br />Complex Access Checks<br />Requiring multiple or complex security checks<br />Requiring access mapping (credentials)<br />
BDC Object Model<br /><ul><li>BDC contains ONLY Metadata, no external data
Access to this object model requires SharePoint Server</li></li></ul><li>Data-Only Solutions<br />Used to set up subscription<br />Similar to “Sync to” options<br />Free tool from MSDN Code Gallery<br />
More Resources<br />Setting up a Developer Machine for SPS - here<br />External Content and SP Designer – here <br />MSDN Channel 9 course on SPS BCS - here<br />MSDN Code Samples for Solutions – here<br />SPS BCS team blog - here<br />
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.