SharePoint stores its data in a SQL Server database which is known as a “content database.” An interface is provided—a "list”—that offers a set of functionality around that data.
End users don’t need to know the effort SharePoint made to provide such a nice and smooth user experience. We just say “SharePoint stores data in lists.”
Wanted: The Ability to Integrate External Data with SharePoint
But it’s not always about the data that we store inside SharePoint. Sometimes we need to integrate data that’s in external sources.
Imagine a situation where you’re advised to automate the lending process of a library. The list of books is available in an external Line of Business (LOB) system which can be a database table, a Microsoft Excel file, or other type of file.
We might access that information through a web service or directly through the database table or Excel file. There are multiple ways to handle this if you are a good .NET developer, but the best way is the simplest: Business Connectivity Services (BCS). More importantly, that’s a choice available for SharePoint Designer lovers as well as the Visual Studio lovers.
Now let’s see the reasons for picking BCS over other options.
#1: Easy to implement
Lists in SharePoint are based on content types. BCS uses the concept of an external content type, which allows the external data source to maintain information about the connection and the methods of accessing the data source.
These external content types can be exported and imported if you’re a SharePoint Designer fan. If you’re a Visual Studio fan, you can create a “Business Data Connectivity Model” and configure the external content type from it.
As in most of the cases, the extra effort being put on the Visual Studio implementations offers extra flexibility.
#2: Real-time data availability
BCS ensures the available data is fetched in real time, unless the user specifically implements the need to handle a caching mechanism.
This is very useful in many scenarios where the data gets updated frequently. At the same time, it’s important to ensure the availability and accessibility of the data source in such scenarios.
#3: The list experience
A SharePoint list experience includes basic Create, Read, Update, and Delete operations. BCS facilitates creating external lists using the external content types available in the SharePoint farm. There are five operations associated with an external content type:
- Read list
- Read item
- Create Item
- Update Item
- Delete Item
At the minimum level, the Read list and Read item operations need to be configured in order to create an external content type.
This will let users create external lists only with the viewing the list and viewing the list item. The Create, Update, and Delete operations can be facilitated with some extra work, if needed.
#4: Permission management
One of the key requirements with data is access control. Given that users are logged into SharePoint, wouldn’t it be nice if the permissions, too, could be set according to the SharePoint audiences?
And not just the list-level permissions, but also the ability to create lists and read data can be managed at the external content type level. But the list item-level permissions management is not available, since data can change frequently.
SharePoint 2013 allows creation of external content types at the app level without exposing data to the whole farm. This gives flexibility to SharePoint app developers for a smooth transition to external data, if necessary.
#5: Remote event receivers and alerts
SharePoint allows the use of event receivers to handle events such as creating, updating, or deleting list items. With SharePoint 2013, the remote event receivers are enabled with two types called EventSubscriber and EventUnsubscriber.
With this, some functionality can be implemented each and every time the data is updated, added, or deleted through SharePoint. And alerts can be set up from SharePoint 2013 external lists, though it was previously only possible for SharePoint lists.
SharePoint facilitated the requirement of working with external data in SharePoint 2007, with the concept of the Business Data Catalog. With the improvements in SharePoint 2010, the BCS concept was introduced to make the work much smoother.
With SharePoint 2013, there are many enhancements, such as connecting to OData sources and many improvements on the client object model implementations. This makes BCS the best choice for integrating external data sources with SharePoint.
Are you using BCS? If so, what do you like about it? If not, what’s stopping you?