SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Developing Apps for 
SharePoint and Office Store 
Kashif Imran 
kashif_imran@hotmail.com
Agenda 
• SharePoint Solutions 
• SharePoint Apps 
• Developer Environment and Server Infrastructure 
• Types of SharePoint Apps 
• SharePoint App Shapes/User Experience 
• Packaging and Publishing Apps 
• Security in SharePoint Apps 
• Questions
SharePoint Solutions 
• Farm Solutions 
• Runs within the SharePoint workerprocess (w3wp.exe) 
• Access to Server Object Model 
• By default runs with current user’s permission 
• Developer can use SPSecurity.RunWithElevatedPrivileges that reverts code to Windows 
identity of host application pool 
• Farm stability issues 
• Installation and upgrade (iisreset) 
• Upgrade farm to newer version of SharePoint 
• Sandboxed Solutions 
• SPUCWorkerProcess.exe 
• Access to Server Object Model 
• Feature activation has full access to content (runs as site administrator) 
• Always runs as current user, can not use SPSecurity.RunWithElevatedPrivileges 
• Deprecated in SharePoint 2013 in favor of developing apps for SharePoint
SharePoint App 
• A web application that is registered with SharePoint using an app 
manifest. 
• Customize and extend SharePoint without full-trust access 
• Get its own security principal 
• Interacts with SharePoint using Client Object Model/REST 
• Distributed as app package (.app) to the public marketplace or 
corporate app catalog 
• Installed at site or tenant scope 
• Any Programming language/technology that can communicate with 
SharePoint via REST and OAuth
SharePoint APIs 
• Server Object Model 
• Client Object Model 
• .NET Client OM 
• Silverlight (and Mobile) Client OM 
• JavaScript Client OM 
• REST/OData Endpoints 
• ASP.NET (asmx) web services 
• Only supported for backward compatibility 
• Direct Remote Procedure Calls (RPC) calls to the owssvr.dll 
• Only supported for backward compatibility
SSOM vs CSOM
Developer Environment 
• SharePoint 2013 Developer Site (Office 365 or On-premises) 
• Visual Studio 2012 
• Developer Tools for Visual Studio 2012 
• SharePoint client components 
• Windows Identity Foundation SDK 
• Workflow Tools SDK and Workflow Client SDK 
• Visual Studio 2012 and Office Developer Tools on SharePoint 2013 
Environment
SharePoint Infrastructure for Apps 
• Apps always installed and run within the context of a tenancy 
• SharePoint tenancy: Set of site collections that are configured managed as 
a single unit. 
• Farm-wide tenancy (default tenancy) for on-premises farms 
• Service Applications 
• App Management Service 
• Security principals, permissions and licensing and other app configuration details 
• Previsioned using CA or PowerShell 
• Subscription Settings Service 
• Tenant configuration 
• Previsioned using PowerShell 
• Creates a default tenant 
• Office 365 has both of these already configured for tenant
Types of SharePoint Apps 
• SharePoint-hosted 
• App resources stored in child 
site known as (app web) 
• App can only have client-side code 
• Cloud-Hosted 
• App resources deployed on remote server 
known as remote web 
• App can have both client-side and 
server-side code 
• 2 Types of Cloud-Hosted Apps 
• Autohosted (Hosted in Azure) 
• Provider-hosted (Deployed by provider)
SharePoint-hosted App 
• During installation app web is created as child to site where app is 
installed 
• App start page is hosted in SharePoint 
• App web contains CSS, JavaScript and other resources (SharePoint 
Lists and Libraries etc.) 
• Can contain Server Controls (XsltListViewWebPart) and Client-side 
code served out of isolated domain
Demo 
SharePoint-hosted App
App Manifest 
• Metadata for app 
• AppManifest.xml 
• Start Page Element 
• SharePoint-hosted 
• For SharePoint-hosted must use ~appWebUrl 
• ~ appWebUrl/Pages/ Default.aspx 
• App’s start page is not known until the app has been installed 
• Autohosted 
• ~remoteAppUrl stays in the appmanifest and replaced by Offce 365 
• Provider-hosted 
• ~remoteAppUrl must be replaced with absolute URL when app is published 
• During debugging VS replaces ~remoteAppUrl with URL of remote web 
• {StandardTokens} => replaced by SharePoint environment SPHostUrl, SPLanguage
App Web 
• App by default has full permissions to read/write content to app web 
• No default permissions on any location in the SharePoint host environment 
• App.master provides UI to go back to host web 
• Isolated in its own private domain 
• https://{ TenancyName}-{14 char App UID}. sharepoint.com/ sites/{ ParentSiteName}/{ 
AppName}/ 
• http:// apps-{ UniqueID}. sp2013apps.local/ sites/{ ParentSiteName}/{ AppName}/ 
• Why Private Domain? 
• XSS: JavaScript code can not call back to host web 
• JavaScript do not run with the same established user identity as host web 
• SharePoint environment sees JavaScript callbacks from appweb with unique URLs and can 
authenticate apps 
• {StandardTokens}: { HostUrl}, {AppWebUrl}, { Language} 
• Use Internal Authentication: App is not required to create/manage security tokens
Autohosted App 
• Provisions database and websites on demand 
• Has associated remote web, can optionally have app web 
• Office 365 deploys remote web in Azure during app installation 
• Can store app specific data in its own database using SQL Azure 
• Only supported in Office 365 
• Each tenant receives its own instance of app and database
Demo 
Autohosted App
Provider-hosted App 
• Associated remote web deployed and maintained by developer 
• Remote web is deployed prior to app installation 
• Often store app specific data in its own database 
• Multitenancy issues: data isolation, privacy/reglulations
Demo 
Provider-Hosted App
SharePoint Apps User Experience Options 
• Immersive Full-page 
• App Parts/Client Parts 
• UI command extension/Custom Actions
App Parts 
• IFrame on steroids 
• UI element surfaced on pages in the host web via an IFrame 
• Experience similar to web parts 
• Client Web Part (implementation of App Part), template in Visual Studio 
• Can not have any server side code that run in SharePoint host environment 
• Supported for SharePoint-hosted, Autohosted and Provider-hosted 
• Iframe + Start Page Tokens + Custom Properties, Contextual security 
information to call back into SharePoint host environment via app identity
Demo 
App Parts
UI Custom Actions 
• Add commands to host site 
• Button on ribbon 
• Menu command in ECB 
• Other UI custom action available in Farm solutions are not available in app 
model 
• Supported in all three hosting models 
• Contextual information about item or document via query string 
• UrlAction: ~appWeburl, ~remoteAppUrl, {StandardTokens}, {ItemURL}, 
{HostUrl}, {SiteUrl}, {ListId}, {SelectedListId}, {SelectedItemId} 
• HostWebDialog=True
Demo 
UI Custom Actions
Packaging Apps 
• App Package: distributable zip file with extension .app 
• AppManifest.xml 
• AppIcon.png, AppIcon.png.config.xml (assigns icon a GUID) 
• Resource files, CSS, JavaScript 
• wsp package for SharePoint specific artifacts (lists and pages) embedded with the app package 
• If app package contains inner solution package, SharePoint creates app web otherwise installs app 
without app web 
• App web solution package contains a single web-scoped feature (host web feature) that gets 
activated by default and deploys declared elements (pages, lists) 
• App web solution package can not have .NET assemblies with server-side code 
• SharePoint-hosted app will create an app web because start page must be added to the app web 
• Cloud-hosted apps can decide if they need app web or not 
• App part and UI Custom action features are added at top level in app package and not inside the 
wsp solution package
Packaging Autohosted Apps 
• Web deploy package used for azure deployment is embedded in app 
package 
• *Web.zip => MyAppWeb.zip 
• Optional Data Tier Application Package for SQL Azure .dacpac 
• Add new SQL Database project and change target platform to SQL 
Azure => It will cause project output to be .dacpac 
• Use SQL Package property in app project to point to .dapac file
Publishing Apps 
• Publish to Office Store 
• Dashboard seller account (https://sellerdashboard.microsoft.com) 
• Licensing and ecommerce is take care by Microsoft 
• SharePoint apps, Apps for Office, Windows Azure Catalog Apps 
• Upload app package and fill associated details 
• Approval process 
• Publish to app catalog 
• Give Read access to user so they could discover and install apps 
• Or install app at tenant scope 
• Apps for SharePoint and Apps for Office document libraries 
• Management of app requests from users
Demo 
App Catalog and Seller Dashboard
App Lifecycle Events 
• Installed, updated, uninstalled etc. 
• Because of server-side entry point, app events are only supported in 
cloud hosted apps 
• Handle App Installed, Handle App Uninstalling, Handle App Upgrade
App Authentication in SharePoint 2013 
• App are first class security principals and granted permissions separate 
from user permission 
• Granted as all or none and No hierarchy of permission 
• Security Principal: An entity understood by a security system (User, 
SharePoint App) 
• App authentication is only supported in CSOM and REST API end points 
• App authentication is NOT supported in custom web service entry points 
• Apps have Full rights against app web, can request permissions for other 
webs 
• Full Control permission can not be used for OfficeStore apps 
• AllowAppOnlyPolicy=True in AppManifest to have app only permissions 
• Project Server permissions available if PWA is installed
Types of App Authentication in SharePoint 
• 3 basic types of app authentication 
• Internal authentication 
• External authentication using OAuth 
• External authentication using S2S
Internal Authentication 
• Used in Client-side calls from pages in app web or remote web which 
use cross domain library 
• Incoming calls require a SAML token holding an established user 
identity 
• Call targets unique domain of app web associated with an app 
• SharePoint maps target URL to instance of an app 
• App code is not required to create and manage security tokens
External Authentication 
• Calls to SP from server-side code running in remote web 
• Used for both OAuth and S2S 
• Incoming calls require access token with app identity 
• Access token can optionally carry user identity as well 
• Call can target any CSOM or REST endpoint in any site 
• App code is required to create and manage security tokens
OAuth 
• OAuth.net 
• Internet protocol/spec for creating/mapping app identity 
• A cross platform, open protocol for authenticating apps 
• Internet standard used by Google, Facebook, Twitter 
• Authorize requests by an app for SharePoint to access SharePoint resources on behalf of a user 
• SP2013 uses OAuth 2.0 (very different from OAuth 1.0) 
• OAuth specs provides details on how to create access tokens 
• Used for external auth in Office 365 
• Delegated authorization codes or access tokens are issues by OAuth STS (Windows Azure Control Services) 
• Remote web must communicate with ACS to obtain access tokens 
• Access tokens pass to SharePoint host in CSOM or REST API calls 
• WS-Federation STS and SAML passive sign-in STS are primarily intended to issue sign-in tokens 
• In SP2013, OAuth STS is uses only for issuing context tokens and not used as identity providers
OAuth Concepts 
• Content Owner(s) 
• SharePoint user(s) who can grant permissions to site content 
• Content Server 
• SharePoint web server that hosts site with the content that is to be accessed 
• Client App/ClientID/AppID 
• Remote web that needs permissions to access site content 
• Authentication Server 
• Trusted service that provides apps with access tokens allowing access to 
content 
• Windows Azure ACS in Sp2013 apps case
OAuth Workflow in Office 365
Security Tokens used in OAuth 
• Context Token 
• Contextual information passed to app 
• JWT 
• Valid for 12 hours 
• Cache key: identify unique user 
(user, app, tenant) 
• Refresh Token 
• Used by client app to acquire an access token 
• Valid for 6 months 
• Access Token 
• Token passed to SharePoint to app 
when using external authentication 
• Valid for 12 hours
Context Token
Access Token
Managing App Principals in O365 
• /_layouts/15/… 
• AppRegNew.aspx 
• AppInv.aspx 
• AppPrincipals.aspx 
• PowerShell for SPOnline to administer SharePoint apps and app 
principals
Demo 
Project Management App
Remove an app in Invalid State
Tallahassee Code Camp 
• http://www.tallycodecamp.org/ 
• Saturday, November 9, 2013 
http://www.tallycodecamp.org/Content/Schedule_2012.pdf
Questions 
• ???

Weitere ähnliche Inhalte

Was ist angesagt?

Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointYaroslav Pentsarskyy [MVP]
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
SharePoint 2013 Hosted App Presentation by Roy Kim
SharePoint 2013 Hosted App Presentation by Roy KimSharePoint 2013 Hosted App Presentation by Roy Kim
SharePoint 2013 Hosted App Presentation by Roy KimRoy Kim
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
Non SharePoint Deployment
Non SharePoint DeploymentNon SharePoint Deployment
Non SharePoint DeploymentSparked
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...Alexander Meijers
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...European Collaboration Summit
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris O'Brien
 
Getting Started with SharePoint Development
Getting Started with SharePoint DevelopmentGetting Started with SharePoint Development
Getting Started with SharePoint DevelopmentChakkaradeep Chandran
 
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
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassEuropean Collaboration Summit
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessSPC Adriatics
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Bram de Jager
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 

Was ist angesagt? (20)

Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
SharePoint 2013 Hosted App Presentation by Roy Kim
SharePoint 2013 Hosted App Presentation by Roy KimSharePoint 2013 Hosted App Presentation by Roy Kim
SharePoint 2013 Hosted App Presentation by Roy Kim
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app? SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app?
 
Non SharePoint Deployment
Non SharePoint DeploymentNon SharePoint Deployment
Non SharePoint Deployment
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
 
Getting Started with SharePoint Development
Getting Started with SharePoint DevelopmentGetting Started with SharePoint Development
Getting Started with SharePoint Development
 
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
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big Success
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 

Ähnlich wie Developing Apps for SharePoint Store

SharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppSharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppKenneth Maglio
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreJuan Carlos Gonzalez
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appJoris Poelmans
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point appTalbott Crowell
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013Dragan Panjkov
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureTobias Lekman
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelNoorez Khamis
 
The SharePoint 2013 App Model
The SharePoint 2013 App ModelThe SharePoint 2013 App Model
The SharePoint 2013 App ModelSPC Adriatics
 
Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013Sonja Madsen
 
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas VochtenOffice Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas VochtenITProceed
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSPC Adriatics
 
New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!SPC Adriatics
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webpartsPrabhu Nehru
 

Ähnlich wie Developing Apps for SharePoint Store (20)

Sharepoint 2013 App
Sharepoint 2013 AppSharepoint 2013 App
Sharepoint 2013 App
 
SharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppSharePoint 2013 App or Not to App
SharePoint 2013 App or Not to App
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office Store
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to app
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
 
The SharePoint 2013 App Model
The SharePoint 2013 App ModelThe SharePoint 2013 App Model
The SharePoint 2013 App Model
 
Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013
 
SharePoint Apps model overview
SharePoint Apps model overviewSharePoint Apps model overview
SharePoint Apps model overview
 
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas VochtenOffice Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 

Mehr von Kashif Imran

Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthKashif Imran
 
SharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthSharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthKashif Imran
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)Kashif Imran
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
SharePoint 2013 Branding
SharePoint 2013 BrandingSharePoint 2013 Branding
SharePoint 2013 BrandingKashif Imran
 
Enterprise Content Management (ECM) in the Cloud
Enterprise Content Management (ECM) in the CloudEnterprise Content Management (ECM) in the Cloud
Enterprise Content Management (ECM) in the CloudKashif Imran
 
Microsoft Azure WebJobs
Microsoft Azure WebJobsMicrosoft Azure WebJobs
Microsoft Azure WebJobsKashif Imran
 
Microsoft Azure - Introduction
Microsoft Azure - IntroductionMicrosoft Azure - Introduction
Microsoft Azure - IntroductionKashif Imran
 

Mehr von Kashif Imran (9)

Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 
SharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims AuthSharePoint, ADFS and Claims Auth
SharePoint, ADFS and Claims Auth
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
SharePoint 2013 Branding
SharePoint 2013 BrandingSharePoint 2013 Branding
SharePoint 2013 Branding
 
Enterprise Content Management (ECM) in the Cloud
Enterprise Content Management (ECM) in the CloudEnterprise Content Management (ECM) in the Cloud
Enterprise Content Management (ECM) in the Cloud
 
Microsoft Azure WebJobs
Microsoft Azure WebJobsMicrosoft Azure WebJobs
Microsoft Azure WebJobs
 
Azure Websites
Azure WebsitesAzure Websites
Azure Websites
 
Microsoft Azure - Introduction
Microsoft Azure - IntroductionMicrosoft Azure - Introduction
Microsoft Azure - Introduction
 

Kürzlich hochgeladen

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Kürzlich hochgeladen (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Developing Apps for SharePoint Store

  • 1. Developing Apps for SharePoint and Office Store Kashif Imran kashif_imran@hotmail.com
  • 2. Agenda • SharePoint Solutions • SharePoint Apps • Developer Environment and Server Infrastructure • Types of SharePoint Apps • SharePoint App Shapes/User Experience • Packaging and Publishing Apps • Security in SharePoint Apps • Questions
  • 3. SharePoint Solutions • Farm Solutions • Runs within the SharePoint workerprocess (w3wp.exe) • Access to Server Object Model • By default runs with current user’s permission • Developer can use SPSecurity.RunWithElevatedPrivileges that reverts code to Windows identity of host application pool • Farm stability issues • Installation and upgrade (iisreset) • Upgrade farm to newer version of SharePoint • Sandboxed Solutions • SPUCWorkerProcess.exe • Access to Server Object Model • Feature activation has full access to content (runs as site administrator) • Always runs as current user, can not use SPSecurity.RunWithElevatedPrivileges • Deprecated in SharePoint 2013 in favor of developing apps for SharePoint
  • 4. SharePoint App • A web application that is registered with SharePoint using an app manifest. • Customize and extend SharePoint without full-trust access • Get its own security principal • Interacts with SharePoint using Client Object Model/REST • Distributed as app package (.app) to the public marketplace or corporate app catalog • Installed at site or tenant scope • Any Programming language/technology that can communicate with SharePoint via REST and OAuth
  • 5. SharePoint APIs • Server Object Model • Client Object Model • .NET Client OM • Silverlight (and Mobile) Client OM • JavaScript Client OM • REST/OData Endpoints • ASP.NET (asmx) web services • Only supported for backward compatibility • Direct Remote Procedure Calls (RPC) calls to the owssvr.dll • Only supported for backward compatibility
  • 7. Developer Environment • SharePoint 2013 Developer Site (Office 365 or On-premises) • Visual Studio 2012 • Developer Tools for Visual Studio 2012 • SharePoint client components • Windows Identity Foundation SDK • Workflow Tools SDK and Workflow Client SDK • Visual Studio 2012 and Office Developer Tools on SharePoint 2013 Environment
  • 8. SharePoint Infrastructure for Apps • Apps always installed and run within the context of a tenancy • SharePoint tenancy: Set of site collections that are configured managed as a single unit. • Farm-wide tenancy (default tenancy) for on-premises farms • Service Applications • App Management Service • Security principals, permissions and licensing and other app configuration details • Previsioned using CA or PowerShell • Subscription Settings Service • Tenant configuration • Previsioned using PowerShell • Creates a default tenant • Office 365 has both of these already configured for tenant
  • 9. Types of SharePoint Apps • SharePoint-hosted • App resources stored in child site known as (app web) • App can only have client-side code • Cloud-Hosted • App resources deployed on remote server known as remote web • App can have both client-side and server-side code • 2 Types of Cloud-Hosted Apps • Autohosted (Hosted in Azure) • Provider-hosted (Deployed by provider)
  • 10. SharePoint-hosted App • During installation app web is created as child to site where app is installed • App start page is hosted in SharePoint • App web contains CSS, JavaScript and other resources (SharePoint Lists and Libraries etc.) • Can contain Server Controls (XsltListViewWebPart) and Client-side code served out of isolated domain
  • 12. App Manifest • Metadata for app • AppManifest.xml • Start Page Element • SharePoint-hosted • For SharePoint-hosted must use ~appWebUrl • ~ appWebUrl/Pages/ Default.aspx • App’s start page is not known until the app has been installed • Autohosted • ~remoteAppUrl stays in the appmanifest and replaced by Offce 365 • Provider-hosted • ~remoteAppUrl must be replaced with absolute URL when app is published • During debugging VS replaces ~remoteAppUrl with URL of remote web • {StandardTokens} => replaced by SharePoint environment SPHostUrl, SPLanguage
  • 13. App Web • App by default has full permissions to read/write content to app web • No default permissions on any location in the SharePoint host environment • App.master provides UI to go back to host web • Isolated in its own private domain • https://{ TenancyName}-{14 char App UID}. sharepoint.com/ sites/{ ParentSiteName}/{ AppName}/ • http:// apps-{ UniqueID}. sp2013apps.local/ sites/{ ParentSiteName}/{ AppName}/ • Why Private Domain? • XSS: JavaScript code can not call back to host web • JavaScript do not run with the same established user identity as host web • SharePoint environment sees JavaScript callbacks from appweb with unique URLs and can authenticate apps • {StandardTokens}: { HostUrl}, {AppWebUrl}, { Language} • Use Internal Authentication: App is not required to create/manage security tokens
  • 14. Autohosted App • Provisions database and websites on demand • Has associated remote web, can optionally have app web • Office 365 deploys remote web in Azure during app installation • Can store app specific data in its own database using SQL Azure • Only supported in Office 365 • Each tenant receives its own instance of app and database
  • 16. Provider-hosted App • Associated remote web deployed and maintained by developer • Remote web is deployed prior to app installation • Often store app specific data in its own database • Multitenancy issues: data isolation, privacy/reglulations
  • 18. SharePoint Apps User Experience Options • Immersive Full-page • App Parts/Client Parts • UI command extension/Custom Actions
  • 19. App Parts • IFrame on steroids • UI element surfaced on pages in the host web via an IFrame • Experience similar to web parts • Client Web Part (implementation of App Part), template in Visual Studio • Can not have any server side code that run in SharePoint host environment • Supported for SharePoint-hosted, Autohosted and Provider-hosted • Iframe + Start Page Tokens + Custom Properties, Contextual security information to call back into SharePoint host environment via app identity
  • 21. UI Custom Actions • Add commands to host site • Button on ribbon • Menu command in ECB • Other UI custom action available in Farm solutions are not available in app model • Supported in all three hosting models • Contextual information about item or document via query string • UrlAction: ~appWeburl, ~remoteAppUrl, {StandardTokens}, {ItemURL}, {HostUrl}, {SiteUrl}, {ListId}, {SelectedListId}, {SelectedItemId} • HostWebDialog=True
  • 22. Demo UI Custom Actions
  • 23. Packaging Apps • App Package: distributable zip file with extension .app • AppManifest.xml • AppIcon.png, AppIcon.png.config.xml (assigns icon a GUID) • Resource files, CSS, JavaScript • wsp package for SharePoint specific artifacts (lists and pages) embedded with the app package • If app package contains inner solution package, SharePoint creates app web otherwise installs app without app web • App web solution package contains a single web-scoped feature (host web feature) that gets activated by default and deploys declared elements (pages, lists) • App web solution package can not have .NET assemblies with server-side code • SharePoint-hosted app will create an app web because start page must be added to the app web • Cloud-hosted apps can decide if they need app web or not • App part and UI Custom action features are added at top level in app package and not inside the wsp solution package
  • 24. Packaging Autohosted Apps • Web deploy package used for azure deployment is embedded in app package • *Web.zip => MyAppWeb.zip • Optional Data Tier Application Package for SQL Azure .dacpac • Add new SQL Database project and change target platform to SQL Azure => It will cause project output to be .dacpac • Use SQL Package property in app project to point to .dapac file
  • 25. Publishing Apps • Publish to Office Store • Dashboard seller account (https://sellerdashboard.microsoft.com) • Licensing and ecommerce is take care by Microsoft • SharePoint apps, Apps for Office, Windows Azure Catalog Apps • Upload app package and fill associated details • Approval process • Publish to app catalog • Give Read access to user so they could discover and install apps • Or install app at tenant scope • Apps for SharePoint and Apps for Office document libraries • Management of app requests from users
  • 26. Demo App Catalog and Seller Dashboard
  • 27. App Lifecycle Events • Installed, updated, uninstalled etc. • Because of server-side entry point, app events are only supported in cloud hosted apps • Handle App Installed, Handle App Uninstalling, Handle App Upgrade
  • 28. App Authentication in SharePoint 2013 • App are first class security principals and granted permissions separate from user permission • Granted as all or none and No hierarchy of permission • Security Principal: An entity understood by a security system (User, SharePoint App) • App authentication is only supported in CSOM and REST API end points • App authentication is NOT supported in custom web service entry points • Apps have Full rights against app web, can request permissions for other webs • Full Control permission can not be used for OfficeStore apps • AllowAppOnlyPolicy=True in AppManifest to have app only permissions • Project Server permissions available if PWA is installed
  • 29. Types of App Authentication in SharePoint • 3 basic types of app authentication • Internal authentication • External authentication using OAuth • External authentication using S2S
  • 30. Internal Authentication • Used in Client-side calls from pages in app web or remote web which use cross domain library • Incoming calls require a SAML token holding an established user identity • Call targets unique domain of app web associated with an app • SharePoint maps target URL to instance of an app • App code is not required to create and manage security tokens
  • 31. External Authentication • Calls to SP from server-side code running in remote web • Used for both OAuth and S2S • Incoming calls require access token with app identity • Access token can optionally carry user identity as well • Call can target any CSOM or REST endpoint in any site • App code is required to create and manage security tokens
  • 32. OAuth • OAuth.net • Internet protocol/spec for creating/mapping app identity • A cross platform, open protocol for authenticating apps • Internet standard used by Google, Facebook, Twitter • Authorize requests by an app for SharePoint to access SharePoint resources on behalf of a user • SP2013 uses OAuth 2.0 (very different from OAuth 1.0) • OAuth specs provides details on how to create access tokens • Used for external auth in Office 365 • Delegated authorization codes or access tokens are issues by OAuth STS (Windows Azure Control Services) • Remote web must communicate with ACS to obtain access tokens • Access tokens pass to SharePoint host in CSOM or REST API calls • WS-Federation STS and SAML passive sign-in STS are primarily intended to issue sign-in tokens • In SP2013, OAuth STS is uses only for issuing context tokens and not used as identity providers
  • 33. OAuth Concepts • Content Owner(s) • SharePoint user(s) who can grant permissions to site content • Content Server • SharePoint web server that hosts site with the content that is to be accessed • Client App/ClientID/AppID • Remote web that needs permissions to access site content • Authentication Server • Trusted service that provides apps with access tokens allowing access to content • Windows Azure ACS in Sp2013 apps case
  • 34. OAuth Workflow in Office 365
  • 35. Security Tokens used in OAuth • Context Token • Contextual information passed to app • JWT • Valid for 12 hours • Cache key: identify unique user (user, app, tenant) • Refresh Token • Used by client app to acquire an access token • Valid for 6 months • Access Token • Token passed to SharePoint to app when using external authentication • Valid for 12 hours
  • 38. Managing App Principals in O365 • /_layouts/15/… • AppRegNew.aspx • AppInv.aspx • AppPrincipals.aspx • PowerShell for SPOnline to administer SharePoint apps and app principals
  • 40. Remove an app in Invalid State
  • 41. Tallahassee Code Camp • http://www.tallycodecamp.org/ • Saturday, November 9, 2013 http://www.tallycodecamp.org/Content/Schedule_2012.pdf