The app building playbook for SharePoint 2013 marketplace

Preview:

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

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

jeremy.thake@avepoint.com@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

Recommended