
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.