SlideShare a Scribd company logo
1 of 39
The SharePoint 2013 App Model
DRAGAN PANJKOV, PLANB.




SHAREPOINT AND PROJECT CONFERENCE ADRIATICS
ZAGREB, 11/28/2012
sponsors
why apps


types, basic concepts, development


distribution, upgrade, on-prem config
why apps?
4 questions for architects
• How will the users be using the solution?
• How will the solution be deployed into production and
  managed?
• What are the quality attribute requirements for the solution
  (security, performance, concurrency, localization, and
  configuration)
• How can the solution be designed to be flexible and
  maintainable over time?
evolution of customizations in SharePoint

                                            _api



_vti_bin       _vti_bin

                                        Declar. App &
                                        Workflow
                                        Events



                                 _api

                          CSOM
apps…
• …are not executed in SharePoint App pool
• …are in most of the cases not even running on SP Server
• …can have full trust, with user’s approval (OAuth)
• …can access SharePoint Data
• …can access outer world non-SharePoint Data
• …can use any external resources
• …can be executed in it’s own chrome, as app parts, or as
  SharePoint extensions
why apps
• Isolated (safe!)
• Multi-tenant
• Multiple development possibilities (even non-MS stack)
• Easier to deploy (no SharePointisms by deployment)
• Easier to maintain (lifecycle – versioning, upgrades)
• Manageable (Office Store, Corporate Catalog)

• Cloud ready!
USER PERSPECTIVE
App types, basic concepts, development
common app architecture


                    APP




             CSOM         CSOM
                          REST
sp app design - a choice of three approaches
                         Developer-Hosted App
                                                                          SharePoint
                         “Bring your own server hosting infrastructure”                    Your Hosted Site
Cloud-based Apps                                                             Web
                         Developers will need to isolate tenants
Get remote events from
SharePoint
Use CSOM/REST +          Azure Auto-Provisioned App                                            Azure
OAuth to work with SP
                         Windows Azure + SQL Azure                        SharePoint           (from
                         provisioned invisibly as apps are                   Web             WebDeploy,
                         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 parts)
                           • No server code allowed; use client
                                                                                           (from WSP)
                              JavaScript for logic, UX

                                                                                                        animated
Comparing SharePoint Hosted vs. Cloud
Hosted Apps
                     SharePoint Hosted          Cloud Hosted
App Scope               SharePoint Site          Site or Tenancy

Architecture               Web Site              Multi-Tenant App
Developer Skillset   SharePoint + HTML/JS           Full Stack
UI Technologies      SharePoint + HTML/JS        Any Web Stack

Server Code                  None                      Any

Storage                Lists and Doc Libs              Any
Key Limitations         No Server Code      Hosting Expertise Required
Choosing between Cloud-Hosted and
SharePoint-Hosted.
Cloud Hosted Apps                        SharePoint Hosted Apps

Preferred hosting model for almost all   Good for smaller apps & resource
types of apps                            storage

Full power of web – choose your          SharePoint-based; no server-side code
infrastructure & technology

May require your own hosting             Automatically hosted in SharePoint

May require you own handling of          Inherent multitenancy & isolation
multitenancy & permission management
App Shapes for SharePoint
                 Full page
                 Implement complete app experiences
                 to satisfy business scenarios


                 Parts
                 Create app parts that can interact
                 with the SharePoint experience


                 UI Command extensions
                 Add new commands to the ribbon and item
                 menus
App identity
• Challenge with SPS2010
  • Farm solutions – too much privileges - risk of
    RunWithElevatedPrivileges
  • Sandbox solutions – no RunWithElevatedPrivileges – always under
    user context
• In SharePoint 2013 apps have their own identity and specific
  permissions
  • Installing user either grants or denies permissions to host web
  • Permission is explicitly given for a specific scope
  • App identity is passed around using oAuth tokens
App rights
• Default rights : Read, Write, Manage and Full Control
• Not possible to customize
• Apps are granted permissions to a scope and all children of the
  scope
• Defined in declarative XML
App scopes
• SPSite – site collection
• SPWeb – site
• SPList
• Tenancy
• Other scopes (and rights) for performing search queries,
  accessing taxonomy data, user profiles, etc...
sharepoint apps: authentication and trust




    main SharePoint site          app1 SharePoint site

    http://intranet.contoso.com     http://     tenant-apphash1.contosoapps.com           /sites/web/appguid

                                  http://apps-87e90ada14c175.contosoapps.com/sites/web/014c9c59-5d9c-4a59-a5ce-2116a4c90296
Azure Access Control Service (ACS)
• ACS required with oAuth implementation in SharePoint 2013
• How is the ACS server configured as the authentication server?
  • Automatically done for sites in Office 365 Preview
  • On-premise farms, a trust to ACS must be configured. Possible to avoid
    when using Server-to-server (S2S) trust
SharePoint 2013 Remote API

                  _api is new alias for _vti_bin/client.svc

Server
 Client   REST                             CSOM
          OData
          JSON
                        JavaScript       Silverlight      .Net CLR
                          Library         Library          Library



                           Custom Client Code
REST URLs in SharePoint 2013
 • CSOM URLs can go through _api folder
 • Replace
    • http://sharepoint/_vti_bin/client.svc/web
 • With
    • http://sharepoint/_api/web


 • Example REST URLs targeting SharePoint sites
    •   _api/web/lists
    •   _api/web/lists/List1
    •   _api/web/?$select=title,id
    •   /_api/web/lists/getByTitle('Consultants')/Items
    •   ....
Provider Hosted – S2S
• High trust applications used on-premise
• Can assert any user’s identity
• Requires configuration to establish trust between SharePoint
  farm and S2S app
• Needs to be done for every S2S app
Configure S2S
• App Isolation is configured
• Disable App Principal check
• Generate Public/Private certificate pair
• Generate Client Id
• Set up Security Token Issuer
• Register App Principal
• Update Web.config and ensure user profiles exist
• http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.asp
  x?ID=267
APP DEVELOPMENT INTRO
azure autohosted apps


                           SQL AZURE

        REST, CSOM
                           SERVICES
                     APP
                             DATA
provider hosted apps


                           DATABASES

        REST, CSOM
                           SERVICES
                     APP
                             DATA
Autohosting is for team apps
• Team apps
• Resource tracking
• Team processes
• Event receivers
• Individual productivity
• Document assembly, etc.
deployment, upgrade, configuration
From Developer to End User
                                                        Office and SharePoint


            Dev center                                Integrated
                         Office Store       TRIAL/
            submission                    PURCHASE      Office
                                                         Store
                                                                      End users


                                             TRIAL/
                                           PURCHASE
Developer

                            Vendor/                   SharePoint
              Direct
                          IT projects                 App Catalog



                                        IT admin
apps upgrade process




                       animated
what to use and when?
Infrastructure configuration for SP Apps
1) Wild card DNS entry for app domain
2) Apps service application and subscription service created in
   environment hosting SP apps
3) SharePoint application for routing the incoming requests to
   app DNS entry
4) App catalog created for SharePoint applications to enable end
   users to utilize apps
                             SharePoint farm


           http://*.apps
               192.168.x.x
DNS configuration on-premises
• Define wildcard DNS entry for apps
  • *.apps.contoso.com or something similar
• Configure app address in SP side
  using Central Admin or PowerShell
  • One address per farm
App configuration for on-premises farm
    • Ensure that App service application and subscription service are created
      and running in farm
    • Subscription service is used to provide unique Site Collection ID for App
      Urls
main SharePoint site              app1 SharePoint site
                                                         tenant-
  http://sp/sites/web              http://                                            /sites/web/appguid
                                                apphash1.contosoapps.com
                       http://apps-87e90ada14c175.contosoapps.com/sites/web/014c9c59-5d9c-4a59-a5ce-2116a4c90296



    • Apps will be hosted on own domain, within their own frame
        • Leverages web browser same-origin policy for script isolation
    • URL naming – each app has unique URL – one app – one = URL
        • http://default-appUID.apps.contoso.com
        • appUID – combination of site collection ID and particular SPWeb where app is
          installed
get app to site collection
• All site content provides functionality to
  add apps
• Both market place and corporate
  catalog visible from single place
• Users can add Apps to be available
• Apps can request permissions,
  depending on implementation
resources
• dev.office.com
• blogs.msdn.com/b/officeapps
• blog.tedpattison.net
• http://www.andrewconnell.com/blog/archive/2012/10/02/fully-
  scripted-solution-for-creating-and-registering-self-signed-
  certs.aspx
• http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.asp
  x?ID=267
questions?
WWW.DRAGAN-PANJKOV.COM

@PANJKOV
thank you.

SHAREPOINT AND PROJECT CONFERENCE ADRIATICS
ZAGREB, 11/28/2012

More Related Content

What's hot

SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
Agnes Molnar
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
Sanjay Patel
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to Know
Nik Patel
 
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
Nik Patel
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010
Alexander Meijers
 
Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013
Giuseppe Marchi
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwug
BIWUG
 

What's hot (20)

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
 
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
SPCAdriatics - Search Administration and Troubleshooting in SharePoint 2013
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
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
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
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?
 
Access Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to KnowAccess Services in SharePoint 2010 - All You Need to Know
Access Services in SharePoint 2010 - All You Need to Know
 
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
SharePoint Saturday Chicago Suburbs 2016 - Modern Intranet Development Best P...
 
How to build SharePoint applications that everybody loves
How to build SharePoint applications that everybody lovesHow to build SharePoint applications that everybody loves
How to build SharePoint applications that everybody loves
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010
 
Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013Sviluppare App per Office 2013 e SharePoint 2013
Sviluppare App per Office 2013 e SharePoint 2013
 
Creating a SharePoint App with Microsoft Access Services
Creating a SharePoint App with Microsoft Access ServicesCreating a SharePoint App with Microsoft Access Services
Creating a SharePoint App with Microsoft Access Services
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwug
 
How to build SharePoint 2013 Killer Apps
How to build SharePoint 2013 Killer AppsHow to build SharePoint 2013 Killer Apps
How to build SharePoint 2013 Killer Apps
 
Sharepoint Overview
Sharepoint OverviewSharepoint Overview
Sharepoint Overview
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
 
SharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the CloudsSharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the Clouds
 
Access Web Apps E-Book
Access Web Apps E-BookAccess Web Apps E-Book
Access Web Apps E-Book
 

Viewers also liked

Provider Hosted Apps - cross domain library - SharePoint
Provider Hosted Apps - cross domain library - SharePointProvider Hosted Apps - cross domain library - SharePoint
Provider Hosted Apps - cross domain library - SharePoint
David J Rosenthal
 
Provider Hosted apps - high trust - SharePoint
Provider Hosted apps - high trust - SharePointProvider Hosted apps - high trust - SharePoint
Provider Hosted apps - high trust - SharePoint
David J Rosenthal
 
Real World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library FormsReal World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library Forms
Nik Patel
 
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows AzureMigrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Eric Shupps
 

Viewers also liked (20)

Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...
 
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
SPCA2013 - Developing Provider-Hosted Apps for SharePoint 2013
 
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
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
SharePoint Site templates, site definitions, feature stapling
SharePoint Site templates, site definitions, feature staplingSharePoint Site templates, site definitions, feature stapling
SharePoint Site templates, site definitions, feature stapling
 
Getting Started with SharePoint 2013 Apps
Getting Started with SharePoint 2013 AppsGetting Started with SharePoint 2013 Apps
Getting Started with SharePoint 2013 Apps
 
Share point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentShare point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) development
 
Provider hosted apps - acs
Provider hosted apps - acsProvider hosted apps - acs
Provider hosted apps - acs
 
Provider Hosted Apps - cross domain library - SharePoint
Provider Hosted Apps - cross domain library - SharePointProvider Hosted Apps - cross domain library - SharePoint
Provider Hosted Apps - cross domain library - SharePoint
 
Provider Hosted apps - high trust - SharePoint
Provider Hosted apps - high trust - SharePointProvider Hosted apps - high trust - SharePoint
Provider Hosted apps - high trust - SharePoint
 
K2 for SharePoint – Forms and Workflow-Driven Apps in SharePoint
K2 for SharePoint – Forms and Workflow-Driven Apps in SharePointK2 for SharePoint – Forms and Workflow-Driven Apps in SharePoint
K2 for SharePoint – Forms and Workflow-Driven Apps in SharePoint
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted Apps
 
SharePoint 2013 ediscovery overview
SharePoint 2013 ediscovery overviewSharePoint 2013 ediscovery overview
SharePoint 2013 ediscovery overview
 
Creating SharePoint 2013 Workflows
Creating SharePoint 2013 WorkflowsCreating SharePoint 2013 Workflows
Creating SharePoint 2013 Workflows
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted apps
 
Sharepoint 2013 applied architecture from the field (v2)
Sharepoint 2013 applied architecture from the field (v2)Sharepoint 2013 applied architecture from the field (v2)
Sharepoint 2013 applied architecture from the field (v2)
 
Real World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library FormsReal World InfoPath with SharePoint 2010 - List vs Library Forms
Real World InfoPath with SharePoint 2010 - List vs Library Forms
 
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
 
Hybrid SharePoint - Office 365 & On-prem SharePoint 2013 -part2
Hybrid SharePoint - Office 365 & On-prem SharePoint 2013 -part2Hybrid SharePoint - Office 365 & On-prem SharePoint 2013 -part2
Hybrid SharePoint - Office 365 & On-prem SharePoint 2013 -part2
 
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows AzureMigrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
 

Similar to The SharePoint 2013 App Model

Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
Alexander Meijers
 
Sp2013 overview
Sp2013 overviewSp2013 overview
Sp2013 overview
BIWUG
 
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
Joris Poelmans
 
SP2013 What's New for Developers : SPSSTL
SP2013 What's New for Developers : SPSSTLSP2013 What's New for Developers : SPSSTL
SP2013 What's New for Developers : SPSSTL
Kenneth Maglio
 
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
Joris Poelmans
 

Similar to The SharePoint 2013 App Model (20)

(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
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
 
Sp2013 overview
Sp2013 overviewSp2013 overview
Sp2013 overview
 
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
 
SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012
 
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
 
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
 
Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SharePoint in Clouds - Autoprovisioned apps with SharePoint 2013
SharePoint in Clouds - Autoprovisioned apps with SharePoint 2013SharePoint in Clouds - Autoprovisioned apps with SharePoint 2013
SharePoint in Clouds - Autoprovisioned apps with SharePoint 2013
 
Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013Sonja madsen speaker slides espc 2013
Sonja madsen speaker slides espc 2013
 
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 ...
 
Share point 2013 cop v4
Share point 2013 cop v4Share point 2013 cop v4
Share point 2013 cop v4
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
 
Sp fest 2012 sp2010 on the cloud
Sp fest 2012   sp2010 on the cloudSp fest 2012   sp2010 on the cloud
Sp fest 2012 sp2010 on the cloud
 
Sharepoint 2013 App
Sharepoint 2013 AppSharepoint 2013 App
Sharepoint 2013 App
 
What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013
 
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
 
SP2013 What's New for Developers : SPSSTL
SP2013 What's New for Developers : SPSSTLSP2013 What's New for Developers : SPSSTL
SP2013 What's New for Developers : SPSSTL
 
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
 

More from SPC Adriatics

More from SPC Adriatics (20)

How to secure your data in Office 365
How to secure your data in Office 365 How to secure your data in Office 365
How to secure your data in Office 365
 
Do you know, where your sensitive data is?
Do you know, where your sensitive data is?Do you know, where your sensitive data is?
Do you know, where your sensitive data is?
 
Securing Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management ServicesSecuring Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management Services
 
Creating Workflows in Project Online
Creating Workflows in Project OnlineCreating Workflows in Project Online
Creating Workflows in Project Online
 
Faster than a flash behind the scenes of patching SharePoint Online
Faster than a flash   behind the scenes of patching SharePoint OnlineFaster than a flash   behind the scenes of patching SharePoint Online
Faster than a flash behind the scenes of patching SharePoint Online
 
Role based views in Project and Resource Center
Role based views in Project and Resource CenterRole based views in Project and Resource Center
Role based views in Project and Resource Center
 
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
 
SharePoint Governance and Compliance
SharePoint Governance and ComplianceSharePoint Governance and Compliance
SharePoint Governance and Compliance
 
From analyses to successful Implementation
From analyses to successful ImplementationFrom analyses to successful Implementation
From analyses to successful Implementation
 
The key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoptionThe key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoption
 
Office 365 Video
Office 365 VideoOffice 365 Video
Office 365 Video
 
10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise Search10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise Search
 
How the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and DeliveryHow the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and Delivery
 
Scaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other ToolsScaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other Tools
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
 
Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...
 
Custom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance PuzzleCustom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance Puzzle
 
SharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside OutSharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside Out
 
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
 
What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

The SharePoint 2013 App Model

  • 1. The SharePoint 2013 App Model DRAGAN PANJKOV, PLANB. SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012
  • 3. why apps types, basic concepts, development distribution, upgrade, on-prem config
  • 5. 4 questions for architects • How will the users be using the solution? • How will the solution be deployed into production and managed? • What are the quality attribute requirements for the solution (security, performance, concurrency, localization, and configuration) • How can the solution be designed to be flexible and maintainable over time?
  • 6. evolution of customizations in SharePoint _api _vti_bin _vti_bin Declar. App & Workflow Events _api CSOM
  • 7. apps… • …are not executed in SharePoint App pool • …are in most of the cases not even running on SP Server • …can have full trust, with user’s approval (OAuth) • …can access SharePoint Data • …can access outer world non-SharePoint Data • …can use any external resources • …can be executed in it’s own chrome, as app parts, or as SharePoint extensions
  • 8. why apps • Isolated (safe!) • Multi-tenant • Multiple development possibilities (even non-MS stack) • Easier to deploy (no SharePointisms by deployment) • Easier to maintain (lifecycle – versioning, upgrades) • Manageable (Office Store, Corporate Catalog) • Cloud ready!
  • 10. App types, basic concepts, development
  • 11. common app architecture APP CSOM CSOM REST
  • 12. sp app design - a choice of three approaches Developer-Hosted App SharePoint “Bring your own server hosting infrastructure” Your Hosted Site Cloud-based Apps Web Developers will need to isolate tenants Get remote events from SharePoint Use CSOM/REST + Azure Auto-Provisioned App Azure OAuth to work with SP Windows Azure + SQL Azure SharePoint (from provisioned invisibly as apps are Web WebDeploy, 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 parts) • No server code allowed; use client (from WSP) JavaScript for logic, UX animated
  • 13. Comparing SharePoint Hosted vs. Cloud Hosted Apps SharePoint Hosted Cloud Hosted App Scope SharePoint Site Site or Tenancy Architecture Web Site Multi-Tenant App Developer Skillset SharePoint + HTML/JS Full Stack UI Technologies SharePoint + HTML/JS Any Web Stack Server Code None Any Storage Lists and Doc Libs Any Key Limitations No Server Code Hosting Expertise Required
  • 14. Choosing between Cloud-Hosted and SharePoint-Hosted. Cloud Hosted Apps SharePoint Hosted Apps Preferred hosting model for almost all Good for smaller apps & resource types of apps storage Full power of web – choose your SharePoint-based; no server-side code infrastructure & technology May require your own hosting Automatically hosted in SharePoint May require you own handling of Inherent multitenancy & isolation multitenancy & permission management
  • 15. App Shapes for SharePoint Full page Implement complete app experiences to satisfy business scenarios Parts Create app parts that can interact with the SharePoint experience UI Command extensions Add new commands to the ribbon and item menus
  • 16. App identity • Challenge with SPS2010 • Farm solutions – too much privileges - risk of RunWithElevatedPrivileges • Sandbox solutions – no RunWithElevatedPrivileges – always under user context • In SharePoint 2013 apps have their own identity and specific permissions • Installing user either grants or denies permissions to host web • Permission is explicitly given for a specific scope • App identity is passed around using oAuth tokens
  • 17. App rights • Default rights : Read, Write, Manage and Full Control • Not possible to customize • Apps are granted permissions to a scope and all children of the scope • Defined in declarative XML
  • 18. App scopes • SPSite – site collection • SPWeb – site • SPList • Tenancy • Other scopes (and rights) for performing search queries, accessing taxonomy data, user profiles, etc...
  • 19. sharepoint apps: authentication and trust main SharePoint site app1 SharePoint site http://intranet.contoso.com http:// tenant-apphash1.contosoapps.com /sites/web/appguid http://apps-87e90ada14c175.contosoapps.com/sites/web/014c9c59-5d9c-4a59-a5ce-2116a4c90296
  • 20. Azure Access Control Service (ACS) • ACS required with oAuth implementation in SharePoint 2013 • How is the ACS server configured as the authentication server? • Automatically done for sites in Office 365 Preview • On-premise farms, a trust to ACS must be configured. Possible to avoid when using Server-to-server (S2S) trust
  • 21. SharePoint 2013 Remote API _api is new alias for _vti_bin/client.svc Server Client REST CSOM OData JSON JavaScript Silverlight .Net CLR Library Library Library Custom Client Code
  • 22. REST URLs in SharePoint 2013 • CSOM URLs can go through _api folder • Replace • http://sharepoint/_vti_bin/client.svc/web • With • http://sharepoint/_api/web • Example REST URLs targeting SharePoint sites • _api/web/lists • _api/web/lists/List1 • _api/web/?$select=title,id • /_api/web/lists/getByTitle('Consultants')/Items • ....
  • 23. Provider Hosted – S2S • High trust applications used on-premise • Can assert any user’s identity • Requires configuration to establish trust between SharePoint farm and S2S app • Needs to be done for every S2S app
  • 24. Configure S2S • App Isolation is configured • Disable App Principal check • Generate Public/Private certificate pair • Generate Client Id • Set up Security Token Issuer • Register App Principal • Update Web.config and ensure user profiles exist • http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.asp x?ID=267
  • 26. azure autohosted apps SQL AZURE REST, CSOM SERVICES APP DATA
  • 27. provider hosted apps DATABASES REST, CSOM SERVICES APP DATA
  • 28. Autohosting is for team apps • Team apps • Resource tracking • Team processes • Event receivers • Individual productivity • Document assembly, etc.
  • 30. From Developer to End User Office and SharePoint Dev center Integrated Office Store TRIAL/ submission PURCHASE Office Store End users TRIAL/ PURCHASE Developer Vendor/ SharePoint Direct IT projects App Catalog IT admin
  • 32. what to use and when?
  • 33. Infrastructure configuration for SP Apps 1) Wild card DNS entry for app domain 2) Apps service application and subscription service created in environment hosting SP apps 3) SharePoint application for routing the incoming requests to app DNS entry 4) App catalog created for SharePoint applications to enable end users to utilize apps SharePoint farm http://*.apps 192.168.x.x
  • 34. DNS configuration on-premises • Define wildcard DNS entry for apps • *.apps.contoso.com or something similar • Configure app address in SP side using Central Admin or PowerShell • One address per farm
  • 35. App configuration for on-premises farm • Ensure that App service application and subscription service are created and running in farm • Subscription service is used to provide unique Site Collection ID for App Urls main SharePoint site app1 SharePoint site tenant- http://sp/sites/web http:// /sites/web/appguid apphash1.contosoapps.com http://apps-87e90ada14c175.contosoapps.com/sites/web/014c9c59-5d9c-4a59-a5ce-2116a4c90296 • Apps will be hosted on own domain, within their own frame • Leverages web browser same-origin policy for script isolation • URL naming – each app has unique URL – one app – one = URL • http://default-appUID.apps.contoso.com • appUID – combination of site collection ID and particular SPWeb where app is installed
  • 36. get app to site collection • All site content provides functionality to add apps • Both market place and corporate catalog visible from single place • Users can add Apps to be available • Apps can request permissions, depending on implementation
  • 37. resources • dev.office.com • blogs.msdn.com/b/officeapps • blog.tedpattison.net • http://www.andrewconnell.com/blog/archive/2012/10/02/fully- scripted-solution-for-creating-and-registering-self-signed- certs.aspx • http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.asp x?ID=267
  • 39. thank you. SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012

Editor's Notes

  1. Why suddenly apps – my feeling in februaryChoice of words – angry birds – sharepoint enterprise platform?Let’s look at the reasons
  2. How will the users be using the application?How will the application be deployed into production and managed?What are the quality attribute requirements for the application (security, performance, concurrency, localization, and configuration)How can the application be designed to be flexible and maintainable over time?
  3. 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
  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://<sharepointserver>/<content>/<tenant>/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
  6. Wording hosted/provisioned