SlideShare a Scribd company logo
Developing SharePoint 2013
Apps with Visual Studio 2012
Bram de Jager
SharePoint Architect @ Macaw
Microsoft Certified Solution Master: SharePoint
Agenda
•   Evolution
•   Apps for SharePoint
•   Visual Studio Tools
•   REST & CSOM APIs
•   Remote Event Receivers
EVOLUTION
Developing SharePoint 2013 Apps with Visual Studio 2012
Development Evolution
                           Investment in
Portals & content                               App discovery & management


          2003          2007                   2010              2013
      Web Parts     LOB                   Silverlight      Apps
                      applications          CSOM             Client side
                     Custom                 limited           experience
                      server side           Sandbox          CSOM
                      code                                    REST/oDat
                     WSP                                      a
                      deployment
Customization Options
           Farm                     Sandbox                SharePoint Apps
     Full trust solutions      Hosted in isolated        New Apps model
     Customizations to          process                   Deployed from



                                     
      file system of            Limited server side        corporate catalog or
      servers                    SharePoint API             Office Store
     Hosted in same             access                    Manage permission
      process as                No external service        and licenses
      SharePoint                 calls                      specifically
     Server side                                          Simple install and
      SharePoint API                                        upgrade process
      access                     Deprecated in             Preferred option
     Classic model from          SharePoint
      2007                           2013
App Development Scenarios
Deployment Options    Customization Options   Development Tools

On-Premise Farm
Installation          Farm-Trust Solutions    Web Browser
Office 365 &
SharePoint Online     Sandboxed Solutions     SharePoint Designer
                      SharePoint-Hosted
Hosted Installation   app                     Visual Studio


                      Provider-Hosted app     Eclipse, etc


                      Autohosted app
APPS FOR
SHAREPOINT
Developing SharePoint 2013 Apps with Visual Studio 2012
App Shapes
      Full page
      Implement complete app experiences to satisfy business
      scenarios


      App Parts
      Create app parts that can interact with the SharePoint
      experience


      UI command extensions
      Add new commands to the ribbon and item menus
Hosting Options
                                Provider-hosted app
                                                                             SharePoint
                                Provide your own hosting environment          Host Web                 Your Hosted Site
Cloud-hosted apps
- Use server code
- Receive SP events
- Use OAuth to access           Autohosted app
SP                                                                           SharePoint
                                Windows Azure + SQL Azure provisioned         Host Web                      Azure
                                automatically as apps are installed



SharePoint-Hosted app
                                                                        SharePoint
Provisions an isolated sub web on a host web
- Use SP artifacts & out-of-box web parts
                                                                         Host Web
- Use HTML & JavaScript for UI & client-side logic
- Use Workflows for middle tier logic                                                     SharePoint
                                                                                           App Web
VISUAL STUDIO
TOOLS
Developing SharePoint 2013 Apps with Visual Studio 2012
Visual Studio SharePoint
Tools
• Development Environments
  – Develop against a local SharePoint server
  – Remote development against SharePoint
    Online (Office 365)
• Tools
  – Office Developer Tools (RTM)
  – Download http://dev.office.com
Debug your app
• No app registration required
   – SharePoint Developer Site
   – ClientId & ClientSecret are generated for you
• IISExpress is used to host Web project
   – ~remoteAppUrl token update so it points to IISExpress Url
     (http://localhost:1234)
• LocalDB is used for SQL database
   – Connection string updated in web.config from SQL project
• Local workflow service is started & configured
Publish your app
• SharePoint-hosted & Autohosted
   – No app registration required
   – Everything included in the .app package
• Provider-hosted
   – Developer must acquire ClientId & ClientSecret via Seller
     Dashboard
   – SharePoint artifacts in .app package
   – Web assets in Web Deploy package - developer must
     deploy
       • Developer must publish & deploy SQL assets if not in Web
         Deploy package
Anatomy of an App Package
                    Host
                    Web
.app Package




                            App Web
               WS
   (OPC)

                P




                            (from WSP)




                    Azure
demo
Building your first app
Demo Silly Facts
• SharePoint-Hosted app
  – Look around
     • AppManifest.xml
     • SharePoint Artifacts
  – Silly Fact content type and Facts list
  – App Part (Client Web Part)
  – Custom Action (Host web)
REST & CSOM
Developing SharePoint 2013 Apps with Visual Studio 2012
Changes from 2010 to 2013
• The client.svc service extended with REST
  capabilities
   – client.svc now supports direct access from REST
     clients
   – client.svc accepts HTTP GET, PUT, POST requests
   – Implemented in accordance with OData protocol

• CSOM Extended new APIs
   – Focus investment on SharePoint Server APIs
   – Search, Social, Taxonomy, Workflow, Analytics,
     Sharing, Publishing, eDiscovery, IRM, BCS, … and
     more
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
Why is REST Important?
• Significant Industry Momentum
• Simple and Easy to Use
   –   Much easier to use than SOAP-based Web service
   –   Higher productivity when using JavaScript and jQuery
   –   Results can be returned in JSON and ATOM format
   –   Test in a browser
   –   Platform agnostic
• Each query is submitted with a unique URL
   – Results can be cached by proxy servers
REST URLs in SharePoint
2013
• CSOM URLS can go through _api folder
   – Simplifies URLs that need to be built
   – Removes client.svc file name from URL

• You can replace this URL
   – http://contoso.com/_vti_bin/client.svc/web

• With this URL
   – http://contoso.com/_api/web
Mapping Objects to
Resources
• Example REST URLs targeting
  SharePoint
  – _api/web/lists
  – _api/web/lists/getByTitle('Announcements')
  – _api/web/getAvailableWebTemplates(lcid=1033)
App Authentication
• Use OAuth for secure communications
  – SharePoint & web application trust third party
    (ACS)
• Trust developed using ClientId &
  ClientSecret
  – SharePoint & ACS know the ClientId
  – Web application & ACS know the
    ClientSecret
Authentication, cont’d
                       Access Control
                       Service
                       (ACS)
            ClientID                        ClientSecret




    SharePoint                            My Web
                         Access Token
    server                                Application
                        Context Token 
demo
Using CSOM and
REST
Demo CSOM and REST
• Provider-Hosted app
  – Add web project
  – Chrome
  – Use CSOM and REST to create silly facts
    • User Profile (REST)
    • Search (REST)
    • Taxonomy (CSOM)
REMOTE EVENT
RECEIVERS
Developing SharePoint 2013 Apps with Visual Studio 2012
Remote Event Receivers
• Where to use
   – Use RER to receive notification that a change has occurred
   – Use interface to poll SharePoint for changes
   – Write changes as required

• Event scopes: List Item, List, Web, App
• Support for the following types
   – Synchronous Events
   – Asynchronous After Events
Remote Event Receivers
Register declaratively or via code
                        string url=
                        "http://contoso.com/RemoteEventService.svc";

                        using (SPSite site = new SPSite(siteUrl))
                        {
                           using (SPWeb web = site.RootWeb)
                           {
                              SPList list = web.Lists[listTitle];
                              list.EventReceivers.Add(
                                SPEventReceiverType.ItemAdded,
                                url);
                           }
                        }
WRAP-UP
Developing SharePoint 2013 Apps with Visual Studio 2012
Summary
• The way forward for customizations on
  SharePoint
• Build for the cloud (Office 365)
• Heavily invested in CSOM and REST,
  allowing interaction with SharePoint
Try it yourself
Office Store


Office 365 playground
           http://dev.office.com
Information
• Download
   – Slides
   – Source code
   – http://bit.ly/XZTLbY

• Contact
   –   www.macaw.nl
   –   Bram.de.Jager@macaw.nl
   –   bramdejager.wordpress.com
   –   @bramdejager

More Related Content

What's hot

Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Bram de Jager
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
SPC Adriatics
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
Nik Patel
 
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
James Tramel
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
Talbott Crowell
 
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
 
The SharePoint 2013 App Model
The SharePoint 2013 App ModelThe SharePoint 2013 App Model
The SharePoint 2013 App Model
SPC Adriatics
 
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
NCCOMMS
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Bram de Jager
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
Elie Kash
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Nik Patel
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
SPTechCon
 
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...
SPC Adriatics
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
SharePoint Saturday New Jersey
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
Yaroslav Pentsarskyy [MVP]
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Chris O'Brien
 
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 2013Giuseppe Marchi
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
Noorez Khamis
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Alexander Meijers
 

What's hot (20)

Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
 
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
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
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...
 
The SharePoint 2013 App Model
The SharePoint 2013 App ModelThe SharePoint 2013 App Model
The SharePoint 2013 App Model
 
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
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
Developing hybrid SharePoint apps that run on-premise and in the cloud - ESPC...
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
 
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...
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
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
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
 
Visio Services in SharePoint 2010
Visio Services in SharePoint 2010Visio Services in SharePoint 2010
Visio Services in SharePoint 2010
 

Similar to Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays 2013 - Bram de Jager

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?
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
(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
Dragan Panjkov
 
MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appJoris Poelmans
 
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-appsAlexander Meijers
 
Sp2013 overview
Sp2013 overviewSp2013 overview
Sp2013 overviewBIWUG
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwugBIWUG
 
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
NCCOMMS
 
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
 
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 2012Joris Poelmans
 
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
Kenneth Maglio
 
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
Adis Jugo
 
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
Talbott Crowell
 
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
Juan Carlos Gonzalez
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
SPTechCon
 
SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012
Thuan Ng
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
SPC Adriatics
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
Ryan Schouten
 
Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013
Adis Jugo
 
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
Adis Jugo
 
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
Roy Kim
 

Similar to Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays 2013 - Bram de Jager (20)

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?
 
(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
 
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
 
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
 
Sp2013 overview biwug
Sp2013 overview biwugSp2013 overview biwug
Sp2013 overview biwug
 
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
 
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...
 
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
 
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
 
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
 
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
 
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
 
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 ...
 
SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012SharePoint Development with Visual Studio 2012
SharePoint Development with Visual Studio 2012
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
 
Enterprise apps in SharePoint 2013
Enterprise apps in SharePoint 2013 Enterprise apps in SharePoint 2013
Enterprise apps in 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
 
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
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays 2013 - Bram de Jager

  • 1.
  • 2. Developing SharePoint 2013 Apps with Visual Studio 2012 Bram de Jager SharePoint Architect @ Macaw Microsoft Certified Solution Master: SharePoint
  • 3. Agenda • Evolution • Apps for SharePoint • Visual Studio Tools • REST & CSOM APIs • Remote Event Receivers
  • 4. EVOLUTION Developing SharePoint 2013 Apps with Visual Studio 2012
  • 5. Development Evolution Investment in Portals & content App discovery & management 2003 2007 2010 2013  Web Parts  LOB  Silverlight  Apps applications  CSOM  Client side  Custom limited experience server side  Sandbox  CSOM code  REST/oDat  WSP a deployment
  • 6. Customization Options Farm Sandbox SharePoint Apps  Full trust solutions  Hosted in isolated  New Apps model  Customizations to process  Deployed from  file system of  Limited server side corporate catalog or servers SharePoint API Office Store  Hosted in same access  Manage permission process as  No external service and licenses SharePoint calls specifically  Server side  Simple install and SharePoint API upgrade process access Deprecated in  Preferred option  Classic model from SharePoint 2007 2013
  • 7. App Development Scenarios Deployment Options Customization Options Development Tools On-Premise Farm Installation Farm-Trust Solutions Web Browser Office 365 & SharePoint Online Sandboxed Solutions SharePoint Designer SharePoint-Hosted Hosted Installation app Visual Studio Provider-Hosted app Eclipse, etc Autohosted app
  • 8. APPS FOR SHAREPOINT Developing SharePoint 2013 Apps with Visual Studio 2012
  • 9. App Shapes Full page Implement complete app experiences to satisfy business scenarios App Parts Create app parts that can interact with the SharePoint experience UI command extensions Add new commands to the ribbon and item menus
  • 10. Hosting Options Provider-hosted app SharePoint Provide your own hosting environment Host Web Your Hosted Site Cloud-hosted apps - Use server code - Receive SP events - Use OAuth to access Autohosted app SP SharePoint Windows Azure + SQL Azure provisioned Host Web Azure automatically as apps are installed SharePoint-Hosted app SharePoint Provisions an isolated sub web on a host web - Use SP artifacts & out-of-box web parts Host Web - Use HTML & JavaScript for UI & client-side logic - Use Workflows for middle tier logic SharePoint App Web
  • 11. VISUAL STUDIO TOOLS Developing SharePoint 2013 Apps with Visual Studio 2012
  • 12. Visual Studio SharePoint Tools • Development Environments – Develop against a local SharePoint server – Remote development against SharePoint Online (Office 365) • Tools – Office Developer Tools (RTM) – Download http://dev.office.com
  • 13. Debug your app • No app registration required – SharePoint Developer Site – ClientId & ClientSecret are generated for you • IISExpress is used to host Web project – ~remoteAppUrl token update so it points to IISExpress Url (http://localhost:1234) • LocalDB is used for SQL database – Connection string updated in web.config from SQL project • Local workflow service is started & configured
  • 14. Publish your app • SharePoint-hosted & Autohosted – No app registration required – Everything included in the .app package • Provider-hosted – Developer must acquire ClientId & ClientSecret via Seller Dashboard – SharePoint artifacts in .app package – Web assets in Web Deploy package - developer must deploy • Developer must publish & deploy SQL assets if not in Web Deploy package
  • 15. Anatomy of an App Package Host Web .app Package App Web WS (OPC) P (from WSP) Azure
  • 17. Demo Silly Facts • SharePoint-Hosted app – Look around • AppManifest.xml • SharePoint Artifacts – Silly Fact content type and Facts list – App Part (Client Web Part) – Custom Action (Host web)
  • 18. REST & CSOM Developing SharePoint 2013 Apps with Visual Studio 2012
  • 19. Changes from 2010 to 2013 • The client.svc service extended with REST capabilities – client.svc now supports direct access from REST clients – client.svc accepts HTTP GET, PUT, POST requests – Implemented in accordance with OData protocol • CSOM Extended new APIs – Focus investment on SharePoint Server APIs – Search, Social, Taxonomy, Workflow, Analytics, Sharing, Publishing, eDiscovery, IRM, BCS, … and more
  • 20. 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
  • 21. Why is REST Important? • Significant Industry Momentum • Simple and Easy to Use – Much easier to use than SOAP-based Web service – Higher productivity when using JavaScript and jQuery – Results can be returned in JSON and ATOM format – Test in a browser – Platform agnostic • Each query is submitted with a unique URL – Results can be cached by proxy servers
  • 22. REST URLs in SharePoint 2013 • CSOM URLS can go through _api folder – Simplifies URLs that need to be built – Removes client.svc file name from URL • You can replace this URL – http://contoso.com/_vti_bin/client.svc/web • With this URL – http://contoso.com/_api/web
  • 23. Mapping Objects to Resources • Example REST URLs targeting SharePoint – _api/web/lists – _api/web/lists/getByTitle('Announcements') – _api/web/getAvailableWebTemplates(lcid=1033)
  • 24. App Authentication • Use OAuth for secure communications – SharePoint & web application trust third party (ACS) • Trust developed using ClientId & ClientSecret – SharePoint & ACS know the ClientId – Web application & ACS know the ClientSecret
  • 25. Authentication, cont’d Access Control Service (ACS) ClientID ClientSecret SharePoint My Web  Access Token server Application Context Token 
  • 27. Demo CSOM and REST • Provider-Hosted app – Add web project – Chrome – Use CSOM and REST to create silly facts • User Profile (REST) • Search (REST) • Taxonomy (CSOM)
  • 28. REMOTE EVENT RECEIVERS Developing SharePoint 2013 Apps with Visual Studio 2012
  • 29. Remote Event Receivers • Where to use – Use RER to receive notification that a change has occurred – Use interface to poll SharePoint for changes – Write changes as required • Event scopes: List Item, List, Web, App • Support for the following types – Synchronous Events – Asynchronous After Events
  • 30. Remote Event Receivers Register declaratively or via code string url= "http://contoso.com/RemoteEventService.svc"; using (SPSite site = new SPSite(siteUrl)) { using (SPWeb web = site.RootWeb) { SPList list = web.Lists[listTitle]; list.EventReceivers.Add( SPEventReceiverType.ItemAdded, url); } }
  • 31. WRAP-UP Developing SharePoint 2013 Apps with Visual Studio 2012
  • 32. Summary • The way forward for customizations on SharePoint • Build for the cloud (Office 365) • Heavily invested in CSOM and REST, allowing interaction with SharePoint
  • 33. Try it yourself Office Store Office 365 playground http://dev.office.com
  • 34. Information • Download – Slides – Source code – http://bit.ly/XZTLbY • Contact – www.macaw.nl – Bram.de.Jager@macaw.nl – bramdejager.wordpress.com – @bramdejager

Editor's Notes

  1. SandboxedSolutionsdeprecated statement: http://msdn.microsoft.com/en-us/library/jj163114.aspx (optioneel no-code sandboxedsolutions voorlopig wel ondersteund?)
  2. Office Developer Tools RTM on Tue 4 March: http://blogs.msdn.com/b/somasegar/archive/2013/03/04/now-available-office-developer-tools-for-visual-studio-2012.aspx VS.NET development for both apps & solutions
  3. Use when app is ready for…Testing by anther person or teamUpload to Store or App CatalogUse the packages from app.publish folder
  4. Open Packaging Conventions (OPC): http://msdn.microsoft.com/en-us/magazine/cc163372.aspxStandard For Packaging Data, also used for Office Open XML.
  5. Legacy of Frontpage…, finally gone
  6. ACS = Access Control Service (Windows Azure Access Control Service)
  7. SharePoint  ACS (sendsClientID)ACS  SharePoint (sendsContext Token)SharePoint  Web Application (sends Context Token)Web Application  ACS (sends Context Token and Client Secrettovalidate)ACS  Web Application (sends Access Token)Web Application  SharePoint (sends Access Token forcommunication)
  8. Debugging Remote Event Receivers with Visual Studio (Provider-hosted apps)http://blogs.msdn.com/b/officeapps/archive/2013/01/03/debugging-remote-event-receivers-with-visual-studio.aspx
  9. VSTO downside is distributionOffice users around the globe 1 billion (June 2010). Noteverybody has Office 2013, but it’sverylikelylots of themwillupcomingyears. VSTO: http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office