0
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 ...
About Me
• http://about.me/talbott
• Solutions Architect at ThirdM
• A Founder of SharePoint Saturday Boston
• Microsoft M...
About this Talk
• For Developers
• Who want to build Custom Solutions on SharePoint
• For Architects
• Who want to underst...
App Development History
• SharePoint 2003 – Web Parts
• SharePoint 2007 – Farm Solutions & SPD
• WSP (A CAB file with depl...
What are My Options Today
• For SharePoint 2007 and SharePoint 2010
• OOTB Configuration
• CSS, JavaScript, Web Parts
• Sh...
What are My Options Today
• For SharePoint 2013
• OOTB Configuration
• CSS, JavaScript, Web Parts
• SharePoint Designer (w...
What are My Options Today
• For Office 365 (aka SharePoint Online)
• OOTB Configuration
• CSS, JavaScript, Web Parts
• Sha...
Factors in Choosing
• Size of Development Team
• Just you or a group of people?
• Skillset
• Leverage existing skills: Jav...
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 Par...
Client Object Models
• Microsoft Options
• .NET client object model
• Silverlight Client Object Model
• SilverlightWebPart...
REST/OData endpoints
• For non-JavaScript clients
• C#, Java, etc…
• CRUD Operations on SharePoint lists
• Target the clie...
Deprecated API sets
Two API sets are still supported in the SharePoint 2013
framework for backward compatibility, but we r...
SPServices
• Compatible with SharePoint 2007, 2010, 2013
• Based on asmx web services
• Created and maintained by Marc And...
What is a Provider Hosted App
• SharePoint 2013 Compatible Application
• Hosted outside of SharePoint
• Azure
• Amazon Web...
Apps for SharePoint Hosting Options
• Provider Hosted Apps
• SharePoint 2013 on-premise
or Office 365
• Unlimited scaling
...
Provider Hosted Apps
SharePoint
2013
Provider
Hosted
app
Provider
Service
Office 365 Data Center
or On-Premise SharePoint ...
Alternative Using Autohosted
Office 365
(SharePoint
Online)
Autohosted app
Windows Azure
Azure Database
Provider
Service
O...
Provider Hosted Architecture
• Store or App Catalog – Deployment Manifest .APP file
• App Manifest – Declare App Permissio...
Costs of Being a Provider
• Need to maintain and cover hosting cost
• But you can extend your app to other ecosystems outs...
Benefits of Provider Hosted
• Does not tax the SharePoint Farm‟s resources as much
as Farm Solution might
• Update 1000‟s ...
Development Model
• Get Started using Azure and Office 365 Preview
• Many Blog posts on getting started
• Deploy your Prov...
Development System Requirements
• Visual Studio 2012
• On Premise Development Environment
• http://bit.ly/spappdevenv
• Of...
Developing Apps?
Development Environment Decisions
• Office 365 or On-Premise?
• If Office 365, Visual Studio 2012
• If On...
App Packaging
• Start with Visual Studio 2012 Project Template
• .APP
• Contains AppManifest.xml
• Set Permission Requests...
Security
• Client Secret vs Certificate
• Client Secret requires SharePoint is farm connected to ACS
• Azure ACS (Access C...
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 ...
App Model Review
• SharePoint has completely new Development Model
• Leverage existing understanding with CSOM
• Leverage ...
Development Environment Options
• CloudShare
• http://cloudshare.com/
• Windows Azure
• if you have MSDN
• Stand up a Serv...
Session Review
• Many choices in customization
• OOTB, SharePoint Designer, C#, jQuery, Sandbox Solutions, Full
Trust Farm...
Resources
• My Blog for Slides, Questions, and Follow up information
• http://bit.ly/tcrowell
• Pluralsight Videos by Andr...
More Resources
• Jeremy Thake‟s SharePoint Apps Playbook Series
• http://bit.ly/appsplaybook
• Choose the Right API Set in...
Custom SharePoint Development in
SharePoint – What are My Options Now?
Presented by Talbott Crowell
@talbott
Questions?
Th...
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 ...
Upcoming SlideShare
Loading in...5
×

Custom Development in SharePoint – What are my options now?

2,725

Published on

Since Microsoft has released SharePoint 2013 with a whole new application development methodology, there has been some confusion and frustration in the community on what the best approach for customizing SharePoint for developers. In this session, we will look at the options, new and old, and discuss the pros and cons. We may even see some novel approaches you haven’t thought about yet.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,725
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
41
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Custom Development in SharePoint – What are my options now?"

  1. 1. Talbott Crowell ThirdM @talbott Custom SharePoint Development in SharePoint What are My Options Now?
  2. 2. Talbott Crowell SharePoint Saturday New Hampshire September 21st, 2013 Custom SharePoint Development in SharePoint – What are My Options Now?
  3. 3. About Me • http://about.me/talbott • Solutions Architect at ThirdM • A Founder of SharePoint Saturday Boston • Microsoft MVP • Blogger and Author • @talbott
  4. 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. 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. 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. 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. 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. 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. 10. Choose the right API set in SharePoint 2013 http://bit.ly/sp2013api
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. CSOM • Client Side Object Model • Rich improvements over 2010 • .NET version • JavaScript version • http://bit.ly/csom2013
  29. 29. Scope of Access • What can you get to from CSOM?
  30. 30. Series by Jeremy Thake • Introducing SharePoint Apps Playbook Series • http://bit.ly/appsplaybook • Real world experience building Apps for SharePoint
  31. 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. 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. 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. 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. 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. 36. Custom SharePoint Development in SharePoint – What are My Options Now? Presented by Talbott Crowell @talbott Questions? Thank You
  37. 37. was made possible by the generous support of the following sponsors… And by your participation… Thank you!
  38. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×