29
apps for the modern enterprise INTRODUCTION TO SHAREPOINT AS A DEVELOPMENT PLATFORM RON COURVILLE

Introduction to SharePoint as a development platform

Embed Size (px)

Citation preview

Page 1: Introduction to SharePoint as a development platform

apps for the modern enterprise

INTRODUCTION TO SHAREPOINT AS A DEVELOPMENT PLATFORMRON COURVILLE

Page 2: Introduction to SharePoint as a development platform

apps for the modern enterprise

Welcome to SharePoint Saturday Houston

•Please turn off all electronic devices or set them to vibrate.

•If you must take a phone call, please do so in the hall so as not to disturb others.

•Special thanks to our Diamond Sponsor, HSPUG

Thank you for being a part of the 7th Annual SharePoint Saturday

for the greater Houston area!

Page 3: Introduction to SharePoint as a development platform

apps for the modern enterprise

Thanks to all our Sponsors!

Page 4: Introduction to SharePoint as a development platform

apps for the modern enterprise

Information•Speaker presentation slides should be available from the SPSHOU website within a week or so•This presentation is available at http://slideshare.net/ronaldcourville

•The Houston SharePoint User Group will be having it’s next meeting Wednesday April 20th. Please join us at www.h-spug.org

Page 5: Introduction to SharePoint as a development platform

apps for the modern enterprise

A software team that speaks your language

Page 6: Introduction to SharePoint as a development platform

apps for the modern enterprise

About Me

•LSU alumnus•Working with custom SharePoint development since 2009

•With Entrance Consulting since 2012

Page 7: Introduction to SharePoint as a development platform

apps for the modern enterprise

… !?

“So, what do you do?”

Page 8: Introduction to SharePoint as a development platform

apps for the modern enterprise

Software platform

“A major piece of software, as an operating system, an operating environment, or a database, under which various smaller application programs can be designed to run.”

http://www.dictionary.com/browse/software-platform

Page 9: Introduction to SharePoint as a development platform

apps for the modern enterprise

What is SharePoint? (technically)

•An application?• “Intranet to go”• Core features

Document / Item Versioning Basic workflowsMetadata SitesWikis SearchCollaboration Permissions

Page 10: Introduction to SharePoint as a development platform

apps for the modern enterprise

What is SharePoint? (technically)•An application?•A framework?• Provides functionalities / solution to the particular

problem area• No code solutions (OOTB)

• SharePoint Designer workflows• Content Deployment

• Custom code solutions• APIs• Code libraries

• Higher business value: Custom software can be delivered with…Less time to delivery More consistent user experienceLess bugs More bang for the buck

Page 11: Introduction to SharePoint as a development platform

apps for the modern enterprise

Why have custom development?

Why• The SharePoint application

lacks specific functionality• Automate or assist typical

user functions within SharePoint

• Integrate metadata from other LOB systems into SharePoint

• Surface external applications on SharePoint for a better user experience

Why not• It’s fun / cool • There’s a viable ISV on the

market • It’s a large project (large

scale applications should not be built directly on SharePoint)• SP lists < SQL tables• 5000 list item query threshold

• More costly, could introduce additional bugs

Page 12: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2007 server side code•Server side languages• PHP, ASP.Net, Java

•SharePoint is built on ASP.Net

Page 13: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2007 server side code

•Application Page = custom ASP.Net page

Page 14: Introduction to SharePoint as a development platform

apps for the modern enterprise

Packaging and deploying custom code

Solution Package• Deploys to IIS application pool

• Dangerous• Memory leaks• Could crash server

• Difficult deployment (server restart)• Not supported in Office 365

Page 15: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2010 server side code• Solution package Farm solutions• Elevated access: Timer jobs, event receivers, site definitions,

custom content organizer rules, etc.• Deployable by farm admin• Not supported in Office 365

• Sandbox solutions• Simple, limited scope functions: custom web parts, ribbon button,

menu items, site themes, etc.• Deployable by site collection admin• Deprecated in Office 365

Page 16: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2010 custom code web parts

•Server side code•Or JavaScript-based• Primarily using web services (SOAP)• Easier to deploy• Protects the server

•SPServices• https://spservices.codeplex.com/

Page 17: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2010: SPServices + Content Editor

Page 18: Introduction to SharePoint as a development platform

apps for the modern enterprise

SharePoint 2013: Client code renaissance

JavaScript Object Model (JSOM)

• Runs in the browser• Language: JavaScript

Client Side Object Model (CSOM)

• Runs on local machine• Languages: C# or

Visual Basic

Representational State Transfer

(REST)• Highly standardized API• Upgraded from SOAP

API in 2010

Enabled SharePoint Apps…

Page 19: Introduction to SharePoint as a development platform

apps for the modern enterprise

• Deployable from the app store• On prem and O365• Delivers functionality and/or

UI to the host SP site

Types of add-ins• SharePoint hosted add-in

• Lives on SharePoint• Provider hosted add-in

• Lives on external, independent website

• Webpage surfaced as an iframe

SharePoint 2013: Apps Add-ins

Page 20: Introduction to SharePoint as a development platform

apps for the modern enterprise

Why host custom code outside of SharePoint?Farm not at risk of memory leaks or unstable code

• Degrade performance; difficult to track, and can take down the whole farm

Dedicated and isolated app resources• Separation of concerns

Complete control over architecture• Supports any programming language or data source

Support large scale applications• > 5000 rows and faster read/write access

Can re-use outside of SharePoint• App data readily accessible by other LOB

Page 21: Introduction to SharePoint as a development platform

apps for the modern enterprise

Example add-in

Page 22: Introduction to SharePoint as a development platform

apps for the modern enterprise

Example add-in

Page 23: Introduction to SharePoint as a development platform

apps for the modern enterprise

Add-ins summary

Versioning Basic workflowsMetadata SitesWikis SearchCollaboration Permissions

Custom Architectu

re

Access core

SharePoint functionali

ty

Guaranteed stable

environment

Page 24: Introduction to SharePoint as a development platform

apps for the modern enterprise

What is SharePoint? (technically)•An application?•A framework? •A platform?

“A major piece of software, as an operating system, an operating environment, or a database, under which various smaller application programs can be designed to run.”

“An ecosystem of applications”

Page 25: Introduction to SharePoint as a development platform

apps for the modern enterprise

What’s next?

Office 365 as a platform

Page 26: Introduction to SharePoint as a development platform

apps for the modern enterprise

What’s next?

Page 27: Introduction to SharePoint as a development platform

apps for the modern enterprise

What’s next?

Page 28: Introduction to SharePoint as a development platform

apps for the modern enterprise

How to get started?

Learning resources• Pluralsight• MSDN• Dev.Office.com• Office 365 Patterns and PracticesStart simple, with low impact project

Page 29: Introduction to SharePoint as a development platform

apps for the modern enterprise

Questions?Learn more at www.entranceconsulting.com