SlideShare a Scribd company logo
The App Building Playbook for
SharePoint 2013 Marketplace
Jeremy Thake
Chief Architect, AvePoint Inc.
Jeremy Thake
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 .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
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.
© 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 Collection
Root Site
App 1
SP Hosted
App 2
Azure
Hosted
App 3
Provider
Hosted
App 2
Web
App 2
SQL
App 3
Web
Sub Site
App 3
Provider
Hosted
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.
© 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 Collection
Root Site
App 1
V1.0
App 2
V1.0
App 3
V1.0
App 2
Web
V1.0
App 2
SQL
V1.0
App 3
Web
V1.0
Sub Site
App 3
V1.0
App 2
Web
V1.1
App 2
SQL
V1.1
App 2
Web
V2.0
App 2
SQL
V2.0
App 3
V1.1
App 3
Web
V1.1
App 2
V2.0
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
App Trust
OAuth Token Example
© 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 Collection
Root Site
App 1 App 2 App 3
App 2
Web
App 2
SQL
App 3
Web
Site Collection
Root 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
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
© 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.
AvePoint Task & Calendar Sync
Syncing SharePoint Calendars with Exchange
Syncing SharePoint Tasks with Exchange
App Configuration
Exchange support
SharePoint 2007 and 2010 support
Architecture
Azure Worker role
Azure Web role
Azure SQL role
SharePoint 2013
App Package
AvePoint Meetings
Hard to track meetings
OneNote tracking
Meetings workspace deprecated
Planning meetings
In-meeting
Track progress
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
Architecture
Azure Web role
Azure SQL role
SharePoint 2013
App Package
Data Here
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
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
Q&A
Jeremy Thake
www.NothingButSharePoint.com
www.jeremythake.com
www.AvePoint.com
jeremy.thake@avepoint.com
@jthake
www.linkedin.com/in/jeremythake
References
Community
• Getting a SharePoint 2013 app submitted – Aidan
Garnish
http://www.aidangarnish.net/post/Getting-a-SharePoint-
2013-App-Submitted-to-the-Office-Store.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.
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
© 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.

More Related Content

More from Jeremy Thake

Application lifecycle management in SharePoint
Application lifecycle management in SharePointApplication lifecycle management in SharePoint
Application lifecycle management in SharePointJeremy Thake
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentJeremy Thake
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationJeremy Thake
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePointJeremy Thake
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
Jeremy Thake
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thake
Jeremy Thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
Jeremy Thake
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experience
Jeremy Thake
 
Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Jeremy Thake
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010Jeremy Thake
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointJeremy Thake
 
Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Jeremy Thake
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
Jeremy Thake
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersJeremy Thake
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy Thake
 
Share Point Development With Unit Testing
Share Point Development With Unit TestingShare Point Development With Unit Testing
Share Point Development With Unit TestingJeremy Thake
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointJeremy Thake
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best PracticesJeremy Thake
 
Jeremy Thake Perth Share Point Ug Sp2010 How Will Be Affect Me
Jeremy Thake  Perth Share Point Ug   Sp2010 How Will Be Affect MeJeremy Thake  Perth Share Point Ug   Sp2010 How Will Be Affect Me
Jeremy Thake Perth Share Point Ug Sp2010 How Will Be Affect Me
Jeremy Thake
 

More from Jeremy Thake (20)

Application lifecycle management in SharePoint
Application lifecycle management in SharePointApplication lifecycle management in SharePoint
Application lifecycle management in SharePoint
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organization
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePoint
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experience
 
Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePoint
 
Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developers
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
 
Share Point Development With Unit Testing
Share Point Development With Unit TestingShare Point Development With Unit Testing
Share Point Development With Unit Testing
 
How Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share PointHow Asp.Net Developers Can Leverage Share Point
How Asp.Net Developers Can Leverage Share Point
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best Practices
 
Jeremy Thake Perth Share Point Ug Sp2010 How Will Be Affect Me
Jeremy Thake  Perth Share Point Ug   Sp2010 How Will Be Affect MeJeremy Thake  Perth Share Point Ug   Sp2010 How Will Be Affect Me
Jeremy Thake Perth Share Point Ug Sp2010 How Will Be Affect Me
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

The app building playbook for SharePoint 2013 marketplace

  • 1. The App Building Playbook for SharePoint 2013 Marketplace Jeremy Thake Chief Architect, AvePoint Inc.
  • 3. Agenda • The marketplace • The new app model • Submission process • AvePoint Task & Calendar Sync • AvePoint Meetings
  • 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
  • 8. 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. © 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 Collection Root Site App 1 SP Hosted App 2 Azure Hosted App 3 Provider Hosted App 2 Web App 2 SQL App 3 Web Sub Site App 3 Provider Hosted
  • 9. 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. © 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 Collection Root Site App 1 V1.0 App 2 V1.0 App 3 V1.0 App 2 Web V1.0 App 2 SQL V1.0 App 3 Web V1.0 Sub Site App 3 V1.0 App 2 Web V1.1 App 2 SQL V1.1 App 2 Web V2.0 App 2 SQL V2.0 App 3 V1.1 App 3 Web V1.1 App 2 V2.0
  • 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
  • 12. OAuth Token Example © 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 Collection Root Site App 1 App 2 App 3 App 2 Web App 2 SQL App 3 Web Site Collection Root Site App 3
  • 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
  • 17. 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.
  • 18. 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.
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. Checks - Releases • Keep all your app packages, icons, screenshots in source control © 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.
  • 25. AvePoint Task & Calendar Sync
  • 26. Syncing SharePoint Calendars with Exchange Syncing SharePoint Tasks with Exchange
  • 28. Architecture Azure Worker role Azure Web role Azure SQL role SharePoint 2013 App Package
  • 30. Hard to track meetings OneNote tracking Meetings workspace deprecated
  • 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
  • 33. Architecture Azure Web role Azure SQL role SharePoint 2013 App Package Data Here
  • 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
  • 37.
  • 40. Community • Getting a SharePoint 2013 app submitted – Aidan Garnish http://www.aidangarnish.net/post/Getting-a-SharePoint- 2013-App-Submitted-to-the-Office-Store.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.
  • 41. 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.
  • 42. 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.
  • 43. 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.
  • 44. 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.
  • 45. 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.
  • 46. https://www.yammer.com/spyam © 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.

Editor's Notes

  1.  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
  2. 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
  3. 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
  4. 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://&lt;sharepointserver&gt;/&lt;content&gt;/&lt;tenant&gt;/There are also scopes for things like performing search queries, accessing taxonomy data, user profiles, etc.
  5. 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