SlideShare una empresa de Scribd logo
1 de 38
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

Más contenido relacionado

La actualidad más candente

Road to the Cloud - Extending your reach with SharePoint and Office 365
Road to the Cloud - Extending your reach with SharePoint and Office 365Road to the Cloud - Extending your reach with SharePoint and Office 365
Road to the Cloud - Extending your reach with SharePoint and Office 365Talbott Crowell
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsEuropean Collaboration Summit
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapEuropean Collaboration Summit
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyBob German
 
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...European Collaboration Summit
 
Share point development 101
Share point development 101Share point development 101
Share point development 101Becky Bertram
 
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...NCCOMMS
 
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Thomas Daly
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
 
So you’re building an intranet
So you’re building an intranetSo you’re building an intranet
So you’re building an intranetBecky Bertram
 
SPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, AppsSPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, AppsNCCOMMS
 
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01Sonja Madsen
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...European Collaboration Summit
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialEuropean Collaboration Summit
 
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint OnlineGoing with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint OnlineBob German
 
[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...European Collaboration Summit
 
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...European Collaboration Summit
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassEuropean Collaboration Summit
 
O365con14 - sharepoint online applification
O365con14 - sharepoint online applificationO365con14 - sharepoint online applification
O365con14 - sharepoint online applificationNCCOMMS
 

La actualidad más candente (20)

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

Similar a Custom Development in SharePoint – What are my options now?

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point appTalbott Crowell
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
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 StoreJuan Carlos Gonzalez
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 DevelopmentSébastien Levert
 
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 Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSébastien Levert
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Modelbgerman
 

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

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
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
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
 
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
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
 
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 Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 

Más de Talbott Crowell

PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012Talbott Crowell
 
PowerShell and SharePoint
PowerShell and SharePointPowerShell and SharePoint
PowerShell and SharePointTalbott Crowell
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#Talbott Crowell
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePointTalbott Crowell
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010Talbott Crowell
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointTalbott Crowell
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureTalbott Crowell
 

Más de Talbott Crowell (11)

Introduction to F# 3.0
Introduction to F# 3.0Introduction to F# 3.0
Introduction to F# 3.0
 
PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012
 
PowerShell and SharePoint
PowerShell and SharePointPowerShell and SharePoint
PowerShell and SharePoint
 
Welcome to windows 8
Welcome to windows 8Welcome to windows 8
Welcome to windows 8
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePoint
 
F# And Silverlight
F# And SilverlightF# And Silverlight
F# And Silverlight
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePoint
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore Future
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 

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