the app building playbook for sharepoint 2013 marketplace
DESCRIPTION
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.TRANSCRIPT
The App Building Playbook for SharePoint 2013 MarketplaceJeremy ThakeChief Architect, AvePoint Inc.
SpeakerAuthor
AvePoint Labs
Chief ArchitectText/Icon/Pic
Jeremy Thake
@jthakewww.jeremythake.com
Agenda
• The marketplace• The new app model• Submission process• AvePoint Task & Calendar Sync• AvePoint Meetings
The marketplace
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
The app model
SP App Design - A Choice of Three Approaches
App Web (from .ap
p)
Parent Web
SharePoint-hosted AppProvision 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 AppWindows 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
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Architecture of Apps
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
SharePoint
SharePoint Azure Web & Worker Roles
Web application
IIS Web Server
Site CollectionRoot Site
App 1SP Hosted
App 2Azure
Hosted
App 3Provider Hosted
App 2Web
App 2SQL
App 3Web
Sub Site
App 3Provider Hosted
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Versioning
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
SharePoint
SharePoint Azure Web & Worker Roles
Web application
IIS Web Server
Site CollectionRoot Site
App 1V1.0
App 2V1.0
App 3V1.0
App 2WebV1.0
App 2SQLV1.0
App 3WebV1.0
Sub Site
App 3V1.0
App 2WebV1.1
App 2SQLV1.1
App 2WebV2.0
App 2SQLV2.0
App 3V1.1
App 3WebV1.1
App 2V2.0
Marketpla
ce
SP App upgrade process
New Version Available
1.0.0.01.0.1.0
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
App Trust
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
OAuth Token ExampleSharePoint
SharePoint Azure Web & Worker Roles
Web application
IIS Web Server
Site CollectionRoot Site
App 1 App 2 App 3
App 2Web
App 2SQL
App 3Web
Site CollectionRoot Site
App 3
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.
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
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
Store Submission Process
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Seller Dashboard
• Different from Windows 8, Windows Phone, …• Pre-prepare submission…or just fill in and save as draft
• http://msdn.microsoft.com/en-us/library/jj220033.aspx
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Validation policies
• Apps provide value to the Office store customer• Can display ads• In-app purchases• Behave predictably• Put the customer in control• Appropriate for global audience• Apps are easily identified and understood• Updates must not decrease your apps functionality• Refunds• Utilize supported capabilities
• http://msdn.microsoft.com/en-us/library/jj220035.aspx
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Validation Checklist
• Auto-hosted not supported in store• No “Full Control” supported• Locales not supported in SharePoint 2013
• http://msdn.microsoft.com/en-us/library/jj938162.aspx
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Checks – app & submission
• Check your Client ID, Product ID and Version Numbers
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Checks – browsers!
• 8 / 9 /10
• Latest
• Latest
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Checks – graphic elements
• Icons: 96px x 96px• Screen shots: 512px x 384px– no videos like most stores
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Checks – Test Steps
• Create a Test Document to walk the tester through how to use the app
• Upload to SkyDrive• Link to that in store submission
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Checks - Releases
• Keep all your app packages, icons, screenshots in source control
AvePoint Task & Calendar Sync
What is the problem?
Syncing SharePoint Calendars with ExchangeCan use Outlook Overlays but doesn’t scale
Doesn’t show as not-available as on overlays
Syncing SharePoint Tasks with ExchangeOut of the box SharePoint 2013 can sync to Exchange 2013Not everyone on Exchange 2013 on-premises
Task & Calendar Sync for SharePoint 2013
App ConfigurationSetup your Exchange account with encrypted Credentials
Setup Task and Calendar Lists that you wish to sync
Exchange supportAll your tasks and events will be in Exchange and therefore Outlook and mobile devices
SharePoint 2007 and 2010 supportAs long as the SharePoint environments can be accessed via the Internet, 2007 and 2010 Lists can also be sync’d.
Architecture
Azure Worker role
Azure Web role
Azure SQL role
SharePoint 2013App Package
AvePoint Meetings
What is the problem?
Hard to track meetingsNo structured way of capturing information
Historically hard to see decisions made and actions assigned
OneNote trackingCan only assign Outlook Tasks for myselfFocused more on personal note taking
Meetings workspace deprecatedNo migration story from SharePoint 2010
Didn’t solve problems anyway
Meetings for SharePoint 2013
Planning meetingsMeeting invitations support reoccurring
Attendees can create agenda items to discuss and upload relevant materials
In-meetingAll attendees can be in the app recording notes, assigning actions and recording decisionsView previous meetings to find decisions and notes
Track progressSee all the actions and their progress
Automatically gives you My Tasks and sync up to Exchange
Free version
Unlimited UsersSupport to have unlimited users accessing the app in real-time
Unlimited App instancesAdd the AvePoint Meetings App to any SharePoint Site
Unlimited MeetingsHave as many meetings within your App as you like
One-off & Re-occurring meetingsSupport for both one-off meetings and re-occurring meetingsMeeting timeline to see past tracked meetings
Track structured informationSupport to track notes, actions and decisions
Architecture
Azure Web role
Azure SQL role
SharePoint 2013App Package
Data Here
Architecture
Provider HostedOur own Windows Azure Web service tenantTo protect IP and also developers prefer over JavaScript
Meetings DataMeetings data is stored in the Parent Site in SharePoint Lists
Online and On-premisesWant one app to work both online and on-premises
LicensingFreemium / Premium model
SignalRUsed SignalR for auto update on users browsers
Premium version
AttachmentsAdd attachments to agenda items
Rich Text EditorHave a richer experience when adding notes to agenda items
SearchSearch across Meetings to find notes, decisions and actions
ReportingRoll-call in meetings to track attendance
PrintingPrint out the meeting minute notes
Q&A
Jeremy Thakewww.NothingButSharePoint.comwww.jeremythake.comwww.AvePoint.com
[email protected]@jthakewww.linkedin.com/in/jeremythake
References
© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
Community
• Getting a SharePoint 2013 app submitted – Aidan Garnishhttp://www.aidangarnish.net/post/Getting-a-SharePoint-2013-App-Submitted-to-the-Office-Store.aspx
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
http://sharepoint.microsoft.com/en-us/preview/sharepoint.aspx
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
http://msdn.microsoft.com/en-us/library/jj162979(v=office.15).aspx
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
http://technet.microsoft.com/en-us/sharepoint/fp142366.aspx
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
http://delicious.com/jthake/%23sharepoint2013
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
https://www.nothingbutsharepoint.com
© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.
https://www.yammer.com/spyam