46
The App Building Playbook for SharePoint 2013 Marketplace Jeremy Thake Chief Architect, AvePoint Inc.

The app building playbook for SharePoint 2013 marketplace

Embed Size (px)

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.

Citation preview

Page 1: The app building playbook for SharePoint 2013 marketplace

The App Building Playbook for SharePoint 2013 MarketplaceJeremy ThakeChief Architect, AvePoint Inc.

Page 2: The app building playbook for SharePoint 2013 marketplace

SpeakerAuthor

AvePoint Labs

Chief ArchitectText/Icon/Pic

Jeremy Thake

@jthakewww.jeremythake.com

Page 3: The app building playbook for SharePoint 2013 marketplace

Agenda

• The marketplace• The new app model• Submission process• AvePoint Task & Calendar Sync• AvePoint Meetings

Page 4: The app building playbook for SharePoint 2013 marketplace

The marketplace

Page 5: The app building playbook for SharePoint 2013 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

Page 6: The app building playbook for SharePoint 2013 marketplace

The app model

Page 7: The app building playbook for SharePoint 2013 marketplace

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

Page 8: The app building playbook for SharePoint 2013 marketplace

© 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

Page 9: The app building playbook for SharePoint 2013 marketplace

© 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

Page 10: The app building playbook for SharePoint 2013 marketplace

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

Page 11: The app building playbook for SharePoint 2013 marketplace

App Trust

Page 12: The app building playbook for SharePoint 2013 marketplace

© 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

Page 13: The app building playbook for SharePoint 2013 marketplace

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.

Page 14: The app building playbook for SharePoint 2013 marketplace

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

Page 15: The app building playbook for SharePoint 2013 marketplace

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

Page 16: The app building playbook for SharePoint 2013 marketplace

Store Submission Process

Page 17: The app building playbook for SharePoint 2013 marketplace

© 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

Page 18: The app building playbook for SharePoint 2013 marketplace

© 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

Page 19: The app building playbook for SharePoint 2013 marketplace

© 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

Page 20: The app building playbook for SharePoint 2013 marketplace

© 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

Page 21: The app building playbook for SharePoint 2013 marketplace

© 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

Page 22: The app building playbook for SharePoint 2013 marketplace

© 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

Page 23: The app building playbook for SharePoint 2013 marketplace

© 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

Page 24: The app building playbook for SharePoint 2013 marketplace

© 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

Page 25: The app building playbook for SharePoint 2013 marketplace

AvePoint Task & Calendar Sync

Page 26: The app building playbook for SharePoint 2013 marketplace

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

Page 27: The app building playbook for SharePoint 2013 marketplace

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.

Page 28: The app building playbook for SharePoint 2013 marketplace

Architecture

Azure Worker role

Azure Web role

Azure SQL role

SharePoint 2013App Package

Page 29: The app building playbook for SharePoint 2013 marketplace

AvePoint Meetings

Page 30: The app building playbook for SharePoint 2013 marketplace

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

Page 31: The app building playbook for SharePoint 2013 marketplace

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

Page 32: The app building playbook for SharePoint 2013 marketplace

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

Page 33: The app building playbook for SharePoint 2013 marketplace

Architecture

Azure Web role

Azure SQL role

SharePoint 2013App Package

Data Here

Page 34: The app building playbook for SharePoint 2013 marketplace

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

Page 35: The app building playbook for SharePoint 2013 marketplace
Page 36: The app building playbook for SharePoint 2013 marketplace

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

Page 37: The app building playbook for SharePoint 2013 marketplace
Page 38: The app building playbook for SharePoint 2013 marketplace

Q&A

Jeremy Thakewww.NothingButSharePoint.comwww.jeremythake.comwww.AvePoint.com

[email protected]@jthakewww.linkedin.com/in/jeremythake

Page 39: The app building playbook for SharePoint 2013 marketplace

References

Page 40: The app building playbook for SharePoint 2013 marketplace

© 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

Page 41: The app building playbook for SharePoint 2013 marketplace

© 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

Page 42: The app building playbook for SharePoint 2013 marketplace

© 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

Page 43: The app building playbook for SharePoint 2013 marketplace

© 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

Page 44: The app building playbook for SharePoint 2013 marketplace

© 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

Page 45: The app building playbook for SharePoint 2013 marketplace

© 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

Page 46: The app building playbook for SharePoint 2013 marketplace

© 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