0

What debuted in SharePoint 2010 and what happened in 2013?

This post will help you understand new features added to SharePoint 2010 and also its new first-class tools, that help developers speed up their development, debugging and deployment process. Since 2013 is already out and with companies rapidly adopting it, it makes sense at this point to mention about the enhancements to each of them in 2013.

1. Sandbox Solutions and Resource Governors:

Quick Overview:
Sandbox solutions is a new concept for 2010. A sandbox solutions run in a restricted execution environment that allows programs to access only certain resources which would consequently contains/restricts bugs to that Sandboxed environment only with out affecting the rest of the SharePoint farm.

One good examples would be Sandbox solutions cannot utilize certain local or network resources, and  may not have access content outside of the site collection they are located in [1]. To get an overview of when to use Sandbox solutions with 2010 you can read my post- Sandbox Solutions – SharePoint 2010

What changed in 2013?
Things changed in SharePoint 2013, Microsoft do not actively  encourage adopting Sandbox solutions as first design choice. These will be still available for backward compatibility only. Microsoft encourages to use ‘Apps‘ instead and leverage their new ‘Apps Model’.

2.Client Object Model

Quick Overview:
With SharePoint 2007, there were limited options to interact with SharePoint. The SharePoint object model is available only for server side applications only. Which means that your code has to be hosted and running on one of the SharePoint servers. There are very limited options for Client applications to interact with SharePoint data.

The only option available in SP 2007  for client applications is to use the web services API. This always worked great on server side code where the service metadata is downloaded and developers could use them seamlessly. But client-side technologies like JavaScript did not fit well with this set up.

So ‘Client Object Model’ was introduced to help develop client side applications that can leverage REST. Also WPF(Windows Presentation Foundation) or Silverlight  also needed something like this to build faster and bandwidth friendly apps.

Client Object Model comes in two flavors

a. Support for .net based clients like WPF or Silverlight apps.
These applications would typically add reference to the following dlls and  use appropriate classes/ methods/ objects to develop applications.
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
Microsoft.SharPoint.Client.Silverlight.dll
b. Support for Javascript based clients
These application would typically reference
SP.js
SP.Core.js
SP.Ribbon.js
SP.Runtime.js.

All of these files are also have debug versions (SP.Debug.js) available for debugging purposes, but these files are larger in size and should not be used on production.

So effectively use them in development environment, by setting SharePoint deployment to use debug-versions  ‘<deployment retail=”false”>‘ under ‘System.web’ element.

What changed in 2013?
All the Client object api calls in 2010 are made via a WCF entry point which is not directly accessible. Proxies have to be used build via .NET code or JavaScript libraries. There were harder to write, there was no compile time checking and less intellisense support.

These are now lot improved in 2013

– Fully leverage REST based API calls that use basic HTTP for CRUD operations

– Client Object model now supports oData protocol. OData is a mainstream data access api for HTTP based clients  for creating and consuming data APIs. OData builds on core relies on protocols like HTTP and commonly accepted methodologies like REST.

– Extended API to support more server-side functionalities like User Profiles, Search, Taxonomy, Search, Feeds, Publishing, Sharing, Workflow, E-Discovery, IRM, Analytics, Business Data etc.

– CSOM also supports Windows Phone Applications

– **Deprecated ‘ListData.svc’, but still available for backward compatibility for older applications. ‘Client.svc’ is introduced with more endpoints catering for more functionality.

More on the following. Keep Reading 🙂

3. Business Connectivity Services

4. List Enhancements

5. Enhancements to Visual Studio

6. Web Solution Packages

7.  Developer Dashboard

8. SilverLight integration

9. Web 2.0 Protocols and New Standards

10. LINQ Enhancements

11. SharePoint Designer Enhancements

12. Visio, Access and InfoPath Enhancements

References:

1. MSDN: Sandbox Solutions Overview (SharePoint Server 2010)