This webinar gives a first-hand look into AvePoint’s journey to build an app for the SharePoint 2013 Marketplace. It discusses the details of the technical decisions made throughout the entire process – from idea inception to delivery into the Microsoft Office store. The webinar also gives demonstrations on how to get started, and tells what resources you’ll need to use on your journey to build your own app.
5. Concerns
• Submission process approves SharePoint manifest
– No control over external changes
– Once App granted permissions
• App can do what it likes in that scope
• Trust element of vendor
– Will hurt small unknown companies
– Different to phone market – corporate data
7. SP App Design - A Choice of Three Approaches
App Web
(from .app)
Parent
Web
SharePoint-hosted App
Provision an isolated sub web
on a parent web
• Reuse web elements
(lists, files, out-of-box web
parts)
• No server code allowed;
use client JavaScript for
logic, UX
Azure Auto-
Provisioned App
Windows Azure + SQL Azure
provisioned invisibly as apps
are installed
Azure
(from
WebDeploy,
DacPac)
SharePoint
Web
Get remote
events from
SharePoint
Use CSOM/REST
+
OAuth to work
with SP
Cloud-based
Apps
Provider-Hosted App
“Bring your own server hosting
infrastructure”
Developers will need to isolate
tenants
SharePoint
Web
Your Hosted
Site
10. SP App upgrade process
Parent
Site
Child
Site A
Child
Site B
Child
Site C
Meetings
App
V1.0.0.0
Parent
Site
Child
Site A
Child
Site B
Child
Site C
Meetings
App
V1.0.0.0
Meetings
App
V1.0.0.0
Meetings
App
V2.0.0.0
Meetings
App
V2.0.0.0
13. App Scopes
• SPSite—site collection
• SPWeb—website
• SPList—list
• Tenancy—the tenancy scope is at
http://<sharepointserver>/<content>/<tenant>/
• performing search queries, accessing taxonomy
data, user profiles, etc.
14. App Rights
• Rights:
– Read-Only
– Write
– Manage
– Full Control (not supported in Store!)
• Not customizable!
• If an app is granted permission to a scope
– the permission applies to all children of the
scope
15. Setting App Rights
• App rights are set when:
– An app is installed by an SPWeb administrator
– An app is explicitly granted permission by a tenant administrator or
SPWeb administrator
– An end user gives consent
– An app is removed
• Once provisioned, the rights for an app cannot
change – they can only be revoked in whole
– This ensures the app will not have to account for missing rights, i.e.
become broken after installation
32. Unlimited Users
Support to have unlimited users accessing the app in real-time
Unlimited App instances
Add the AvePoint Meetings App to any SharePoint Site
Unlimited Meetings
Have as many meetings within your App as you like
One-off & Re-occurring meetings
Support forboth one-offmeetings and re-occurring meetings
Meeting timeline to see past tracked meetings
Track structured information
Support to track notes, actions and decisions
34. Provider Hosted
Our ownWindows Azure Web service tenant
To protect IP and also developers prefer over JavaScript
Meetings Data
Meetings data is stored in the Parent Site in SharePoint Lists
Online and On-premises
Want one app to work both online and on-premises
Licensing
Freemium/ Premium model
SignalR
Used SignalR for auto update on users browsers
35.
36. Attachments
Add attachmentsto agenda items
Rich Text Editor
Have a richer experience when adding notes to agenda items
Search
Search across Meetings to find notes, decisions and actions
Reporting
Roll-call in meetings to track attendance
Printing
Print out the meeting minute notes
The App Building Playbook for the SharePoint 2013 MarketplaceDevelopment – Level 200Jeremy Thake, SharePoint MVP and AvePoint Chief Architect, will give you a first-hand look into AvePoint Labs’ journey to build an app for the SharePoint 2013 Marketplace. Jeremy will discuss the details of the technical decisions made throughout the entire process – from idea inception through to delivery into the marketplace. If you’re thinking of building an app for the SharePoint 2013 Marketplace, this is the one session you don’t want to miss. Demonstrations on how to get started and what resources on your journey will be discussed. Attendees will leave this session with a better understanding of:• Utilizing the new SharePoint App model to bring your products to the Marketplace• How Windows Azure can be leveraged in SharePoint apps, showcasing the oAuth and auto provisioning features• When to use the SharePoint 2013 app model compared to the legacy approaches
PagesHome.aspxMain page of the appWeb Part PageScript and Style referencesElements.xmlInstalls home page to the isolated app siteScriptsApp.jsTemplate script fileElements.xmlInstalls script file to isolated app siteStylesApp.cssTemplate style sheetElements.xmlInstalls css to isolated app siteApp ManifestAppManifest.xmlProductID, Version, TitleTile and StartPageUrlsAppEventUrls: Installed, Uninstalling, UpgradedApp Permission requests
OAuthallows users to authorize SharePoint to provide access tokens to apps that can be used to retrieve data from SharePointEach token can be used to access:A specific siteA specific resource (for example, documents from a folder)For a defined duration (for example, 30 minutes)No need to share username and password
An app uses permission requests to specify the permissions that it needsThe requests specify both the rights and scope which are neededScopes indicate where in the SharePoint hierarchy a permission request applies. SharePoint supports four different content scopes:SPSite—site collectionSPWeb—websiteSPList—listTenancy—the tenancy scope is at http://<sharepointserver>/<content>/<tenant>/There are also scopes for things like performing search queries, accessing taxonomy data, user profiles, etc.
Permission rights indicate what an app is permitted to do within a scope. SharePoint supports four rights levels for content (there are others for things like search, term store, etc.):Read-OnlyWriteManageFull ControlUnlike SharePoint user roles, these rights levels are not customizableIf an app is granted permission to a scope, the permission applies to all children of the scopeIf an app is granted perms to an SPWeb, the app is also granted perms to each SPList in the SPWeb, and all SPListItems in each list, but NOT each subweb