SlideShare uma empresa Scribd logo
1 de 24
From Solutions to Apps
                         Moving to SharePoint 2013




Bob German
Derek Cash-Peterson
BlueMetal Architects
                            @Bob1German • bobg@bluemetal.com
                             @SPDCP • derekcp@bluemetal.com
Agenda
• Apps Model Overview
• App Access to SharePoint
  – RESTful Access
  – Client Side Object Model (CSOM)
  – Cross-domain Access
  – OAuth Access
• Other Topics

                             @Bob1German • bobg@bluemetal.com
                              @SPDCP • derekcp@bluemetal.com
Apps 101

   Host
   Web         REST or
               Client OM




Link or
IFrame
              App



                @Bob1German • bobg@bluemetal.com
                 @SPDCP • derekcp@bluemetal.com
App Hosting Options
Host                Host
Web                 Web

        App                   App Web
                               (optional)
        Web

                               App         Azure
                                or other provider

 SharePoint               Provider or
 Hosted App             Auto-Hosted App

                  @Bob1German • bobg@bluemetal.com
                   @SPDCP • derekcp@bluemetal.com
App Hosting Options
App Web                         Provider or Azure
• Provisioned by SharePoint     • Auto-hosted apps are
  on app installation             provisioned by Office 365
• No Server Code – period         on app installation
  (though you can leverage      • Pretty much
  installed ASP.NET controls)                      Host
                                  anything goes Web
• May contain
  declarative, web-scoped       • Access host
                                  web via Oauth            App
  features (lists, site                                        Web
  pages, client
  script, images, css)
                                                               App
• Access host web via cross-
  domain library                  @Bob1German • bobg@bluemetal.com
                                   @SPDCP • derekcp@bluemetal.com
App Isolation
Host
                             http://myserver/sites/myweb/
Web

       App Web               http://app12345/sites/myweb/
       (optional)



                             http://whatevs.com/somepath/
       App         Azure
        or other provider
                            Different domain names leverage
                              browsers’ same-origin policy


                                 @Bob1German • bobg@bluemetal.com
                                  @SPDCP • derekcp@bluemetal.com
Isolated Application shows:
 - Client Side Object Model
 - Declarative features in App Site
 - Simple Client Web Part (“App Part”)

Chord Calculator

DEMONSTRATION

                                         @Bob1German • bobg@bluemetal.com
                                          @SPDCP • derekcp@bluemetal.com
App Access to SharePoint




              @Bob1German • bobg@bluemetal.com
               @SPDCP • derekcp@bluemetal.com
Choosing an App Model
2010 Model                       2013 Apps
• Reuse and backward             • App code is reusable in
  compatibility with existing      SharePoint and Office
  solutions                      • Better isolation – no more
• Full access to server OM         leftover web parts and lists
   – Nearly complete access to   • App-level AuthN from Azure
     everything in SharePoint      or other provider
   – Well documented –           • No dependency on User
     MSDN, many                    Code Service
     books, blogs, etc.          • Leverages general web
• Leverages SharePoint             development skills
  development skills
                                   @Bob1German • bobg@bluemetal.com
                                    @SPDCP • derekcp@bluemetal.com
Choosing an Access Method
REST                           CSOM
• Synchronous or               • Asynchronous only in
  asynchronous in Javascript     Javascript
• Returns entities (e.g.       • Returns SharePoint objects
  Contact, Task)                 (e.g. List, ListItem)
• Easier access from jQuery–   • Easier access from .NET
  no dependency on SP.JS         server side
                               • Batched requests



                                 @Bob1German • bobg@bluemetal.com
                                  @SPDCP • derekcp@bluemetal.com
Choosing a Hosting Model
SharePoint Hosted                Provider / Azure Hosted
• No server side code, period    • Server-side code
• Access to OOB SharePoint       • Server is not subject to
  web controls on the page         cross-domain policy
• Able to store content on       • More flexible data storage
  customer’s SP infrastructure     (SQL Azure, etc.)




                                   @Bob1German • bobg@bluemetal.com
                                    @SPDCP • derekcp@bluemetal.com
Accessing Data with Client OM




  OData
  (REST)




                @Bob1German • bobg@bluemetal.com
                 @SPDCP • derekcp@bluemetal.com
What’s New in CSOM
        So much more than simple site and list access!

•   User Profiles               •   Sharing
•   Search                      •   Workflow
•   Taxonomy                    •   E-Discovery
•   Feeds                       •   IRM
•   Publishing                  •   Analytics
•   Business Connectivity
    Services

                                    @Bob1German • bobg@bluemetal.com
                                     @SPDCP • derekcp@bluemetal.com
Silverlight App w/Cross-Domain Policy
• CSOM Cross-domain Access
• CSOM File Upload
Webcam Demo

DEMONSTRATION

                                        @Bob1German • bobg@bluemetal.com
                                         @SPDCP • derekcp@bluemetal.com
Representational State Transfer (REST)




 JSON   ATOM   JSON   ATOM


                                WPF/WinForm/Office
                                Silverlight
                                JavaScript
                         @Bob1German • bobg@bluemetal.com
                          @SPDCP • derekcp@bluemetal.com
Representational State Transfer (REST)
• Operations map to HTTP verbs
  –   Retrieve items/lists  GET
  –   Create new item  POST
  –   Update an item  PUT or MERGE
  –   Delete an item  DELETE
  –   These apply to links (lookups) as well

• SharePoint rules apply during updates
  – Validation, access control, etc.


                                    @Bob1German • bobg@bluemetal.com
                                     @SPDCP • derekcp@bluemetal.com
URL Conventions
• Addressing lists and items
  List of lists      /_api/web/lists
  List               /_api/web/lists(‘guid’)
  List               /_api/web/lists/getbytitle(‘Title’)
  Items              /_api/web/lists/getbytitle('listname')/items
  Item               /_api/web/lists/getbytitle('listname')/items(1)
  Single column      /_api/web/lists/getbytitle('listname')/items(1)/fields/getByTitle
                     ('Description')


  Sorting            ?$orderby=Fullname
  Filtering          $filter=JobTitle eq 'SDE'
  Projection         ?$select=Fullname,JobTitle
  Paging             ?$top=10&$skip=30
                                                 @Bob1German • bobg@bluemetal.com
  Inline expansion   ?$expand=Project
                                                  @SPDCP • derekcp@bluemetal.com
jQuery App with Cross-Domain Library
Image Rotator

DEMONSTRATION

                                       @Bob1German • bobg@bluemetal.com
                                        @SPDCP • derekcp@bluemetal.com
Open Authentication
• Standard in use by dozens of public
  sites
• Similar to a valet key
   – App gives to a partly
     trusted 3rd party
   – Grants limited access
• SharePoint grants the
  app access on the
  user’s behalf
   – No need to pass the
     user’s credentials
   – SharePoint can limit the
     scope of access

                                 @Bob1German • bobg@bluemetal.com
                                  @SPDCP • derekcp@bluemetal.com
Azure-Hosted App with OAuth
Contacts Map

DEMONSTRATION

                              @Bob1German • bobg@bluemetal.com
                               @SPDCP • derekcp@bluemetal.com
Remote Event Receivers
• Require a provider or Azure-hosted app
• Uses Access Control Services (ACS) token
    – Passed from SharePoint to remote web service
    – Web service can request a token to send back to SharePoint
• SharePoint calls a web service with the following methods:
    – ProcessEvent() – Synchronous
    – ProcessOneWayEvent() – Asynchronous
• List, ListItem, Web, and App level scopes
• App Events – call AppEventReceiver.svc
    – App Installed
    – App Uninstalling
    – App Upgraded
• Caveats:
    – No guaranteed delivery
    – Watch latency and performance on synchronous events

                                              @Bob1German • bobg@bluemetal.com
                                               @SPDCP • derekcp@bluemetal.com
Workflow




     @Bob1German • bobg@bluemetal.com
      @SPDCP • derekcp@bluemetal.com
Resources
SharePoint 2013 Development
• Host webs, Web apps, and SharePoint Components:       http://bit.ly/R3tUiO
• Data Access Options for Apps in SharePoint 2013:      http://bit.ly/Peeof9
• OAuth and SharePoint 2013:                            http://bit.ly/Ny1jNd
• SharePoint 2013 Workflows:                            http://bit.ly/PEJCze
• Programming using the SharePoint 2013 REST service:   http://bit.ly/LR66Ju
• Programming using the SP 2013 CSOM (JavaScript):      http://bit.ly/OJUARG
Contact Us
• Bob German - @Bob1German
   http://msdn.microsoft.com/BobGerman
   Bobg@bluemetal.com
• Derek Cash Peterson - @SPDCP
   http://spdcp.com
   Derekcp@bluemetal.com

                                             @Bob1German • bobg@bluemetal.com
                                              @SPDCP • derekcp@bluemetal.com
was made possible by the generous
      support of the following sponsors…




    @Bob1German • bobg@bluemetal.com
                         Thank you!
And by@SPDCP • derekcp@bluemetal.com
      your participation…

Mais conteúdo relacionado

Mais procurados

O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
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
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Fabio Franzini
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...NCCOMMS
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...European Collaboration Summit
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per officeFabio Franzini
 
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
 
Share point apps the good, the bad, and the pot of gold at the end of the r...
Share point apps   the good, the bad, and the pot of gold at the end of the r...Share point apps   the good, the bad, and the pot of gold at the end of the r...
Share point apps the good, the bad, and the pot of gold at the end of the r...Bill Ayers
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
 
Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018serge luca
 
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft StreamECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft StreamEuropean Collaboration Summit
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?European Collaboration Summit
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentChris O'Brien
 
Single page applications & SharePoint
Single page applications & SharePointSingle page applications & SharePoint
Single page applications & SharePointFabio Franzini
 
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...European Collaboration Summit
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slideFabio Franzini
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenNCCOMMS
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSean McLellan
 

Mais procurados (20)

O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
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
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
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...
 
Share point apps the good, the bad, and the pot of gold at the end of the r...
Share point apps   the good, the bad, and the pot of gold at the end of the r...Share point apps   the good, the bad, and the pot of gold at the end of the r...
Share point apps the good, the bad, and the pot of gold at the end of the r...
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018
 
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft StreamECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
ECS19 - Michael Greth - Best Practice with Company Video on Microsoft Stream
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 development
 
Single page applications & SharePoint
Single page applications & SharePointSingle page applications & SharePoint
Single page applications & SharePoint
 
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
 
[Carius] Skype Online, Teams, and PSTN
[Carius] Skype Online, Teams, and PSTN[Carius] Skype Online, Teams, and PSTN
[Carius] Skype Online, Teams, and PSTN
 

Semelhante a From Solutions to Apps - Moving to SP2013

The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!Małgorzata Borzęcka
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkMałgorzata Borzęcka
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Henry S
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore
 
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
 
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 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
 
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
 
Design for scale
Design for scaleDesign for scale
Design for scaleDoug Lampe
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...BlueMetalInc
 
Spsnyc transforming share point farm solutions to the add-in model and shar...
Spsnyc   transforming share point farm solutions to the add-in model and shar...Spsnyc   transforming share point farm solutions to the add-in model and shar...
Spsnyc transforming share point farm solutions to the add-in model and shar...spsnyc
 
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 2013Adis Jugo
 
Webcomponents are your frameworks best friend
Webcomponents are your frameworks best friendWebcomponents are your frameworks best friend
Webcomponents are your frameworks best friendFilip Bruun Bech-Larsen
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookNordic APIs
 
Forge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataForge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataAutodesk
 

Semelhante a From Solutions to Apps - Moving to SP2013 (20)

The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
O365: Attack of the Clones
O365: Attack of the ClonesO365: Attack of the Clones
O365: Attack of the Clones
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
 
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?
 
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 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 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...
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
CATzure Azure Functions
CATzure Azure FunctionsCATzure Azure Functions
CATzure Azure Functions
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
Spsnyc transforming share point farm solutions to the add-in model and shar...
Spsnyc   transforming share point farm solutions to the add-in model and shar...Spsnyc   transforming share point farm solutions to the add-in model and shar...
Spsnyc transforming share point farm solutions to the add-in model and shar...
 
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
 
Webcomponents are your frameworks best friend
Webcomponents are your frameworks best friendWebcomponents are your frameworks best friend
Webcomponents are your frameworks best friend
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical Look
 
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?
 
Forge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataForge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM data
 
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
 

Último

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
 
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
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[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
 

Último (20)

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
 
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
 
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 ...
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[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
 

From Solutions to Apps - Moving to SP2013

  • 1. From Solutions to Apps Moving to SharePoint 2013 Bob German Derek Cash-Peterson BlueMetal Architects @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 2. Agenda • Apps Model Overview • App Access to SharePoint – RESTful Access – Client Side Object Model (CSOM) – Cross-domain Access – OAuth Access • Other Topics @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 3. Apps 101 Host Web REST or Client OM Link or IFrame App @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 4. App Hosting Options Host Host Web Web App App Web (optional) Web App Azure or other provider SharePoint Provider or Hosted App Auto-Hosted App @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 5. App Hosting Options App Web Provider or Azure • Provisioned by SharePoint • Auto-hosted apps are on app installation provisioned by Office 365 • No Server Code – period on app installation (though you can leverage • Pretty much installed ASP.NET controls) Host anything goes Web • May contain declarative, web-scoped • Access host web via Oauth App features (lists, site Web pages, client script, images, css) App • Access host web via cross- domain library @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 6. App Isolation Host http://myserver/sites/myweb/ Web App Web http://app12345/sites/myweb/ (optional) http://whatevs.com/somepath/ App Azure or other provider Different domain names leverage browsers’ same-origin policy @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 7. Isolated Application shows: - Client Side Object Model - Declarative features in App Site - Simple Client Web Part (“App Part”) Chord Calculator DEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 8. App Access to SharePoint @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 9. Choosing an App Model 2010 Model 2013 Apps • Reuse and backward • App code is reusable in compatibility with existing SharePoint and Office solutions • Better isolation – no more • Full access to server OM leftover web parts and lists – Nearly complete access to • App-level AuthN from Azure everything in SharePoint or other provider – Well documented – • No dependency on User MSDN, many Code Service books, blogs, etc. • Leverages general web • Leverages SharePoint development skills development skills @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 10. Choosing an Access Method REST CSOM • Synchronous or • Asynchronous only in asynchronous in Javascript Javascript • Returns entities (e.g. • Returns SharePoint objects Contact, Task) (e.g. List, ListItem) • Easier access from jQuery– • Easier access from .NET no dependency on SP.JS server side • Batched requests @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 11. Choosing a Hosting Model SharePoint Hosted Provider / Azure Hosted • No server side code, period • Server-side code • Access to OOB SharePoint • Server is not subject to web controls on the page cross-domain policy • Able to store content on • More flexible data storage customer’s SP infrastructure (SQL Azure, etc.) @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 12. Accessing Data with Client OM OData (REST) @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 13. What’s New in CSOM So much more than simple site and list access! • User Profiles • Sharing • Search • Workflow • Taxonomy • E-Discovery • Feeds • IRM • Publishing • Analytics • Business Connectivity Services @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 14. Silverlight App w/Cross-Domain Policy • CSOM Cross-domain Access • CSOM File Upload Webcam Demo DEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 15. Representational State Transfer (REST) JSON ATOM JSON ATOM WPF/WinForm/Office Silverlight JavaScript @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 16. Representational State Transfer (REST) • Operations map to HTTP verbs – Retrieve items/lists  GET – Create new item  POST – Update an item  PUT or MERGE – Delete an item  DELETE – These apply to links (lookups) as well • SharePoint rules apply during updates – Validation, access control, etc. @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 17. URL Conventions • Addressing lists and items List of lists /_api/web/lists List /_api/web/lists(‘guid’) List /_api/web/lists/getbytitle(‘Title’) Items /_api/web/lists/getbytitle('listname')/items Item /_api/web/lists/getbytitle('listname')/items(1) Single column /_api/web/lists/getbytitle('listname')/items(1)/fields/getByTitle ('Description') Sorting ?$orderby=Fullname Filtering $filter=JobTitle eq 'SDE' Projection ?$select=Fullname,JobTitle Paging ?$top=10&$skip=30 @Bob1German • bobg@bluemetal.com Inline expansion ?$expand=Project @SPDCP • derekcp@bluemetal.com
  • 18. jQuery App with Cross-Domain Library Image Rotator DEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 19. Open Authentication • Standard in use by dozens of public sites • Similar to a valet key – App gives to a partly trusted 3rd party – Grants limited access • SharePoint grants the app access on the user’s behalf – No need to pass the user’s credentials – SharePoint can limit the scope of access @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 20. Azure-Hosted App with OAuth Contacts Map DEMONSTRATION @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 21. Remote Event Receivers • Require a provider or Azure-hosted app • Uses Access Control Services (ACS) token – Passed from SharePoint to remote web service – Web service can request a token to send back to SharePoint • SharePoint calls a web service with the following methods: – ProcessEvent() – Synchronous – ProcessOneWayEvent() – Asynchronous • List, ListItem, Web, and App level scopes • App Events – call AppEventReceiver.svc – App Installed – App Uninstalling – App Upgraded • Caveats: – No guaranteed delivery – Watch latency and performance on synchronous events @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 22. Workflow @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 23. Resources SharePoint 2013 Development • Host webs, Web apps, and SharePoint Components: http://bit.ly/R3tUiO • Data Access Options for Apps in SharePoint 2013: http://bit.ly/Peeof9 • OAuth and SharePoint 2013: http://bit.ly/Ny1jNd • SharePoint 2013 Workflows: http://bit.ly/PEJCze • Programming using the SharePoint 2013 REST service: http://bit.ly/LR66Ju • Programming using the SP 2013 CSOM (JavaScript): http://bit.ly/OJUARG Contact Us • Bob German - @Bob1German http://msdn.microsoft.com/BobGerman Bobg@bluemetal.com • Derek Cash Peterson - @SPDCP http://spdcp.com Derekcp@bluemetal.com @Bob1German • bobg@bluemetal.com @SPDCP • derekcp@bluemetal.com
  • 24. was made possible by the generous support of the following sponsors… @Bob1German • bobg@bluemetal.com Thank you! And by@SPDCP • derekcp@bluemetal.com your participation…