2. About Me
• http://about.me/talbott
• Solutions Architect at ThirdM
• A Founder of SharePoint Saturday Boston
• Microsoft MVP
• Blogger and Author
• @talbott
3. 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
4. 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
5. 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
6. 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
• (although .NET Code is still supported for backward compatibility)
• Can contain only CAML declarative XML
• Apps for SharePoint
7. 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
8. 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
9. 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/
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, CS
S)
• Uses CSOM to manipulate
SharePoint object
• http://bit.ly/spapphosting
18. 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
19. Provider Hosted Apps
Office 365 Data Center
or On-Premise SharePoint 2013 Farm
Application Runtime and Backend
(Can be anywhere: On-Premise or Cloud)
Provider
Hosted
app
SharePoint
2013
Provider
Service
Provider Data
Customer
Provider
20. SharePoint App 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
21. 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
22. 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
23. How much RAM do you need?
• dfs
http://bit.ly/6gbsp2013
25. 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…
26. 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/
27. 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/
• SharePoint 2016 Dev with only 6 GB of RAM
• http://bit.ly/6gbsp2013
28. Custom SharePoint Development in
SharePoint – What are My Options Now?
Presented by Talbott Crowell
@talbott
Thank You
Questions?