Monday, June 14, 2010

What’s New for Developers in SharePoint 2010 Object Model?



It is always exciting to hear what’s new and what can we do with it. You probably know that SharePoint 2010 comes with lots of new features and tools for developers, like: Sandboxed Solutions, SharePoint Ribbon, SharePoint Dialogs, Silverlight Web Part, List Lookups and Relationships, Business Connectivity Services, LINQ, Client Object Model, REST, Developer Dashboard, Visual Studio 2010 SharePoint tools extensibility, Visual Studio 2010 SharePoint Project Types and Items SharePoint Designer 2010 and more and more and more… this stuff is great, but what is for me as a developer? Does it make me more productive? And most important, what can I build that will make my application better.


My first impression from SharePoint 2010 is that SharePoint is now officially Rich Application Framework, it is not anymore only web application that we can build on. It is a framework that we can create applications that runs inside SharePoint or the other way around; integrate SharePoint into our solution using the Client API, Web Services or REST to access SharePoint data.


The figure below shows a diagrammatic overview of the (main) new components in SharePoint 2010 and the red boxes are the solution we can build or use with this functionality.



As you can see the SharePoint 2010 object model extends with additional libraries and functionality that can be called from almost anywhere.


SharePoint Server API

The SharePoint Server API includes some new great features which allow developers to quickly create solutions and to connect to other applications and systems.


LINQ

With LINQ we can run queries for retrieving SharePoint data. LINQ also provides strongly typed access to data in Visual Studio offering compile time validation to help avoid runtime errors. And the most important syntax is very similar to SQL, no more CAML ;) .


LINQ can be used to query, in principle, any data source whatsoever, all that is necessary to make a data source accessible with LINQ is that to create a LINQ provider for the data source. One of the coolest things is the possibility to join results from multiple lists and multiple data sources. This is very a powerful element to use SharePoint Lists; you can almost see this as a Data Layer.


More information about managing data with LINQ to SharePoint you can find here.


REST (Representational State Transfer)

REST help developers rapidly build applications on the SharePoint framework, having the SharePoint APIs available everywhere makes it possible to integrate to SharePoint from almost any applications including those on non-Windows platforms whether they are on the client, server or in the cloud. Unlike SOAP, REST is not a protocol, is using HTTP to retrieve and send data and is more like a Web APIs with more direct communications.


See this sample on msdn: Accessing Excel Services REST API


Business Connectivity Services (BCS)

With the Business Connectivity Services it is now easier to integrate SharePoint 2010 with back end systems. The main benefits are the Read/WRITE to External Systems, Familiar UI to External Data, No-Code Connectivity to External systems, Offline Access to External Data, Governance of External Data, Discovery Via Search, Life Cycle Management. All this makes it easy to integrate SharePoint with external systems. Business Connectivity Services in SharePoint includes these features:


• Business Data Connectivity (BDC) service

• BDC Connectors and the pluggable Connector Framework

• External lists

• External data columns

• External data in search

• Secure Store service

• External Data Web Parts

• Profile pages

• External data in workflow

• Rich client integration


Reference: Business Connectivity Services Object Model


SharePoint Client API

This API’s are complete new in SharePoint. Finally an easy way to build Rich Internet Application like Ajax and Silverlight that cans retrieve data from our SharePoint application.


Silverlight

With the Silverlight Client API we can easily develop Rich Internet Applications like Silverlight that integrate in our SharePoint application. This Silverlight application can run on the browser or on the client desktop.


To create a Silverlight Application with the SharePoint Client Object Model, use Visual Studio 2010, select Silverlight Application and add a reference to these two assemblies:

• Microsoft.SharePoint.Client.Silverlight.dll

• Microsoft.SharePoint.Client.Silverlight.Runtime.dll

You can find them under the C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin folder


See this MSDN article: Using the Silverlight Object Model


ECMAScript

With the ECMAScript Client API we can easily develop Rich Internet Applications like Ajax or simple ASPX page with JavaScript that integrate in our SharePoint application.


To create an ASPX page with the SharePoint Client Object Model, add an ASPX page under the Layouts folder (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS) and register the SP.js file by adding a ScriptLink. See the complete ASPX page here.


.NET Managed

With the .NET Managed API we can easily develop Rich Desktop Applications like Windows Presentation Foundation (WCF), Windows form application or an Add-In to Outlook that integrate with our SharePoint application. These applications can run on the client desktop.


To create Windows Application with the SharePoint Client Object Model, use Visual Studio 2010, select Windows Form Application and add a reference to these two assemblies:

• Microsoft.SharePoint.Client.dll

• Microsoft.SharePoint.Client.Runtime.dll

You can find them under the C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ ISAPI folder


See this MSDN article: Creating a Basic SharePoint Foundation Client Application.


Summary

SharePoint 2010 Object Model include numbers of new features and functionalities for developers, this article summaries these new capabilities and shows the powerful solutions we can build with!


No comments:

Post a Comment