sharepoint apps 101
TRANSCRIPT
fluent in energy
SHAREPOINT APPS 101RON COURVILLEENTRANCE SOFTWARE
fluent in energy
About Me
•LSU alumnus•Working with custom SharePoint development since 2009
•With Entrance Software since 2012
fluent in energy
• Delivers functionality and/or UI to the host environment
• Web page + App manifest (XML) = App
• Apps for Office and SharePoint 2013
• Deployable from the app store – public or private
• On prem or O365• Utilizes web standard
technologies like HTML5, XML, CSS3, JavaScript, and REST APIs
• Can be built in any web dev tools
What is an app?
fluent in energy
Example app
fluent in energy
Example app
fluent in energy
Know WHY you are deploying custom code
Out of the box
• Pros• More affordable• Faster rollout• Pre-tested by Microsoft
• Cons• Functionality restricted to
existing toolset• Limited control of
presentation• Does not support large scale
applications
Custom code
• Pros• Complete control of functionality• Can support large scale applications
• Allows more complex design• Can avoid speed and data limit
restrictions• Control over presentation
• Cons• Costly• Delays rollout• Additional complexity (ie. risk of
new bugs)• Upgrade compatibility not
guaranteed
fluent in energy
Flashback to 2010 custom solutions
•Sandbox or Farm solution• Sandbox is deprecated in 2013
•Share farm resources•Developers could implement dangerous methods• allowunsafeupdates = true• $list.EnableThrottling = $false
•Unlikely/expensive support in Office 365•Limited to SharePoint backend for hosting
fluent in energy
Why host outside of SharePoint?
•No memory leaks in the farm• Degrade performance• Difficult to track, and can take down the whole
farm•Dedicated and isolated app resources• Separation of concerns
•Support large scale applications• > 5000 rows• Faster read/write access• App data readily accessible by other LOB
•Can re-use outside of SharePoint
fluent in energy
•“App shapes”•Immersive - Full page
•App part - Iframe•Custom actions – custom menu
How apps are surfaced onto SharePoint
fluent in energy
Framework of the SharePoint App
•App Web, App Domain• http://app-bdf2016ea7dacb.fabrikamapps.com/sites/
Marketing/Scheduler•Host Web• https://www.fabrikam.com/sites/Marketing
• Iframe
fluent in energy
Cross Domain Challenges
•Same Origin Policy• Prevents a script or application from making a connection to any web server other than the one the web page originally came from
fluent in energy
Solving the cross-domain challenge
OAUTH – server sideCross-domain JS library –
client side
fluent in energy
Types of Apps – SharePoint Hosted
•Hosted on the farm in app web, accessible in the (isolated) app domain
•Client side technologies only• CSOM + JSOM + REST API
•Can implement most common SharePoint tools• Lists• Workflows• Content Types• People picker controls• Remote event receiver *
•Uses privileges of signed in user•Easiest to roll out•Rough equivalent: "Site template deployable from the app
marketplace"• Cross domain challenges do not make this a viable alternative to
most Site Template use cases
fluent in energy
Types of Apps – Provider Hosted
•Hosted on independent, external server
•Independent web application• Can use any architecture• Can be developed in any web language(s)
•Most freedom of control; more technically challenging to implement
fluent in energy
Example - Provider hosted app with app part
fluent in energy
Types of Apps – Auto Hosted
•Provider hosted + MS framework for faster builds
•Deprecated
fluent in energy
Additional Concerns
•SharePoint and app must be configured for https
•App part resizing•Reading parameters from URL in the app•Solution: "App Controller" Web Part
fluent in energy
App vs farm solution round up
App
• SharePoint, Provider, or Azure hosted
• Can be hosted externally, rolled up to app web
• Safer• Architectural freedom• Enterprise and O365 ready• Complex setup and coding
for cross domain access• Clunky UI handling
Custom solution
• Sandbox or Farm solution• More risky• Limited to SharePoint
architecture• Not supported by O365, often
not enterprise supported• Easier to develop• No iframe; more fluid UI
fluent in energy
What’s next?
•Office 365 API?
fluent in energy
Summary
•Stay OOTB if possible•Provider hosted app > SharePoint hosted app
•App > Farm solution•First evaluate the ROI• App: Less risk, better performance, more specialized deployment process
•Development and deployment processes will likely become more streamlined
fluent in energy
Questions?