SharePoint 15; a peek under the covers

First of all, at the time of writing this post, I do not have access to any of the SharePoint 15 TAP bits, or have received any presentations related to SharePoint 15. All the information is based on public information released by Microsoft.

On January 30th, they released SharePoint 15 Technical Preview Managed Object Model Software Development Kit, This contains a CHM file that outlines the changes to the SharePoint API’s. Looking at the API changes, we can get some idea of what is planned.

Since they have started to document the API’s already, maybe SharePoint 15 will be fully documented when released 🙂

NOTE: As it is a long time until it ships, and Betas are available, Microsoft could choose to cut or change things completely.

Support for Apps

There are several API changes that indicate that SharePoint will be getting App support.

SPApp: Represents an app loaded onto Microsoft SharePoint Server and ready to be installed.
SPAppInstance: Represents an SPApp object installed to a specific SPWeb site
SPAppCatalog: Represents all of the SPAppInstance objects installed on an instance of Microsoft SharePoint Server. It provides querying capabilities for discovering installations.
SPWeb.LoadAndInstallApp(): Uploads and installs an app package.
PackageSource enum: Specifies the source of the package that is associated with a provisioned database. Some of the valid values are StoreFront, CorporateCatalog, and DeveloperSite
IDatabaseProvider interface: Provides methods to manage the lifecycle of database

What do these changes mean for Sandboxed Solutions? When do you chose what approach to use? What are the capabilities of an App? PackageSource.StoreFront is described as MarketPlace, so it looks like Microsoft will set up some central repository for apps.

Since we already have Web Applications (web apps), I’m just looking forward to the confusion when people start talking abouts apps. What type of app do they mean?

Multiple compatibility levels

Several API’s have been introduced to handle compatibility levels.

SPFarm.GetPersistedFeatureDefinition method (Guid featureId,int compatibilityLevel): Returns the SPFeatureDefinition object for the given compatibility level based on the featureId parameter value.
SPUtility.GetLayoutsFolder (): Returns the versioned layouts folder for the specified site collection/site
SPUtility.ContextLayoutsFolder: Gets the versioned layouts folder for the context site.
SPSite.CompatibilityLevel: Gets the major version of this site collection for purposes of major version-level compatibility checks.

Since the system supports multiple compatibiliy levels of features and layouts folder, it will be interesting to see what the file structure will look like for the rest of the system. Are they moving to a single file structure where each release has seperate folders? It wouldn’t surprise me if this functionality was driven by Office 365; that way they can use the same farm to host multiple versions and let customers upgrade when they are ready.

Licensing framework?

SPWebApplication.IsUserLicensedForEntity():Checks if the currently logged in user has the proper license to access the specified entity.

Could this indicate generic licensing framework that we can leverage in our solutions?


With the amount of changes Microsoft implemented between 2007 and 2010, the information currently available in the API documentation is probably just a thimble of a vast ocean of changes planned for the next release. It will be very interesting to see what else will be coming down the road.

At least it looks like us ‘boring’ SharePoint developers can become ‘cool’ by putting ‘app developer’ on our resume.


One Response to SharePoint 15; a peek under the covers

  1. The licensing framework is closely tied to the SharePoint App framework, so you’re right in that it will allow you to license your solutions, provided you have them in the App marketplace.

    I wrote about the licensing in SP15 here:


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: