Thursday, April 5, 2012

Will SharePoint 15 (2013) finally get an App Store?


by Mark Jones | Jan 31, 2012
Just decided to have a few minutes investigation into the recently released SharePoint 15 Technical Preview Managed Object Model SDK to see if there is any insight into what's coming up!
Before I get started, please note this information is all deduced from the Object Model documented in the SDK and is solely my opinion of what "may" happen. The SDK clearly states that it is "subject to change", so don't bet the crown jewels on anything in this post!

The SPApp Store classes

(SPApp, SPAppCatalog, SPAppInstance, SPApplicationCredentials, etc.)
Picture showing SharePoint 2013 AppStoreWell, it looks like SharePoint's going to get some tight integration with an App Store (aka market place). This has been on the cards for quite a while, but I thought they'd have to get the API developed to support it eventually. Reading between the lines, I think there's going to be somewhere in the SharePoint GUI to browse for an "App" in an on-line App Store. Once selected you will pay (or trial it) then using the SPWeb's new LoadAndInstallApp() method it will stream the App into the App database (and install it as a Sandboxed solution). It's more than likely going to be be a bit like the Web Part Gallery on steroids - (I also wouldn't be suprised if the web part gallery gets replace with the 'Corporate Catalog' see below). 
I would also imagine there's a few timer jobs that poll the "App Store" (or package source) to check for updates and 'news'. Obviously, this is all guess work based on looking at a few barely documented classes, but it's fun! It also looks like there is a method at the web application level to see if a user is licensed, which again adds weight to new App Store support!

SharePoint 2013 supports OAuth

The other really interesting find is around support for OAuth. If you don't know what OAuth is then think of it as way for you to give one site (e.g SharePoint) the rights to use assets from another (e.g. Facebook), without having to store user names and passwords. This is how LinkedIn, Facebook, Twitter grant all the 3rd party apps the rights to use your data from those accounts. I think - as this is going to be baked into SharePoint - I can see a lot of cross-fertilization with other external social networks. For example, imagine LinkedIn contacts merged into your internal colleagues on your MySite? Or, your Twitter feed mixed into the Activity feed and so on. This opens up lots of possibilities and is probably essential now that the line between home and work are blurring.

App Store Database Provider

Other evidence to support the introduction of a new App Store is the addition of a new Database Provider set of classes. It looks like when a 'package' is download it will be configured to use any back-end database that supports the new Database provider interfaces. I imagine there will be concrete implementations for SQL and SQL Azure to start with. 

App Store sources?

One cool thing to note is the introduction of the Microsoft.SharePoint.Administration.DatabaseProvider.PackageSource' Enum. If you look at the list below, you will not all of the different sources that can 'serve' up an app package :
  • Store Front
  • Corporate Catalog
  • Developer Site
  • Object Model
  • Remote Object Model
Very interesting times ahead! I think we may just have to think about making DocRead our 'read and acknowledge solution' App Store ready - sooner that we thought! The only question I have now is around the App Stores, will there be 1 - managed by Microsoft, or will they offer the API out to others? The doc isn't clear yet, but lets wait and see!