SlideShare a Scribd company logo
Talbott Crowell
ThirdM
@talbott
Custom SharePoint
Development in
SharePoint
What are My Options Now?
Talbott Crowell
SharePoint Saturday New Hampshire
September 21st, 2013
Custom SharePoint
Development in SharePoint –
What are My Options Now?
About Me
• http://about.me/talbott
• Solutions Architect at ThirdM
• A Founder of SharePoint Saturday Boston
• Microsoft MVP
• Blogger and Author
• @talbott
About this Talk
• For Developers
• Who want to build Custom Solutions on SharePoint
• For Architects
• Who want to understand options and architecture considerations of
the different options for building applications on SharePoint
• For Anyone
• Who wants to learn more about SharePoint 2013 and previous
versions and what is possible for customization of this great
platform
App Development History
• SharePoint 2003 – Web Parts
• SharePoint 2007 – Farm Solutions & SPD
• WSP (A CAB file with deployment assets and
instructions) which may include:
• Server Code (.NET Assemblies for GAC or BIN)
• Client Code (JavaScript Files, CSS, HTML)
• ASP.NET (ASPX, ASCX, Master Pages), Images,
Site templates, List definitions, Content Types
(CAML), Layouts, various other types of content
• SPD (SharePoint Designer)
• Create custom solutions with Workflows, JavaScript,
HTML, jQuery, Master Pages, Layouts stored in
Content Database
• SharePoint 2010
• Sandbox Solutions
• SharePoint 2013
• Apps for SharePoint
What are My Options Today
• For SharePoint 2007 and SharePoint 2010
• OOTB Configuration
• CSS, JavaScript, Web Parts
• SharePoint Designer (with designer view)
• Master Pages, Page Layouts, Power Editing
• Visual Studio WSP
• SharePoint Solutions
• Can contain: CAML declarative XML
• Compiled .NET Code (.NET Assemblies)
• Features (Scoped at Farm, Web Application, Site Collection, or Site)
• For SharePoint 2010 only
• Sandbox Solutions
• WSP with Compiled .NET Code and CAML declarative XML
What are My Options Today
• For SharePoint 2013
• OOTB Configuration
• CSS, JavaScript, Web Parts
• SharePoint Designer (without designer view)
• Master Pages, Page Layouts, Power Editing
• Visual Studio WSP
• SharePoint Solutions
• Can contain: CAML declarative XML
• Compiled .NET Code (.NET Assemblies)
• Features (Scoped at Farm, Web Application, Site Collection, or Site)
• Sandbox Solutions
• WSP without Compiled .NET Code
• Can contain only CAML declarative XML
• Apps for SharePoint
What are My Options Today
• For Office 365 (aka SharePoint Online)
• OOTB Configuration
• CSS, JavaScript, Web Parts
• SharePoint Designer (without designer view)
• Master Pages, Page Layouts, Power Editing
• Sandbox Solutions
• WSP without Compiled .NET Code
• Can contain only CAML declarative XML
• Apps for SharePoint
Factors in Choosing
• Size of Development Team
• Just you or a group of people?
• Skillset
• Leverage existing skills: JavaScript, C#, etc…
• Development Environment
• Depending on what you choose, the cost for development
workstations can vary immensely
• Requirements
• Of course this should be #1, what are you trying to accomplish?
• This can be the most important factor on choosing between the
many different API‟s and customization options
• Maintainability/Upgradeability
Choose the right API set in SharePoint 2013
http://bit.ly/sp2013api
Server Object Model
• The largest set of APIs is in the server object model of
managed classes
• Workflow, Alerts, Web Parts, Search, BCS
• Many more classes are added in SharePoint 2013 for
• Enterprise Content Management (ECM)
• User profiles
• Taxonomy
• Advanced search
Client Object Models
• Microsoft Options
• .NET client object model
• Silverlight Client Object Model
• SilverlightWebPart class
• Mobile object model
• REST/OData endpoints
• WCF Data Services Framework
• http://bit.ly/sp2013api
• SPServices
REST/OData endpoints
• For non-JavaScript clients
• C#, Java, etc…
• CRUD Operations on SharePoint lists
• Target the client.svc web service
• Accepts a RESTful HTTP Request
• Responds with either Atom or JSON
• Example:
• http://server/site/_api/web/lists(„guid‟)/items?$filter=City eq
„Nashua‟
Deprecated API sets
Two API sets are still supported in the SharePoint 2013
framework for backward compatibility, but we recommend
that you not use them for new projects
1. ASP.NET (asmx) web services
2. Direct Remote Procedure Calls (RPC) calls to the
owssvr.dll file
SPServices
• Compatible with SharePoint 2007, 2010, 2013
• Based on asmx web services
• Created and maintained by Marc Anderson
• Great client side JavaScript library
• http://spservices.codeplex.com/
What is a Provider Hosted App
• SharePoint 2013 Compatible Application
• Hosted outside of SharePoint
• Azure
• Amazon Web Services (AWS)
• Rackspace
• Your Datacenter
• An on-premise server in your customer‟s Datacenter (you provide
the Application, Hardware, and/or VM)
• Written in any language on any platform
• Java, F#, Ruby, Linux, Unix
Apps for SharePoint Hosting Options
• Provider Hosted Apps
• SharePoint 2013 on-premise
or Office 365
• Unlimited scaling
• Autohosted Apps
• Typically Azure Web Sites
written in .NET
• Runs only in Office 365 (no
on-premise option)
• Uses the consumers Office
365 Azure resources
• SharePoint Hosted Apps
• Client side only (JavaScript,
jQuery, HTML, CSS)
• Uses CSOM to manipulate
SharePoint object
• http://bit.ly/spapphosting
Provider Hosted Apps
SharePoint
2013
Provider
Hosted
app
Provider
Service
Office 365 Data Center
or On-Premise SharePoint 2013 Farm
Application Runtime and Backend
(Can be anywhere: On-Premise or Cloud)
Customer Provider
Provider Data
Alternative Using Autohosted
Office 365
(SharePoint
Online)
Autohosted app
Windows Azure
Azure Database
Provider
Service
Office 365 Data Center
(including Azure)
Application Runtime and Backend
(Cloud Service you Host)
Customer Provider
Provider DataCustomer Data
Provider Hosted Architecture
• Store or App Catalog – Deployment Manifest .APP file
• App Manifest – Declare App Permission Requests
• Trust Settings – User must “allow” or “trust” your app
• Provider receives Request with Trust Token
• Provider uses CSOM to call back to SharePoint using the
Trust Token
• SharePoint persists changes made by the Provider in the
Content Database (just like SharePoint Designer)
Costs of Being a Provider
• Need to maintain and cover hosting cost
• But you can extend your app to other ecosystems outside of
SharePoint
• iPad, Facebook, Kindle, Salesforce
• Changes will affect ALL customers
• May need a versioning strategy for customers in Life Sciences
(long validation lifecycle)
Benefits of Provider Hosted
• Does not tax the SharePoint Farm‟s resources as much
as Farm Solution might
• Update 1000‟s of SharePoint Farms with one release
update to the Provider
• Centrally managed at the Provider‟s location
• Develop on any platform using any language leveraging
your existing developer and infrastructure knowledge
• Same App works on Office 365 and SharePoint 2013 on-
premise
Development Model
• Get Started using Azure and Office 365 Preview
• Many Blog posts on getting started
• Deploy your Provider Hosted app to your Provider (Azure,
AWS, Rackspace, local server)
• Deploy your .APP file to SharePoint
Development System Requirements
• Visual Studio 2012
• On Premise Development Environment
• http://bit.ly/spappdevenv
• Office Developer Tools for Visual Studio 2012
• http://bit.ly/spapptools
Developing Apps?
Development Environment Decisions
• Office 365 or On-Premise?
• If Office 365, Visual Studio 2012
• If On-Premise then build your SharePoint 2013 Dev
Server
• Windows Server 2012 or Windows Server 2008 R2 SP1
• http://msdn.microsoft.com/en-us/library/fp161179.aspx
• http://msdn.microsoft.com/en-us/library/fp179923.aspx
• Andrew Connell‟s Critical Path Training
• SharePoint 2013 Setup Guide for Developers
• http://bit.ly/cp2013setup
App Packaging
• Start with Visual Studio 2012 Project Template
• .APP
• Contains AppManifest.xml
• Set Permission Requests for your App
• Start Page
• Client ID
• App Icon Image File
• You can unpack the .APP by renaming .ZIP
Security
• Client Secret vs Certificate
• Client Secret requires SharePoint is farm connected to ACS
• Azure ACS (Access Control Service)
• Office 365 is already connected to ACS
• AppManifest.xml (.APP)
• Contains permissions
• OAuth
• TokenHelper.cs (runs on the Provider)
• Helps you manage requests for app tokens
• If you are developing in another language you will need to implement
this yourself
CSOM
• Client Side Object Model
• Rich improvements over 2010
• .NET version
• JavaScript version
• http://bit.ly/csom2013
Scope of Access
• What can you get to from CSOM?
Series by Jeremy Thake
• Introducing SharePoint Apps Playbook Series
• http://bit.ly/appsplaybook
• Real world experience building Apps for SharePoint
App Model Review
• SharePoint has completely new Development Model
• Leverage existing understanding with CSOM
• Leverage existing other technology knowledge
• Update many customers (or Farms) at once
• Costs and Benefits of being a Provider
• Security with OAuth
• Package and Deploy to Store
Development Environment Options
• CloudShare
• http://cloudshare.com/
• Windows Azure
• if you have MSDN
• Stand up a Server with HyperV
• MSDN licenses
• Buy a powerful workstation or laptop with adequate RAM,
etc..
• If you are doing OOTB
• just a Browser
• If you are doing SharePoint Designer
• No need for powerful workstation
Session Review
• Many choices in customization
• OOTB, SharePoint Designer, C#, jQuery, Sandbox Solutions, Full
Trust Farm Solutions, Apps for SharePoint
• Factors on Choosing
• Requirements, Maintainability, Upgradability, Development Team
Skillset, Budget, etc…
• Where to Go to Learn more…
Resources
• My Blog for Slides, Questions, and Follow up information
• http://bit.ly/tcrowell
• Pluralsight Videos by Andrew Connell
• Over 12 hours of Video
• http://bit.ly/acplural
• Microsoft MSDN Documentation on Apps for SharePoint
• http://bit.ly/spappmsdn
• CloudShare for developer and test hosting
• http://www.cloudshare.com/
More Resources
• Jeremy Thake‟s SharePoint Apps Playbook Series
• http://bit.ly/appsplaybook
• Choose the Right API Set in SharePoint 2013
• http://bit.ly/sp2013api
• SPServices for SharePoint 2007, 2010, and 2013
• http://spservices.codeplex.com/
• CloudShare
• http://cloudshare.com/
Custom SharePoint Development in
SharePoint – What are My Options Now?
Presented by Talbott Crowell
@talbott
Questions?
Thank You
was made possible by the generous
support of the following sponsors…
And by your participation… Thank you!
Be sure to fill out your eval
form & turn in at the end of
the day for a ticket to the
BIG raffle!
Join us for the raffle &
SharePint following the
last session

More Related Content

PPTX
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
PPTX
Custom Development for SharePoint
PPTX
Building high performance and scalable share point applications
PPTX
Top 7 mistakes
PPTX
Top 3 Mistakes when Building
PDF
ECS19 - Katja Jokisalo - Modernize your Intranet
PPTX
My First SharePoint Online PowerApp
PDF
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Custom Development for SharePoint
Building high performance and scalable share point applications
Top 7 mistakes
Top 3 Mistakes when Building
ECS19 - Katja Jokisalo - Modernize your Intranet
My First SharePoint Online PowerApp
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...

What's hot (20)

PPTX
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
PPTX
Road to the Cloud - Extending your reach with SharePoint and Office 365
PPTX
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
PPTX
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
PPTX
Modern SharePoint, the Good, the Bad, and the Ugly
PDF
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
PPTX
Share point development 101
PDF
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
PPTX
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
PPTX
Chris O'Brien - Introduction to the SharePoint Framework for developers
PPTX
So you’re building an intranet
PPTX
SPCA2013 - Apps, Apps, Apps
PPTX
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
PPTX
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
PPTX
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
PPTX
Going with the Flow: Rationalizing the workflow options in SharePoint Online
PPTX
[Jansen] Transforming your classic team sites into modern group connected tea...
PPTX
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
PPTX
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
PDF
O365con14 - sharepoint online applification
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
Road to the Cloud - Extending your reach with SharePoint and Office 365
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
Modern SharePoint, the Good, the Bad, and the Ugly
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
Share point development 101
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Chris O'Brien - Introduction to the SharePoint Framework for developers
So you’re building an intranet
SPCA2013 - Apps, Apps, Apps
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
Going with the Flow: Rationalizing the workflow options in SharePoint Online
[Jansen] Transforming your classic team sites into modern group connected tea...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
O365con14 - sharepoint online applification
Ad

Similar to Custom Development in SharePoint – What are my options now? (20)

PDF
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
PPTX
Developing a Provider Hosted SharePoint app
PPTX
Developing a provider hosted share point app
PPTX
2014 SharePoint Saturday Melbourne Apps or not to Apps
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
PPTX
Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...
PPTX
SharePoint Development
PPTX
Intro to SharePoint for Developers
PDF
Lifecycle Management with SharePoint Apps and Solutions
PPTX
The SharePoint 2013 App Model
PPTX
Getting started with SharePoint 2013 online development
PPTX
SharePoint 2013 APIs demystified
PPTX
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
PPTX
SharePoint Server 2013: to app or not to app?
PPTX
What's new for Developers in SharePoint 2013
PPTX
Module 1 - Introduction to the SharePoint Developer Landscape .pptx
PPTX
Getting Started with SharePoint 2013 Apps
PPTX
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
PPTX
SharePoint 2013 - What's New
PPTX
Relearning SharePoint Development
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Developing a Provider Hosted SharePoint app
Developing a provider hosted share point app
2014 SharePoint Saturday Melbourne Apps or not to Apps
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...
SharePoint Development
Intro to SharePoint for Developers
Lifecycle Management with SharePoint Apps and Solutions
The SharePoint 2013 App Model
Getting started with SharePoint 2013 online development
SharePoint 2013 APIs demystified
So You Want To Be A SharePoint Developer-SPS Silicon Valley 2015
SharePoint Server 2013: to app or not to app?
What's new for Developers in SharePoint 2013
Module 1 - Introduction to the SharePoint Developer Landscape .pptx
Getting Started with SharePoint 2013 Apps
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
SharePoint 2013 - What's New
Relearning SharePoint Development
Ad

More from Talbott Crowell (12)

PPTX
Talbott's brief History of Computers for CollabDays Hamburg 2025
PPTX
Introduction to F# 3.0
PPTX
PowerShell and SharePoint @spsnyc July 2012
PPTX
PowerShell and SharePoint
PPTX
Welcome to windows 8
PPTX
Exploring SharePoint with F#
PPTX
Automating PowerShell with SharePoint
PPTX
F# And Silverlight
PPTX
SharePoint Saturday Boston 2010
PPT
Automating SQL Server Database Creation for SharePoint
PPTX
Introduction to F#
PPTX
Architecting Solutions for the Manycore Future
Talbott's brief History of Computers for CollabDays Hamburg 2025
Introduction to F# 3.0
PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint
Welcome to windows 8
Exploring SharePoint with F#
Automating PowerShell with SharePoint
F# And Silverlight
SharePoint Saturday Boston 2010
Automating SQL Server Database Creation for SharePoint
Introduction to F#
Architecting Solutions for the Manycore Future

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
A Presentation on Artificial Intelligence
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation theory and applications.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Modernizing your data center with Dell and AMD
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Per capita expenditure prediction using model stacking based on satellite ima...
A Presentation on Artificial Intelligence
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation theory and applications.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Modernizing your data center with Dell and AMD
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity

Custom Development in SharePoint – What are my options now?

  • 1. Talbott Crowell ThirdM @talbott Custom SharePoint Development in SharePoint What are My Options Now?
  • 2. Talbott Crowell SharePoint Saturday New Hampshire September 21st, 2013 Custom SharePoint Development in SharePoint – What are My Options Now?
  • 3. About Me • http://about.me/talbott • Solutions Architect at ThirdM • A Founder of SharePoint Saturday Boston • Microsoft MVP • Blogger and Author • @talbott
  • 4. About this Talk • For Developers • Who want to build Custom Solutions on SharePoint • For Architects • Who want to understand options and architecture considerations of the different options for building applications on SharePoint • For Anyone • Who wants to learn more about SharePoint 2013 and previous versions and what is possible for customization of this great platform
  • 5. App Development History • SharePoint 2003 – Web Parts • SharePoint 2007 – Farm Solutions & SPD • WSP (A CAB file with deployment assets and instructions) which may include: • Server Code (.NET Assemblies for GAC or BIN) • Client Code (JavaScript Files, CSS, HTML) • ASP.NET (ASPX, ASCX, Master Pages), Images, Site templates, List definitions, Content Types (CAML), Layouts, various other types of content • SPD (SharePoint Designer) • Create custom solutions with Workflows, JavaScript, HTML, jQuery, Master Pages, Layouts stored in Content Database • SharePoint 2010 • Sandbox Solutions • SharePoint 2013 • Apps for SharePoint
  • 6. What are My Options Today • For SharePoint 2007 and SharePoint 2010 • OOTB Configuration • CSS, JavaScript, Web Parts • SharePoint Designer (with designer view) • Master Pages, Page Layouts, Power Editing • Visual Studio WSP • SharePoint Solutions • Can contain: CAML declarative XML • Compiled .NET Code (.NET Assemblies) • Features (Scoped at Farm, Web Application, Site Collection, or Site) • For SharePoint 2010 only • Sandbox Solutions • WSP with Compiled .NET Code and CAML declarative XML
  • 7. What are My Options Today • For SharePoint 2013 • OOTB Configuration • CSS, JavaScript, Web Parts • SharePoint Designer (without designer view) • Master Pages, Page Layouts, Power Editing • Visual Studio WSP • SharePoint Solutions • Can contain: CAML declarative XML • Compiled .NET Code (.NET Assemblies) • Features (Scoped at Farm, Web Application, Site Collection, or Site) • Sandbox Solutions • WSP without Compiled .NET Code • Can contain only CAML declarative XML • Apps for SharePoint
  • 8. What are My Options Today • For Office 365 (aka SharePoint Online) • OOTB Configuration • CSS, JavaScript, Web Parts • SharePoint Designer (without designer view) • Master Pages, Page Layouts, Power Editing • Sandbox Solutions • WSP without Compiled .NET Code • Can contain only CAML declarative XML • Apps for SharePoint
  • 9. Factors in Choosing • Size of Development Team • Just you or a group of people? • Skillset • Leverage existing skills: JavaScript, C#, etc… • Development Environment • Depending on what you choose, the cost for development workstations can vary immensely • Requirements • Of course this should be #1, what are you trying to accomplish? • This can be the most important factor on choosing between the many different API‟s and customization options • Maintainability/Upgradeability
  • 10. Choose the right API set in SharePoint 2013 http://bit.ly/sp2013api
  • 11. Server Object Model • The largest set of APIs is in the server object model of managed classes • Workflow, Alerts, Web Parts, Search, BCS • Many more classes are added in SharePoint 2013 for • Enterprise Content Management (ECM) • User profiles • Taxonomy • Advanced search
  • 12. Client Object Models • Microsoft Options • .NET client object model • Silverlight Client Object Model • SilverlightWebPart class • Mobile object model • REST/OData endpoints • WCF Data Services Framework • http://bit.ly/sp2013api • SPServices
  • 13. REST/OData endpoints • For non-JavaScript clients • C#, Java, etc… • CRUD Operations on SharePoint lists • Target the client.svc web service • Accepts a RESTful HTTP Request • Responds with either Atom or JSON • Example: • http://server/site/_api/web/lists(„guid‟)/items?$filter=City eq „Nashua‟
  • 14. Deprecated API sets Two API sets are still supported in the SharePoint 2013 framework for backward compatibility, but we recommend that you not use them for new projects 1. ASP.NET (asmx) web services 2. Direct Remote Procedure Calls (RPC) calls to the owssvr.dll file
  • 15. SPServices • Compatible with SharePoint 2007, 2010, 2013 • Based on asmx web services • Created and maintained by Marc Anderson • Great client side JavaScript library • http://spservices.codeplex.com/
  • 16. What is a Provider Hosted App • SharePoint 2013 Compatible Application • Hosted outside of SharePoint • Azure • Amazon Web Services (AWS) • Rackspace • Your Datacenter • An on-premise server in your customer‟s Datacenter (you provide the Application, Hardware, and/or VM) • Written in any language on any platform • Java, F#, Ruby, Linux, Unix
  • 17. Apps for SharePoint Hosting Options • Provider Hosted Apps • SharePoint 2013 on-premise or Office 365 • Unlimited scaling • Autohosted Apps • Typically Azure Web Sites written in .NET • Runs only in Office 365 (no on-premise option) • Uses the consumers Office 365 Azure resources • SharePoint Hosted Apps • Client side only (JavaScript, jQuery, HTML, CSS) • Uses CSOM to manipulate SharePoint object • http://bit.ly/spapphosting
  • 18. Provider Hosted Apps SharePoint 2013 Provider Hosted app Provider Service Office 365 Data Center or On-Premise SharePoint 2013 Farm Application Runtime and Backend (Can be anywhere: On-Premise or Cloud) Customer Provider Provider Data
  • 19. Alternative Using Autohosted Office 365 (SharePoint Online) Autohosted app Windows Azure Azure Database Provider Service Office 365 Data Center (including Azure) Application Runtime and Backend (Cloud Service you Host) Customer Provider Provider DataCustomer Data
  • 20. Provider Hosted Architecture • Store or App Catalog – Deployment Manifest .APP file • App Manifest – Declare App Permission Requests • Trust Settings – User must “allow” or “trust” your app • Provider receives Request with Trust Token • Provider uses CSOM to call back to SharePoint using the Trust Token • SharePoint persists changes made by the Provider in the Content Database (just like SharePoint Designer)
  • 21. Costs of Being a Provider • Need to maintain and cover hosting cost • But you can extend your app to other ecosystems outside of SharePoint • iPad, Facebook, Kindle, Salesforce • Changes will affect ALL customers • May need a versioning strategy for customers in Life Sciences (long validation lifecycle)
  • 22. Benefits of Provider Hosted • Does not tax the SharePoint Farm‟s resources as much as Farm Solution might • Update 1000‟s of SharePoint Farms with one release update to the Provider • Centrally managed at the Provider‟s location • Develop on any platform using any language leveraging your existing developer and infrastructure knowledge • Same App works on Office 365 and SharePoint 2013 on- premise
  • 23. Development Model • Get Started using Azure and Office 365 Preview • Many Blog posts on getting started • Deploy your Provider Hosted app to your Provider (Azure, AWS, Rackspace, local server) • Deploy your .APP file to SharePoint
  • 24. Development System Requirements • Visual Studio 2012 • On Premise Development Environment • http://bit.ly/spappdevenv • Office Developer Tools for Visual Studio 2012 • http://bit.ly/spapptools
  • 25. Developing Apps? Development Environment Decisions • Office 365 or On-Premise? • If Office 365, Visual Studio 2012 • If On-Premise then build your SharePoint 2013 Dev Server • Windows Server 2012 or Windows Server 2008 R2 SP1 • http://msdn.microsoft.com/en-us/library/fp161179.aspx • http://msdn.microsoft.com/en-us/library/fp179923.aspx • Andrew Connell‟s Critical Path Training • SharePoint 2013 Setup Guide for Developers • http://bit.ly/cp2013setup
  • 26. App Packaging • Start with Visual Studio 2012 Project Template • .APP • Contains AppManifest.xml • Set Permission Requests for your App • Start Page • Client ID • App Icon Image File • You can unpack the .APP by renaming .ZIP
  • 27. Security • Client Secret vs Certificate • Client Secret requires SharePoint is farm connected to ACS • Azure ACS (Access Control Service) • Office 365 is already connected to ACS • AppManifest.xml (.APP) • Contains permissions • OAuth • TokenHelper.cs (runs on the Provider) • Helps you manage requests for app tokens • If you are developing in another language you will need to implement this yourself
  • 28. CSOM • Client Side Object Model • Rich improvements over 2010 • .NET version • JavaScript version • http://bit.ly/csom2013
  • 29. Scope of Access • What can you get to from CSOM?
  • 30. Series by Jeremy Thake • Introducing SharePoint Apps Playbook Series • http://bit.ly/appsplaybook • Real world experience building Apps for SharePoint
  • 31. App Model Review • SharePoint has completely new Development Model • Leverage existing understanding with CSOM • Leverage existing other technology knowledge • Update many customers (or Farms) at once • Costs and Benefits of being a Provider • Security with OAuth • Package and Deploy to Store
  • 32. Development Environment Options • CloudShare • http://cloudshare.com/ • Windows Azure • if you have MSDN • Stand up a Server with HyperV • MSDN licenses • Buy a powerful workstation or laptop with adequate RAM, etc.. • If you are doing OOTB • just a Browser • If you are doing SharePoint Designer • No need for powerful workstation
  • 33. Session Review • Many choices in customization • OOTB, SharePoint Designer, C#, jQuery, Sandbox Solutions, Full Trust Farm Solutions, Apps for SharePoint • Factors on Choosing • Requirements, Maintainability, Upgradability, Development Team Skillset, Budget, etc… • Where to Go to Learn more…
  • 34. Resources • My Blog for Slides, Questions, and Follow up information • http://bit.ly/tcrowell • Pluralsight Videos by Andrew Connell • Over 12 hours of Video • http://bit.ly/acplural • Microsoft MSDN Documentation on Apps for SharePoint • http://bit.ly/spappmsdn • CloudShare for developer and test hosting • http://www.cloudshare.com/
  • 35. More Resources • Jeremy Thake‟s SharePoint Apps Playbook Series • http://bit.ly/appsplaybook • Choose the Right API Set in SharePoint 2013 • http://bit.ly/sp2013api • SPServices for SharePoint 2007, 2010, and 2013 • http://spservices.codeplex.com/ • CloudShare • http://cloudshare.com/
  • 36. Custom SharePoint Development in SharePoint – What are My Options Now? Presented by Talbott Crowell @talbott Questions? Thank You
  • 37. was made possible by the generous support of the following sponsors… And by your participation… Thank you!
  • 38. Be sure to fill out your eval form & turn in at the end of the day for a ticket to the BIG raffle! Join us for the raffle & SharePint following the last session