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.