For some time, SharePoint has been a truly enterprise-worthy product -- I would argue since the 2007 release. But that statement doesn't apply to every feature.
One glaring exception to enterprise-level functionality was the Business Data Catalog feature, which can connect SharePoint to data from back-end applications, such as SAP or Siebel without writing any code. Since sites and apps hosted in a SharePoint deployment can require access to just about any data source in an enterprise, some means of connecting those sites to the data they needed was required.
Mapping in new data sources to the Business Data Catalog was the most user-unfriendly process Microsoft ever unleashed on users: You had to configure it in XML. Even developers aren't crazy about this kind of hack. You could buy a number of third-party utilities to write the XML for you, but that created an additional expense to get access to necessary enterprise data.
In SharePoint 2013, this capability is called Business Connectivity Services, and it has improved over time. If getting data into your sites and apps is a priority, here's what you can expect.
The role of OData and connectivity models
Mapping in new data sources to the Business Data Catalog was the most user-unfriendly process Microsoft ever unleashed on users.
The OData standard (or the Open Data Protocol) essentially replaces Open Database Connectivity, and enables external sources to connect to SharePoint and allows SharePoint data (lists, etc.) to access and integrate with external (non-Microsoft) sources. Other data connections work with SharePoint as well (SQL Server, Windows Communication Foundation [WCF], and so on), but OData enables generic connection with all sources beyond Microsoft.
The idea is to construct a business data connectivity (BDC) model that manages the data being moved and can be built in Visual Studio, then imported as a content type throughout SharePoint or to an individual application.
This enables SharePoint administrators to take advantage of the new integration between SharePoint and Office. You may want to import external data into SharePoint for the purpose of passing it to an Office client, which can be used offline and then re-synced with the source upon reconnection. Excel applications are a good example of this, when the rows in a spreadsheet originate in a database and the two must match: With SharePoint as the go-between, reworking data from SQL into a spreadsheet becomes much easier.
Filters and listeners
The BDC model is inherently a filter, but data pulled into SharePoint lists can take this further with easily configured drop-down lists for specific columns. The user can implement real-time, ad hoc filtering in addition to the data returned from the external source. This is the kind of functionality you'd expect, and you'll probably make frequent use of it.
But even more useful is the ability to create and attach event listeners and subscribers, which can provide alerts when data is altered. If an external data source can generate notifications about data changes, the SharePoint event listener can subscribe to these notifications and know when data has been added or changed, and respond with some predefined action ("Pull the updated data into my SharePoint list," for example, which is a timesaver for users).
For more on SharePoint 2013
Quick Apps for SharePoint
SharePoint features that are ready to use
SharePoint licensing gets easier -- sort of
This doesn't just work for sites and users: Event listeners can also be embedded in custom code, within apps that are SharePoint-hosted. The event listener can also be used with WCF and SQL Server.
Another little-known aspect of this functionality is that it can be configured into a workflow. By capturing an item from an external source (say, a client name and associated data) and subscribing to notifications published by the source, it is possible to have a SharePoint site or application track the resulting virtual list and respond to changes made to it by triggering a workflow action. If information about the client changes in the external source, SharePoint detects the change and pulls the new information into SharePoint to update it locally, so that both SharePoint and the external source are in sync.
Apps for SharePoint
This brings us to the Apps for SharePoint feature, which enables off-the-shelf functionality in SharePoint sites and works with SharePoint Business Connectivity Services.
A useful strategy is to take a broad approach and use data models to create external content types. As a result, one model can service the app functionality deployed into many sites that make use of the app. This one-to-many functionality enables reuse and saves time in developing an efficient SharePoint architecture, saving development time, reducing maintenance and ensuring common functionality across apps.
Finally, Business Connectivity Services functionality is also available in SharePoint Online and includes an object model for representational state transfer, or REST, as well as OData. This enables additional SharePoint development flexibility.
This was first published in December 2013