Post on 07-Jan-2017
Alternative Approaches to Solution Development in SharePoint and Office 365
MARC D ANDERSONPRESIDENT, SYMPRAXIS CONSULTING LLC
SPONSORS
Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform.
Over 30 years of experience in technology professional services and software development. Over a wide-ranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes.
Author of SPServicesAwarded Microsoft MVP for SharePoint Server 2011-2016
Who Is Marc?
We regularly hear about the importance of building Apps Add-Ins from the Microsoft folks. But in many cases, that approach is overkill. Even in enterprises, all solutions aren’t "enterprise scale".
It’s always been possible to build solid solutions or solution components using Data View Web Parts or the trusty Content Editor Web Part to hold some HTML, JavaScript, and CSS, and those are still viable approaches. With a few other more modern tricks, we can even build solutions that span many pages using a common code base.
Join me as I kick around the plusses and minuses of “sanctioned development” versus smaller, lighter-touch approaches. Feel free to bring along your own questions and challenges so that we can make it a discussion.
Based on a discussion with Scot Hillier on the ITUnity Dev Pulse
Session Overview
The Middle Tier Manifesto: An Alternative Approach to Development with Microsoft SharePoint
Flying in the Cloud: New Ways to Develop for SharePoint Create a Business Solution, Step by Step, with No
Managed Code SharePoint Solutions with SPServices SharePoint Solutions with KnockoutJS Single-Page Applications (SPAs) in SharePoint Using
SPServices
Are We Talking About Something New?
There have always been alternatives;they have just become more accepted
So how do we do this?
Use your favorite toolsChoose your favorite frameworksWrite your solutions with HTML, CSS, and JavaScript
Watch your users smile
SharePoint Development Is [Becoming] Web Development
High Level Structure of Building SharePoint Solutions
Data Access / Initial Manipulation
"Document Ready"
ViewModel / Application Logic
Templates
JavaScript
HTML
Application Styling
CSS
•Has to coexist with SharePoint's CSS•Be very specific with your selectors
•Avoid hauling in SharePoint's baggage unless you need it
Many Data Sources SharePoint Lists and Libraries Office Microsoft Graph External data sources
Many exposed via Odata-compliant REST endpoints
Important Tools•Development tools – you choose
• Visual Studio (any flavor)• SharePoint Designer• WebStorm• Sublime Text• Notepad++
•Debugging tools – your browser• Chrome• Firefox with Firebug• Internet Explorer
• Testing tools…• Build tools …
Yo SharePointTypeScript
Gulp, etc.
SharePoint Framework Dashboard
Adding a User Custom Action allows you to load the first JavaScript file with a ScriptLink
RequireJS (or several alternatives – see system.js) allow you to bootstrap the rest of your code into the page
Because your script references are built in code, you can even do versioning
Bootstrapping
Isolation•Code Isolation•"Time to glass"•Pushing processing from server to client
Solution Artifacts•Document Library(ies)•Style Library• In the master page gallery at _catalogs/masterpage
•Can be unique to a Site Collection or stored centrally for better reuse•FaaS approach
Choose a Framework•Don't be caught up in the "shiny penny" syndrome•Compare your known requirements with the frameworks' capabilities•Ask yourself:•What types of solutions do we need to build?•What does our governance tell us about our deployment model?•How big is the development team?•What are our current skills?
User Custom Actions•Works without activating the Publishing Infrastructure•No master page customization (current "guidance")
•PnP Approaches• CDN Manager – Scot Hillier•Manage UserCustomAction using SharePoint Add-In - André Lage
•The easiest way to add Script and Brand your SharePoint and SharePoint Online - John Liu
Load JavaScript Conditionally• Can be driven by:• Page URL• Page content• Current user• IP address• Time of day• Presence of data in a list
Any characteristic of the current context
Some Better Practices• Store configuration variables in a Configuration list• Use Title for the parameter name• Second column for parameter value: Multiple lines of text• Can store strings, XML, JSON, etc. – any text-based data
constructs• Generalize wherever possible• Build a centralized set of FaaS• Use consistent namespacing
• Consider a build process• Many places you would have built a workflow can be
handled in code
Misconceptions•"Pure" JavaScript is better than jQuery or other libraries•Large JavaScript files clog up the network•You don't have to care about design•Meeting the requirements is enough
Truths•Frameworks can be hard to learn•Change is going to be rapid•Learning mindset is required
•Opens up the talent pool•Web developers may be easier to find and hire
Demos
thank youquestions?
live ratingsSYMPMARC.COM@SYMPMARC
spca.biz/TXPH
Contact InformationEmail marc.anderson@sympraxisconsulting.com
Twitter @sympmarcBlog http://sympmarc.com
SPServices http://spservices.codeplex.comSPXSLT http://spxslt.codeplex.comBooks http://sympmarc.com/books
The Middle Tier Manifesto http://bit.ly/middletier