SharePoint Integration and Interoperability - SharePoint Saturday PhillyPresentation Transcript
SharePoint 2010 (and a little 2013)Integration and Interoperability:What you Need to Know Presented By: Richard Harbridge #SPSPhilly @RHarbridge#SPSPhilly @RHarbridge
Thanks To Our Sponsors!#SPSPhilly @RHarbridge
SharePoint User Group • SharePoint • End Users • Administrators • Architects • Developers • IT Pros • Meetings: 2nd Tuesday of the month, Microsoft Malvern, 5:30-8 pm WEB: www.TriStateSharePoint.org EMAIL: info@TriStateSharePoint.org TWITTER: @tristateSP#SPSPhilly @RHarbridge
SharePoint Network Are you an independent consultant or remote worker who deals with SharePoint, Office or Office365? Do you sometimes feel cut off from the rest of the SharePoint world? Do you need help with technical or business issues, or just want the chance to socialize with others? If so, then the SharePoint Network might be for you! www.SharePointNetwork.org#SPSPhilly @RHarbridge
Who am I? Boston Washington
Our Goal Today… From Here To Here
What we will be talking about…1. Business Data Challenges2. SharePoint’s Important Interoperability3. What is the BCS? • External Content Types • External Columns • External Lists • Extensibility and Tooling4. Demonstration5. Limitations of BCS and SharePoint 2013 Bonus!
Business Data Challenges
Business Data in an Enterprise IT High Integration Costs (Custom) High Overhead (Maintenance, Security) Customers Suppliers Quality Operations Financial Redundant Data and Processes! High Dissatisfaction Users High Training Costs#SPSPhilly @RHarbridge
Challenges with Business Data Challenge IT End User Higher Overhead for IT to Service User Requests Multiple Places to Search Multiple Places to Administer and Maintain Multiple Places to Manage Content Multiple Places to Secure Information High Data Integration Costs (Often 100% Custom and One Offs) Silos/Islands of Data Lead to Redundant Data or Processes Multiple Interfaces; Dissatisfaction and Higher Training Costs Higher Operational and Compliance Risk Direct Impact Indirect Impact #SPSPhilly @RHarbridge
The Outcome There are challenges that disparate anddisconnected business data systems cause.
What to watch out for… Technology No system, product or applicationcan completely solve business data challenges. Process People
SharePoint’s Important Interoperability
What the heck is Interoperability? (IHN-tuhr-AHP-uhr-uh-BIHL-ih-tee) “Interoperability is the ability of a system.. to work with other systems.. without special effort on the part of the customer.” How?#SPSPhilly @RHarbridge
How do we achieve Interoperability? 1. By adhering to published interface standards. Does SharePoint do this? SPOILER ALERT! that 2. By making use of a "broker" of services can convert one system’s interface into another system’s interface "on the fly". What about this one?#SPSPhilly @RHarbridge
SharePoint Interoperability#SPSPhilly @RHarbridge
Is it a UI Platform?#SPSPhilly @RHarbridge
Why would we use SharePoint as a User Interface Platform?#SPSPhilly @RHarbridge
Consistent User Experience Across Browsers Well.. Almost.#SPSPhilly @RHarbridge
1. By adhering to published interface standards. It’s a UI Platform#SPSPhilly @RHarbridge
A UI Platform Bonus? Bonus!#SPSPhilly @RHarbridge
Leverage Office and SharePoint Interface Familiarity#SPSPhilly @RHarbridge
Is it an Identity Platform?#SPSPhilly @RHarbridge
Why would we use SharePoint as an Identity Platform?#SPSPhilly @RHarbridge
Because Claims is Awesome Connect with 3rd Party Authentication Providers Connecting with a Non Windows Integrated Authentication driven web site. Delegation with Back-End Systems Showing data from another server on a SharePoint web page.#SPSPhilly @RHarbridge
1. By adhering to published interface standards. Claims Uses Consistent Standards#SPSPhilly @RHarbridge *Doesn’t actually support SAML Protocol (SAMLP)
It’s an Identity Platform#SPSPhilly @RHarbridge
Is it a Search Platform?#SPSPhilly @RHarbridge
Why would we use SharePoint as a Search Platform?#SPSPhilly @RHarbridge
Query a 3rd Party Search Engine Using SharePoint UI Federate Queries to Multiple Search Systems…#SPSPhilly @RHarbridge
Index Content from a Range of What does all of these? Content Repositories ___ BCS B Indexes Databases, Web Services or Custom Repositories C Provides Consistent Access to External Content S Has SharePoint Designer and Visual Studio Plug-ins#SPSPhilly @RHarbridge
A Search Platform Bonus! Bonus!#SPSPhilly @RHarbridge
1. By adhering to published interface standards. Have you heard of OpenSearch? • Standard (Creative Commons) for syndication and aggregation of search results • Syntax for executing queries • Results returned in RSS/ATOM + extensions • Supported by Microsoft Search Server 2008 Clients: Windows 7, IE, FireFox, Chrome, SharePoint … Providers: Amazon, Flickr, Wikipedia, SharePoint…#SPSPhilly @RHarbridge
It is a Search Platform#SPSPhilly @RHarbridge
Is it a Data Access Platform?#SPSPhilly @RHarbridge
SharePoint Does a Great Job of Accessing SharePoint Content!#SPSPhilly @RHarbridge
What about External Systems and Content? ___ BCS#SPSPhilly @RHarbridge
A Data Access Platform Bonus! Bonus! x2#SPSPhilly @RHarbridge
Content Management Interoperability Services CMIS specification provides a Web services A platform that allows you to interface that: Is designed to work over existing repositories enabling build customers tomultiple against build and leverage applications against multiple repositories—unlocking content they already have technologies without knowing the content Decouples Web services and content been Microsoft has from anything about how all thecustomersfrom both a management repository, enabling API’s to manage implementing this content independently work.Provides common Web servicesprovider perspective. (If you know CMIS.) client and and Web 2.0 interfaces to dramatically simplify application development Not available “in the box”. Is development platform and language agnostic Supports composite application development and mash-up by Available via or IT analyst the business SharePoint Admin Toolkit#SPSPhilly @RHarbridge
And then there’s REST Access to SharePoint Lists and Document Libraries… • RESTful interface over HTTP • Uses the ADO.NET Data Services interface conventions • Feature rich: retrieve, update, browse data using just URLs and XML/JSON • Low barrier of entry. If you have an HTTP stack you can use it. Visual Studio Integration… • Entirely built on top of the open RESTful interface • No client is required • Visual Studio creates proxies, visualizes schemas, provides LINQ support etc.#SPSPhilly @RHarbridge
2. By making use of a "broker" of services that can convert one system’sInteroperability SharePoint has interface into another system’s interface "on the fly".Some might even say it has storage interoperabilityor that OData is a standard… But the coolest part of interoperability? #SPSPhilly @RHarbridge
The Outcome SharePoint is a growing Interoperable UI, Identity,Search, and Data Access Platform.
What to watch out for… Remember this?“Interoperability is the ability of a system to without special effortwork with other systems without special efforton the part of the customer.”
What is the BCS?
You could look at this diagram… BCS in Office Client SharePoint Client BCS in SharePoint Identity Federation service BCS Meta Client Data Data Store Cache DB WCF /WS .NET AS Custom Connector Connector Assembly Connector Connector Client to Backend Direct Connection External data Persistence Custom .NET Data Store assembly Cubes SQL SAP ORACLE Siebel#SPSPhilly @RHarbridge
Or this simplified one… External Data External Content Types SharePoint Outlook Forms OfficeExternal Lists Workspace w/ Search Results and Task Panes Applications InfoPath Forms#SPSPhilly @RHarbridge
External Content TypesDescribes: External Data Added to the BCS Service Through:• Structure of the external • SharePoint Designer system (Fields, Methods, Connection) • Visual Studio 2010• How this data behaves within • Via an Import into the Business Data SharePoint and Office Connectivity Service as part of a model External Content Types SharePoint and Re-Use from a Central Location Manage Outlook Forms Office External Lists Workspace w/ Search Results and Task Panes Applications InfoPath Forms #SPSPhilly @RHarbridge
External Lists External Data The external content type is leveraged in a variety of ways… ExternalSuch as for Exposing External Data Content Typesas an External SharePoint List Full CRUD capability SharePoint Familiar UI and Navigation Outlook Forms OfficeExternal Lists Workspace w/ Search Results Sort, Filter, Task Panes InfoPath Forms and Group Applications Programmatic Access via SPList OM Profile Page for Each Item Form Auto-generated OOB Upsize to InfoPath Can be Taken “Offline”#SPSPhilly @RHarbridge
Offline Lists External DataExternal Lists also be leveraged as Offline “Lists” External Content Types SharePoint Outlook Forms OfficeExternal Lists Workspace w/ Search Results and Task Panes Applications InfoPath Forms Or Connected to Outlook as Contacts, Tasks, Calendars and Posts#SPSPhilly @RHarbridge
Office Applications and Search External DataExternal Content Types can also be leveraged in… External Or Leveraged to allow for Content Types External Data Searching or Filtering SharePoint Outlook Forms OfficeExternal Lists Workspace w/ Search Results and Task Panes Applications InfoPath Forms Many other Office Applications (or Custom Applications) w/ Code#SPSPhilly @RHarbridge
Bonus! Integration Webparts Bonus! Web Parts External Data External Data List Integration External Data Item Webparts External Data Item Builder External Data Related List External External Data Connectivity Filter Content Types Chart Web Part (New) SharePoint Outlook Forms OfficeExternal Lists Workspace w/ Search Results and Task Panes Applications InfoPath Forms w/ Code#SPSPhilly @RHarbridge
Didn’t those webparts work with the BDC?#SPSPhilly @RHarbridge
So what’s different? (Besides the Chart Control?) Read/Write Capability Claims Aware Connect via ADO/SQL, WCF/WS, .Net is still used for search indexing BDC Assembly and Custom Connectors connectors in 2010 they added Batch and Bulk Operation Support blob, incremental crawl and item level security. They added symmetrical server and client runtimes. Allowing them to connect from client or server directly to external data. SQL CE database is used to cache external data which allows for “cached mode” behavior on external data basically creating a rich client cache.#SPSPhilly @RHarbridge
How do I actually build it out?#SPSPhilly @RHarbridge
Where things fit. Out-of-box • Surface data in External Lists • Connect those lists to • Create Reusable Outlook, SPW Components (UI parts, • External Data Columns ECTs, Actions) Simple Intermediate Advanced NO CODE “NO CODE” CODE#SPSPhilly @RHarbridge Power User Developer Advanced Developer
SharePoint Designer Process 1. Discover your Data Source • Database • Web services • .NET type 2. Map Operations to Data Source • Create, read, update, delete, lookup 3. Connect to SharePoint and/or Office • External List • Contact • Task • Appointment • Post#SPSPhilly @RHarbridge
Visual Studio Process w/ Code#SPSPhilly @RHarbridge
Suggested Life Cycle#SPSPhilly @RHarbridge
The Outcome The BCS has a bunch of new capabilitiesbundled with some old enhanced BDC ones.
What to watch out for…Selecting the right tool is important. Practice makes perfect.
That’s a lot of information!#SPSPhilly @RHarbridge
The Outcome You saw how the BCS can be leveraged inSharePoint Designer and in the SharePoint UI.
What to watch out for… Don’t assume the tools willsignificantly reduce the time it takes to ‘integrate’. It typically reduces time to ‘interface’.
What are BCSLimitations?
General BCS Limitations • No Write support for BLOB • You cannot write back to BLOB fields using BCS unless you write your own method. • You can access BLOB columns by defining a StreamAccessor method and presenting the external data via the BCS Data List web part by checking the Display stream fields property.#SPSPhilly @RHarbridge
External Lists External List Limitations • Workflows cannot be associated with external lists • Workaround: You can use the external data columns and manipulate it that way. • No RSS feed support for external lists • No REST based access for external lists • http://sharepoint/_vti_bin/ListData.svc does not support external lists • LINQ to SharePoint spmetal.exe does not support external lists • Cannot configure alerts for external lists • Cannot export external list items to Excel (using the Export to Excel feature), Create Visio Diagram, Open with Access or Open with Project • Versioning cannot be configured on external lists • Version History is not available on external lists • Datasheet view cannot be used in external lists • XSLT is Supported (So you can basically make your own.)#SPSPhilly @RHarbridge
External List External Lists Limitations Continued… • Ratings feature is not supported for external lists • Information policies cannot be configured on external lists • Item-Level permissions are not available for external lists • No item or field level validation (without InfoPath) • Lookups don’t work on any column but ID • No attachments.#SPSPhilly @RHarbridge
Bonus! External Column Bonus! Limitations • You cannot create a site column of type ‘External Data Column’ • External data columns can be created only as list based columns and cannot be consumed in site level content types#SPSPhilly @RHarbridge
Some Data Types Not Supported • No support for structs that are not simple types. (Do not use non-primitive structs.) • No nested collections (array of arrays etc) • No support for multi dimension arrays • BDC only works with .Net 3.5 - No dynamic programming in .Net 4 • No support for ICollection or IEnumerable interfaces to represent collections in data structures (ICollection<T>, IEnumerable<T>, IList<T>…) http://msdn.microsoft.com/en-us/library/ff621599.aspx#SPSPhilly @RHarbridge
The Outcome You now know more about thelimitations of BCS and will make fewer assumptions.
What to watch out for…Some of the many limitationsmentioned make sense. Think carefully before you build a ‘workaround’.
What aboutSharePoint 2013?
SharePoint 2013 Main BCS Differences There are basically five things you need to know: 1. oData connector now available through Visual Studio OOTB (WCF, SQL, .Net Assembly Remain). 2. Remote Event Receiver capability – think of this as more of a simple framework for remote event subscription. 3. App-Scoped – Instead of only Farm level external content types developers can now build isolated app scenarios. 4. External List Enhancements – Performance improvements, limit per page, filtering, sorting, and export to excel. 5. More client object model support! (Office 365)#SPSPhilly @RHarbridge
The OutcomeSharePoint 2013 BCS isn’t really different. Just more flexible and capable.
What to watch out for… SharePoint 2013 introduces manynew concepts/methods that you will need to learn (app-scoped, client object model focus etc.)
What we talked about…1. Business Data Challenges Technology Challenges The Challenges Aren’t All2. SharePoint’s Important Interoperability Platform Interface, Identity, Search and Data Access3. What of the BCS? Connection Capabilities A Set is Powerful Structured Types of External Content External Content Types Leveraging External External Columns Content with Internal Content Interact Lists External Like SharePoint Lists Extensibility/Tool Range Extensibility and Tooling from UI to SPD to VS 20104. Limitations of and Better than Most Options Good Enough BCS
Thank YouOrganizers, Sponsors and You for Making this Possible.Questions? Ideas? Feedback? Contact me: Twitter: @RHarbridge Blog: http://www.RHarbridge.com Email: Richard@RHarbridge.com Resources:700+ SharePoint IA Slides at.. PracticalIntranet.com130+ SharePoint Standards at.. SPStandards.com15 Pages of Important Questions at.. SharePointDiagnostics.com