I have found that Non-SharePoint Guys are recommending BCS (Business Connectivity Services) without Rationale. BCS is a good feature, but we have to understand the Costs & Implications before blindly using it!
Following are the scenarios where BCS can turn to be an advantage:
- Leverage You have an existing Database Table which users are currently updating. In this case BCS provides a leverage of External List to connect to this table. Thus SharePoint users can also work on the Database Table in a synchronized manner. No additional coding / synchronizing efforts.
- Support All editions of SharePoint On-Premise supports BCS.
Following are the disadvantages of using BCS for new systems:
- SharePoint Online Not all Plans of SharePoint Online supports BCS. So if you are designing a product that should be living in heterogeneous client environments – think before you decide. Check References for more information.
- Item-level Permissions BCS do not support Item-level permissions since the data is residing on a different source like SQL table.
- Alerts Alerts are not supported in BCS External Lists.
- User Context You will need additional configuration efforts to Impersonate the User.
- Secured Store Service You might get into SSS overheads based on the Impersonation Models.
- Authentication Method Based on client SharePoint environment you may face difficulty in choosing right Authentication Method. Check References for more information.
- Firewall Issues Since External Systems or SQL Databases live in Firewall Or Behind the scene infrastructures, there will be additional Configuration & Troubleshooting Efforts for a successful BCS Connection
- Automation Deployment If you are using Automation Deployment Scripts, you will need additional R&D time for writing the accurate BCS deployment steps.
BCS can turnout to be a Leverage or Liability based on your Current & Future Requirements
In this post we have examined few good & bad cases of using BCS.