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.