What’s New in Business Connectivity Services (BCS)
These are some notes from a really great session today at the SharePoint Conference 2009 in Las Vegas delivered by Michal Gideoni and Brad Stevenson from the BCS product team at Microsoft. The notes are as organized as I can make them while I’m sitting here in the room, but they will of course not be as polished as I’d like them to be. I’ve decided to err on the side of more information – less polish.
Microsoft has heard our whining about easier write-backs to BDC data sources and creation / maintenance of the application definition XML files. They’ve also baked it into the platform (not just Enterprise functionality anymore) and made it capable of going offline.
In general, using back-end data systems can be difficult because of their isolated nature. Users cannot easily reuse data from one system in another, access must be granted separately, and IT must perform many repetitive, one-off projects to connect system where needed. BCS looks to integrate all of these systems on a common platform so that they can be used together.
- BCS – the umbrella term for the whole package
- BDC – now stands for Business Data Connectivity. This is the runtime that provides connectivity, and it exists on both the server and in the 2010 Office Clients to allow full integration and offline caching.
- Model – what used to be the application definition file.
- External Content Type – what we used to call an ‘entity’, but better. Automatic CRUD+Q (one of my favorite acronyms: create, read, update, delete, and query) methods are created. They can also map these to an Office content type (like Outlook Contacts, for instance). They can be added via SPD, VS, as part of a model. Can be used in lists, search, Outlook, Workspace (SPW), Word, InfoPath, and Access natively.
- External List – a new list type that allows you to treat external data exactly as though it exists in SharePoint – by users or by the Object Model.
- External Data Columns and Web Parts – to let you re-use your external data in other native SharePoint lists and pages. The columns actually cache the data locally in SharePoint (which is different from the External List which is always and only live when working in the browser). The coolest may be the Chart Web Part – an easy, live chart for quick and not-so-dirty dashboards.
- External System – can be .NET, SQL, or a Web Service (WCF)
The External Content Type wizard in SharePoint Designer 2010 allows you to pick your data source type, location, authentication, CRUD+Q operations, and field mapping (to Office item types). It even provides live warnings and errors for incomplete settings in the mapping step. Cool – and easy.
Then we can create a new list (External List type) and pick the previously created External Content Type. We then have full access to the ribbon, views (except Edit in Datasheet – sorry, they had to leave something for the next version), and edit features like a native SharePoint list. It seems like we should have to write code (or at least markup) for this, but it’s just a few clicks and you’re done.
Connecting the external data from the new list to Outlook is the same process as a normal list in 2007 – but now the button is on the ribbon. The first time someone does this for the external list, SharePoint automatically builds a solution to connect the client to the external data. It takes a few seconds to do, but it only happens for the first user the first time they connect. All subsequent connections will be faster because the solution has already been created.
The entire demo from nothing to full Office client integration took about 10 minutes, including the explanation.
SPW gives us larger scale offline access to external data, just like it would for native SharePoint data. The Sync to SharePoint Workspace button is on the ribbon right above the Connect to Outlook button.
If you’ve used the Quick Parts functionality in Word 2007, you’ve probably gotten hooked on it. It allows you to insert form fields into your Word document that automatically connect to the meta-data columns in the SharePoint document library where the doc is stored. It’s almost like an InfoPath form, but it’s in the program most of your users are probably most comfortable with in the whole world. Now, Quick Parts seem to be called Content Controls – and they allow live links to external data columns too. This is a change that has huge implications for easy application composites that leverage your LOB systems.
SQL data sources will be easy and direct. Other data sources will likely be done most easily via web service, although .NET assemblies may be used to connect multiple sources at once, and custom connectors can be coded to surface other back-end systems that don’t fit any of the normal methods.
The client programs will run their own BDC runtime that connects directly to the back-end system instead of funneling through SharePoint. Therefore, the SharePoint External list / column really just becomes a way to provide browser access and to distribute the connection configuration to the rich clients. SQL CE is used in the background to cache the data locally on the client PC where the rich client is running.
Basic Level – SharePoint Designer can create External Content Types, which enable the rich client connection solutions. The client and server solutions are kept in sync automatically.
InfoPath forms can be used to create dynamic forms. SharePoint Designer can create workflows (although external data cannot be used to trigger workflows), Outlook taskpanes and ribbons, and web part pages.
Visual Studio can be used to build business logic into forms, reusable actions and other assemblies, and custom connectors to back-end systems that don’t support web services or .NET assemblies.
Here’s one of the most exciting part. The basic External List, Data Column and Business Data Connectivity service are available even in the free SharePoint Foundation product (the successor to WSS 3.0). Some of the presentation tools are reserved for the purchased products (search, web parts…).
Security can be set on the External Content Type and in the External List – but these do not let you trump the permissions in the back-end system. If you need to use individual credentials with the external data, then you can use Windows Integrated, Secure Store (then new name for Single-Sign-On), or claims as the mechanism to do so. Both of the later options would obviously require more farm configuration to accomplish.