This week I was attending the SharePoint 2010 Connections Conference in Amsterdam.
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!