The document discusses the SharePoint 2013 app model and how it impacts and expands Azure development opportunities. It covers key topics like the app model, OAuth, the marketplace, getting started with apps, and using the Napa online app development tool. The app model introduces a new way of building and deploying solutions in SharePoint in a more packaged and reusable way compared to previous customization options. It also allows integration with external cloud services like Azure.
6. Customization packaging and deployment
options
Farm Sandbox SP Apps
• Full trust • Declarative • New Apps model
solutions elements • Deployed from
• Customizations to • Partially trusted corporate catalog
file system of code service still or office market
servers included for place
• Classic model limited server • Manage
from 2007 side support permission and
• Resource licenses
monitored specifically
• Preferred option
7. Online vs. On-premises
Farm Sandbox SP Apps
• Server-side OM • Limited Server- • Client-side OM
• Client-side OM Side OM only
• No marketplace • Client-side OM • Marketplace
• On-premises only • No marketplace • Online only
• No OAuth • On-premises and • OAuth
• UI integration Online • No UI integration
• No OAuth
• UI integration
8. SharePoint Hosted App – what is it?
• Sub web of site collection
• ―One app – one Web (SPWeb)‖
– Host header SPWeb – each app has its own http address
• Apps can deploy only web scoped features
– Site collection resources deployed using classic solution
options
• None of app deployed features are visible outside of app
• End users cannot manipulate app web to avoid breaking
of the apps using browser or SharePoint Designer
• Apps can not talk to each other
10. SP App Design - A Choice of Three Approaches
Developer-Hosted App
Cloud-based “Bring your own server hosting SharePoint Your Hosted
Apps infrastructure” Web Site
Developers will need to isolate
Get remote tenants
events from
SharePoint Azure Auto- Azure
Use CSOM/REST Provisioned App SharePoint (from
+ Windows Azure + SQL Azure
OAuth to work provisioned invisibly as apps Web WebDeploy,
with SP are installed DacPac)
SharePoint-hosted App
Parent
Provision an isolated sub web
on a parent web Web
• Reuse web elements App Web
(lists, files, out-of-box web (from WSP)
parts)
• No server code allowed;
use client JavaScript for
logic, UX
animated
11. App Project Anatomy
PAGES SCRIPTS
Home.aspx App.js
Main page of the app
Web Part Page
Template script file
Script and Style Elements.xml
references
Elements.xml
Installs script file to
Installs home page to isolated app site
the isolated app site
STYLES APP MANIFEST
App.css AppManifest.xml
Template style ProductID, Version, Title
sheet Tile and StartPage Urls
Elements.xml AppEvent Urls: Installed,
Installs css to Uninstalling,
isolated app site Upgraded
App Permission requests
12. Example use cases for SP Apps
• Services and applications hosted in Azure to provide
extended services for portal users
• On-premises LOB systems hosted in other web
applications
– Examples – HR systems, vacation booking, travel
expenses
– Easy integration of existing applications to SharePoint
without requirement to host them there
• Integration of other cloud based systems to on-
premises or hosted SharePoint environments
without requirements to install customizations
13. Scenario - B2B sales models –
Case Office Supplies
• B2B app for Intranet’s of larget enterprises
• Exposes simple UI for ordering Office Supplies
• Hosted in cloud – orders processed using
Azure service bus from numerious customers
animated
19. 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.
20. App Rights
• Rights:
– Read-Only
– Write
– Manage
– Full Control
• Not customizable!
• If an app is granted permission to a scope
– the permission applies to all children of the
scope
21. 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
Getting started with SharePoint 2010 Online developmentJeremy Thake, SharePoint MVP, will introduce SharePoint 2010 Online as an application development platform inside Office 365. The session will explain how to get started with the different approaches from web UI configurations, to SharePoint Designer 2010 customizations to full blown Visual Studio development with Sandbox Solutions. Jeremy will introduce the concepts of how Application Lifecycle Management can be introduced to this along with migrating existing applications across from on-premise. From this session you should walk away with:Using SharePoint Online 2010 as an Application Development PlatformGetting Started with SharePoint Online 2010 developmentApplication Lifecycle Management with SharePoint Online 2010 in Office 365Migrating SharePoint 2010 Apps to SharePoint Online 2010
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