I was flipping around the SharePoint 15 Technical documentation on the API… I found a few interesting tidbits in there:

There seems to be a lot of references to an “SPApp” class. This SPApp seems to make reference to actual apps (read webparts that are self contained like Apple/Android/WinPhone7 Mobile Apps) that would run on the SharePoint 15 platform.

Further investigation bring up a new method in the SPWeb class to LoadAndInstallApp() which is described as: “Uploads and installs an app package.” Which returns a Microsoft.SharePoint.Administration.SPAppInstance that references the instance of the created application.

An SPAppInstance represents an SPApp object installed to a specific SPWeb site.

The SPAppInstanceStatus represents the lifecycle status of the SPApp and contains the following members:

Member name Description
InvalidStatus An internal product error has occurred.
Installing The app instance is in the process of installing.
Canceling The app instance was installing, but was cancelled, and is   now uninstalling.
Registering The app instance is in the middle of a transaction   registering tasks for a state transition.
Uninstalling The app instance is uninstalling.
Installed The app instance is installed.
Uninstalled The app instance is uninstalled.
Upgrading The app instance is upgrading.
Initialized The app instance has been created, but not yet installed.
UpgradeCanceling The app instance was upgrading, but has cancelled.
Disabling The app instance is disabling.
Disabled The app instance is disabled.


So these apps would be loaded at the SPWeb level… but where do they come from??

The Microsoft.SharePoint.Administration.DatabaseProvider.PackageSource enumeration seems to provide the answer with the following sources list:

Member name Description
InvalidSource An internal product error has occurred.
StoreFront The package is from the marketplace.
CorporateCatalog The package is from a corporate gallery.
DeveloperSite The package is from a developer site.
ObjectModel The package is loaded via an object model.
RemoteObjectModel The package is uploaded via CSOM.


The documentation indicates there would be apps coming into SharePoint from a marketplace (aka App Store), a Corporate catalog (internal gallery that departments could reuse the apps) or from a developer site.

There are a lot of other documentation on these SPApp classes like SPApplicationCredentials, SPAppCatalog, AppManagement.SPAppPrincipalInfo, SpAppDeployment etc…

There will be more coming as I discover new exciting details on the next version of SharePoint.