My primary focus as a developer is to create WCM sites for my clients. Typically, the WCM sites I work on tend to be fairly self-referential, in the sense that, yes, I might have a web part that has a data source, but that data source is almost always some list or library within SharePoint itself. That being said, I have never had the need to build any application that uses Business Connectivity Services (BCS). In SharePoint 2007, I felt like the service itself was a first-generation product that had massive limitations (like only allowing for “read” operations) and had fairly poor performance, so I actually steered clients away from using it. However, I feel like the story has changed for SP2010 and that BCS is actually a fairly robust service now, worthy of learning about and using.
I’ve always been a big fan of Wrox books (even before I authored one of their books) because, in my experience, they tend to find good authors. In light of that, I decided to read the newly published Wrox book by Scot Hillier and Brad Steveson, Professional Business Connectivity Services in SharePoint 2010. I found it to be an incredibly helpful resource that walked me through the basic topics I needed to know to get BCS working.
The book starts out explaining basic concepts in BCS such as what an external content type (ECT) and external list (EL) are, as well as what a metadata model is and how it’s stored. It goes on to walk you through how you can create a BCS metadata model using SharePoint Designer, then it talks about how you can incorporate BCS data into code-driven solutions (like web parts) or into Office applications. The book walks you through the process of building a custom .NET assembly connector. It ends up talking about security settings (especially in regards to the Secure Store Service) and how you can index BCS data using SharePoint search.
I had several specific pieces of information that I needed to know, and I felt like the book clarified a number of these points very well. Here’s a list of things the book addressed for me specifically:
  • How are BCS models stored and versioned?
  • How do you create a BCS model that connects to a back-end data source, but then deploy that model in a tiered environment, where the data source might be different in Dev, QA, and Prod?
  • How do you execute SQL statements vs. stored procedures?
  • How do you build a .NET assembly connector?
  • How do you use BCS in conjunction with the ADO.NET entity framework?
  • How do you crawl BCS data? How can you leverage the SharePoint search components with BCS data?

As I was learning about Business Connectivity Services, I also took a look at the SharePoint Patterns and Practices guidance documentation, which actually had quite a bit of good material on BCS. You can view and download that documentation from the Codeplex site at

I highly recommend this book to anyone trying to learn the ins and outs of Business Connectivity Services in SharePoint 2010.