Business Connectivity Services for SPS 2010<br />Lynn Langit<br />Microsoft – Developer Evangelist<br />Blogs.msdn.com/SoC...
SPS 2010 and BCS<br />Sites<br />NEW - Business Connectivity Services<br />Communities<br />Composites<br />Combine Intern...
What is BCS?<br />Surfaces External data to Office 2010 <br />Includes no code solutions<br />Includes Developer Extensibi...
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, Workfl...
BCS Features by SPS Edition<br />
Types of Solutions<br />SharePoint Designer<br />
Development Approaches<br />SP Server(Prod / Dev)<br />IT Admin<br /> “Live” connection<br />WSP/ ClickOnce Package<br />S...
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<...
Author thin or rich client UX as SPS or VSTO projects</li></ul>SharePoint Designer<br />Pro Dev<br />
Who Does What with BCS?<br />
What is a Custom Content Type?<br />A reusable schema (strongly typed) from SP Data<br />Usually used as metadata for list...
Editing Content Types in SP Designer<br />
Content Type Modeling in VS 2010<br />
Where can I display custom content?<br />Inside of SharePoint<br />Usually added to Lists<br />Online and connected<br />S...
Viewing Custom Content Types in SPS <br />
What is an External Custom Content Type?<br />Custom Content Type sourced from OUTSIDE SPS<br />data access info (i.e. con...
Connecting to External Data<br />SharePoint Designer 2010 supports <br />SQL Server databases<br />Web and WCF services<br...
External List Web Part in SPS<br />Designed to display External Content<br />New for SPS 2010<br />Can also display extern...
Adding External Data to Columns<br />
Viewing in SharePoint Workspace<br />Offline capable<br />InfoPath forms  UI<br />Respects SPS view settings (filter/sort/...
Viewing in Word 2010<br />Requires SP Server<br />Create using Custom VSTO apps in VS<br />Use SPS Client-Side Object Mode...
Creating External Content Types in SP Designer<br />
Enabling Operations in SP Designer<br />
Challenges with No-Code Solutions<br />Subset of operations with no way to customize the implementation<br />No folder sup...
Scenarios for Custom Coding<br />Aggregations of external data<br />Requiring multiple calls to source to complete<br />Re...
Overcoming UI Limitations<br />Server-Side Object model<br />StreamAccessor method<br />
BCS in VS 2010<br />Also called working with .NET Connector Assemblies<br />
SPS BCS Templates in VS 2010<br />
Business Connectivity Services<br />BDC Designer allows you to develop, debug and deploy BDC Models <br />uses External Sy...
VS 2010 BDC Designers<br />
VS Entity Associations<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 subscript...
BDC Server Authentication <br />SharePoint Server<br />2. Process Account<br />Modes:<br />1. PassThrough<br />       (log...
Secure Store Service<br />Maps credentials from user to external systems<br />
Upcoming SlideShare
Loading in …5
×

SharePoint 2010 Business Connectivity Services

2,689
-1

Published on

Deck from my talk at SharePoint Saturday San Diego Feb 2011

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,689
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
64
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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, &amp; 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.
  • Sample Server-Side CodeIEntityect = catalog.GetEntity( &quot;http://www.contoso.com/marketing&quot;, &quot;Campaign&quot;);ILobSystem lob = ect.GetLobSystem();ILobSystemInstancelobi = lob.GetLobSystemInstances()[&quot;Advertising&quot;];IFilterCollection filter = ect.GetDefaultFinderFilters();(Filter as ComparisonFilter).Value = &quot;Spring Fling&quot;;IEntityInstanceEnumeratorects = ect.FindFiltered(filter, lobi);while (ects.MoveNext()){Console.WriteLine(ects.Current[&quot;CampaignName&quot;].ToString());}
  • 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&lt;LobSystem Name=&quot;BdcModel1&quot; Type=&quot;DotNetAssembly&quot;&gt; &lt;LobSystemInstances&gt; &lt;LobSystemInstance Name=&quot;BdcModel1&quot; &gt; &lt;/LobSystemInstance&gt; &lt;/LobSystemInstances&gt; &lt;Entities&gt; &lt;Entity Name=&quot;Product&quot; Namespace=“MyConnector.BdcModel1“EstimatedInstanceCount=&quot;1000&quot; Version=&quot;1.0.0.28&quot;&gt; &lt;Properties&gt; &lt;Property Name=&quot;Class&quot; Type=&quot;System.String&quot;&gt; MyConnector.BdcModel1.MyService, BdcModel1 &lt;/Property&gt; &lt;/Properties&gt;
  • 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&lt;!-- BinarySecurityDescriptorAccessor --&gt;&lt;MethodInstance Name=&quot;ReadSecurityDescriptorInstance&quot; Type=&quot;BinarySecurityDescriptorAccessor“ ReturnParameterName=&quot;acl&quot;&gt; &lt;Properties&gt; &lt;Property Name=&quot;WindowsSecurityDescriptorField&quot; Type=&quot;System.String&quot;&gt;SecurityDescriptor&lt;/Property&gt; &lt;/Properties&gt;&lt;/MethodInstance&gt;&lt;!-- Access Checker --&gt;&lt;MethodInstance Name=&quot;CheckItemAccess“Type=&quot;AccessChecker&quot;ReturnParameterName=&quot;result&quot; /&gt;
  • SharePoint 2010 Business Connectivity Services

    1. 1. Business Connectivity Services for SPS 2010<br />Lynn Langit<br />Microsoft – Developer Evangelist<br />Blogs.msdn.com/SoCalDevGal<br />
    2. 2. 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 />
    3. 3. What is BCS?<br />Surfaces External data to Office 2010 <br />Includes no code solutions<br />Includes Developer Extensibility<br />
    4. 4. What is Business Data Connectivity?<br /><ul><li>Data from OUTSIDE of SharePoint
    5. 5. 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 />
    6. 6. BCS Features by SPS Edition<br />
    7. 7. Types of Solutions<br />SharePoint Designer<br />
    8. 8. Development Approaches<br />SP Server(Prod / Dev)<br />IT Admin<br /> “Live” connection<br />WSP/ ClickOnce Package<br />SI/IT Devs<br />Import & Configure<br />WSP/BDC<br /><ul><li>Discover & Configure existing back-end integration end-points (no-code)
    9. 9. Connect to existing WCF, ADO.NET or .NET Objects
    10. 10. 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
    11. 11. Author thin or rich client UX as SPS or VSTO projects</li></ul>SharePoint Designer<br />Pro Dev<br />
    12. 12. Who Does What with BCS?<br />
    13. 13. What is a Custom Content Type?<br />A reusable schema (strongly typed) from SP Data<br />Usually used as metadata for lists<br />Created in SharePoint, SP Designer or VS<br />
    14. 14. Editing Content Types in SP Designer<br />
    15. 15. Content Type Modeling in VS 2010<br />
    16. 16. Where can I display custom content?<br />Inside of SharePoint<br />Usually added to Lists<br />Online and connected<br />SharePoint Workspace<br />Usually added to Lists<br />Can be offline - *requires SharePoint Server<br />Office - *requires SharePoint Server<br />Word, Access, more<br />Requires custom code<br />
    17. 17. Viewing Custom Content Types in SPS <br />
    18. 18. 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 />
    19. 19. 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 />
    20. 20. 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 />
    21. 21. Adding External Data to Columns<br />
    22. 22. Viewing in SharePoint Workspace<br />Offline capable<br />InfoPath forms UI<br />Respects SPS view settings (filter/sort/group)<br />Error/conflict resolution<br />Search across external data<br />
    23. 23. Viewing in Word 2010<br />Requires SP Server<br />Create using Custom VSTO apps in VS<br />Use SPS Client-Side Object Model<br />
    24. 24. Creating External Content Types in SP Designer<br />
    25. 25. Enabling Operations in SP Designer<br />
    26. 26. 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 />
    27. 27. 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 />
    28. 28. Overcoming UI Limitations<br />Server-Side Object model<br />StreamAccessor method<br />
    29. 29. BCS in VS 2010<br />Also called working with .NET Connector Assemblies<br />
    30. 30. SPS BCS Templates in VS 2010<br />
    31. 31. Business Connectivity Services<br />BDC Designer allows you to develop, debug and deploy BDC Models <br />uses External System type “.NET Assembly Connector<br />Can import and customize models created in SP Designer<br />Visual designers in VS 2010<br />BDC Explorer<br />BDC method details<br />Tools to generate artifacts<br />To generate Classes use SPMetal– here<br />To generate Artifaces (i.e. Ribbon, etc..) use BCS Artifact Generator – here<br />To create Packages use BCS Package Tool – here<br />To create Excel Add-in use BCS Excel Add-in - here<br />
    32. 32. VS 2010 BDC Designers<br />
    33. 33. VS Entity Associations<br />
    34. 34. BDC Object Model<br /><ul><li>BDC contains ONLY Metadata, no external data
    35. 35. 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 />
    36. 36. BDC Server Authentication <br />SharePoint Server<br />2. Process Account<br />Modes:<br />1. PassThrough<br /> (logged-on user)<br />2. RevertToSelf<br /> (process account)<br />3. SSO Authentication <br /> (Credentials, etc. from <br /> Secure Store)<br />Application<br />CredentialsTicket<br />Delegation Token<br />WebPart<br />VL<br />1. Logged-onuser<br />BDC Server<br />Runtime<br />3. Secure Store<br />Service<br />Application<br />Delegated<br />Token<br />SAML<br />Token<br />Credentials<br />Claims Aware<br />Service<br />Web 2.0<br />External System<br />
    37. 37. Secure Store Service<br />Maps credentials from user to external systems<br />
    38. 38. BCS Security &.NET Connectors<br />
    39. 39. SPS Designer vs. VS 2010<br />
    40. 40. 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 />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×