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:
|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:
|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.