30
Talbott Crowell SharePoint Saturday Rhode Island November 9 th , 2013 Custom Development for SharePoint What are My Options Now?

Custom Development for SharePoint

Embed Size (px)

Citation preview

Page 1: Custom Development for SharePoint

Talbott Crowell

SharePoint Saturday Rhode Island

November 9th, 2013

Custom Development for SharePointWhat are My Options Now?

Page 2: Custom Development for SharePoint

About Me• http://about.me/talbott • Solutions Architect at ThirdM• A Founder of SharePoint Saturday Boston• Microsoft MVP• Blogger and Author• @talbott

Page 3: Custom Development for SharePoint

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

Page 4: Custom Development for SharePoint

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

Page 5: Custom Development 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

Page 6: Custom Development for SharePoint

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

Page 7: Custom Development 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

Page 8: Custom Development 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

Page 9: Custom Development for SharePoint

Choose the right API set in SharePoint 2013

http://bit.ly/sp2013api

Page 10: Custom Development for SharePoint

Is the SharePoint Server API Dead?

Page 11: Custom Development for SharePoint

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

Page 12: Custom Development for SharePoint

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

Page 13: Custom Development for SharePoint

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’

Page 14: Custom Development for SharePoint

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

Page 15: Custom Development for SharePoint

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/

Page 16: Custom Development for SharePoint

Apps?

Page 17: Custom Development for SharePoint

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

Page 18: Custom Development for SharePoint

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

Page 19: Custom Development for SharePoint

Provider Hosted Apps

SharePoint 2013

Provider Hosted

app

Provider Service

Office 365 Data Centeror On-Premise SharePoint 2013 Farm

Application Runtime and Backend(Can be anywhere: On-Premise or Cloud)

Customer Provider

Provider Data

Page 20: Custom Development for SharePoint

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

Page 21: Custom Development for SharePoint

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

Page 22: Custom Development for SharePoint

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

Page 23: Custom Development for SharePoint

How much RAM do you need?• dfs

http://bit.ly/6gbsp2013

Page 24: Custom Development for SharePoint

Azure Demo by Peter Barrera

Page 25: Custom Development for SharePoint

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…

Page 26: Custom Development for SharePoint

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/

Page 27: Custom Development for SharePoint

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

Page 28: Custom Development for SharePoint

Custom SharePoint Development in SharePoint – What are My Options Now?

Presented by Talbott Crowell

@talbott

Questions?

Thank You

Page 29: Custom Development for SharePoint

Thanks to our sponsors! And you!

Page 30: Custom Development for SharePoint

One final note• Fill out your evaluation form & turn

for the big raffle (tablet)• SharePint next door (American)

5:30pm• Don’t forget WaterFire downtown

tonight!