Thursday, June 16, 2011

Business Data Catalog (BDC) VS Business Connectivity Services (BCS)


What is Business Connectivity Services in SharePoint ?
SharePoint 2010 provides a new set of technologies known as Business Connectivity Services for retrieving, editing, updating, and deleting data from external systems(for e.g. data from ERP or CRM database). BCS enhances the SharePoint platform’s capabilities with out-of-box features, services and tools that streamline development of solutions with deep integration of external data and services.

How is BCS Different from BDC in SharePoint 2007 ?
Even though the BDC made it relatively easy to create read-only solutions that display data in the Business Data List Web Part, it was not so simple to create a solution that enabled users to make changes and write that data back to the external store.
BCS, on the other hand, provides you with Read-Write capable connectivity from Client and Server to Database, WCF/Web Services and .Net Sources.
A Developer can now use SharePoint Designer 2010 and VS 2010 rapid development tools to access external data. For e.g. you can now create read-write connections to external database from SharePoint designer and then can create webpart\other solutions to surface that data.
The BCS data can further be used in other SharePoint Fetaures such as Business Intelligence,Collaboration and in Enterprise Search.

SSP Vs Service Applications

Differences between SSP and Service Application are:
What are:
SSP : A Web application that contain all the services proived by sharepoint, and can be shared by various web applications. Some of the services are Search, Infopath,User Profiles etc.
Service Application : The Services that use to be together in SSP, now run independently as a Service Application.
Build -In:
SSP : Shared Services Provider (SSP) was only a part of Office SharePoint Server 2007.
Service Applications : The service application architecture is however, built into Microsoft SharePoint Foundation 2010 itself.
SSP Administration Site:
SSP : They require a SSP administration site to configure the associations with web applications.
Service Application : They are running independently and can be individually associated with the one or more web applications.
Web application's Burden :
SSP : Any Web application associated with the SSP has to take the burden of all the shared services in that SSP.
Service Application : Each web application now have a "Service application group" where they can just add the Services that they need.
Replication :
SSP : The Services where configured in SSP itself and were not replicated. All web applications will use one set of srevices.
Service Application : If the service is needed to be shared between few web applications, the service is re-configured and added into each web application's custom service connection group.

Get list items with Silverlight in Sharepoint 2010

In SharePoint 2010 we use three types of Client Object model extenstions. To get all items using .Net managed client Object model see -
.Net managed client Object model -

To get all items using ECMASCRIPT\Javascript object model see -
Using ECMAScript
In this post however, we will see an example of retrieving list items using Silverlight Client object model in SharePoint 2010.
using SP = Microsoft.SharePoint.Client;
namespace SPSilverlight
public partial class MainPage : UserControl
IEnumerable < SP.List > listItems = null;
public MainPage()
private void getItemsSucceeded(object sender,
Microsoft.SharePoint.Client.ClientRequestSucceededEventArgs e)
Dispatcher.BeginInvoke(() = >
listBox1.ItemsSource = listItems;
listBox1.DisplayMemberPath = "Title";
private void getItemsRequestFailed(object sender,
Microsoft.SharePoint.Client.ClientRequestFailedEventArgs e)
Dispatcher.BeginInvoke(() = >
MessageBox.Show("Error: " + e.ErrorCode + " " + e.ErrorDetails + "
" + e.Message + " " + e.StackTrace.ToString());
private void button1_Click(object sender, RoutedEventArgs e)
ClientContext context = null;
if (App.Current.IsRunningOutOfBrowser)
context = new ClientContext(
context = ClientContext.Current;
var query = from listCollection
in context.Web.Lists
where listCollection.Title != null
select listCollection;
listItems = context.LoadQuery(query);
ClientRequestSucceededEventHandler success = new
ClientRequestFailedEventHandler failure = new
context.ExecuteQueryAsync(success, failure);

No comments: