Post on 13-Apr-2017
w: rencore.com | e: info@rencore.com | t: @rencoreab
SharePoint Customizations
The most overlooked road blockto your migration
Erwin van HunenProduct Owner - TransformationMVP Office Servers and ServicesMicrosoft Certified Master
erwin.van.hunen@rencore.comwww.spcaf.com/blog@erwinvanhunen
rencore.com
Basics
rencore.com
Full Trust Code vs. „App“ „Addin“
Package/Application/Code that uses • Server Side Object Model• Declarative Code• Infrastructure specific
components (e.g. HTTP Handlers)
• (Too?) High level of trust
Package/Application/Code that uses • Client Side Object Model / REST• Runs with Office365• Runs outside the SharePoint
box• Configurable, but complex
level of trust
rencore.com
Full Trust Code vs. SharePoint Framework
Package/Application/Code that uses • Server Side Object Model• Declarative Code• Infrastructure specific
components (e.g. HTTP Handlers)
• (Too?) High level of trust
Package/Application/Code that uses • Client Side Object Model / REST• Based on JavaScript /
TypeScript• Not yet available for SP 2016• Has the same rights as the
user running it
“Will you ever support farm solutions in Office 365?”
Farm solutions are deployed cross SharePoint farm and they’d impact multiple customers…
No.Vesa Juvonen, Microsoft
rencore.com
What is „Transformation“
rencore.com
rencore.com
Magic
rencore.com
rencore.com
What does Transformation mean?• Look at what you have, then• Implement from scratch, while• Re-using concepts, patterns and data
rencore.com
Why would you Transform?• Moving from on-prem to Office365 or Hybrid• SharePoint version update• To be 'future proof'• Changed / New Requirements• Cannot start on a greenfield (time, money,
complexity)• Maintenance problems caused by customizations
rencore.com
How would you Transform your Code?• Replace / gradually update
existing FTC components • Re-use
code / data structures / solution concepts/ integrations
rencore.com
Major Changes
rencore.com
Major Changes• No SSOM, use CSOM/REST/Graph• Do not use the Feature Framework• Avoid Declarative artifacts / CAML where possible
(WebTemplates, Content Types, etc.)• Do not use MasterPages• Minimize Branding• Approach SharePoint/Office365 as a service• ”Modern” web development technologies (SPFx) instead of .NET
rencore.com
CAML == BAD
Time
Team SiteCustom Web
Template
onet.xmlX feature activations
onet.xmlX feature activations
onet.xmlX feature activations
+2
onet.xmlX feature activations
+4
onet.xmlX feature activations
onet.xmlX feature activations
<< Copy >>
Significant differences on the outcome unless web template onet.xml has been updated cross site collections with the changes which were also done for out of the box team site.
Web Template onet.xml is created by copying team site onet.xml and by adding stapled features to the onet.xml
Service updates for introducing new capabilities to team sites also using feature stapling
Source: TEE2015 DEV-B308http://matte.in/TTE2015Transform
rencore.com
Reimagine!
rencore.com
Transformation != CTRL + V• Is SharePoint/Office365 providing already the
functionality?• Does your solution benefit from the SharePoint UI?• Are you relying on 3rd party systems? • Does it have to be SharePoint?• Are the business requirements still valid?
rencore.com
The Transformation Process
Learn Plan & Track TransformAssess
rencore.com
Readiness• Add-in Model techniques
• App Part • Full Immersive app• UI Custom Actions• Remote Provisioning• Client Parts / SPFx
• Hosting• on-prem/Office365, • Provider/SharePoint hosted
• Authentication• On-prem AD or Azure AD?
rencore.com
„New“ Provisioning Approaches
Provider Hosted App
using CSOM/REST
.NET Console App
using CSOM/REST
PowerShell using
CSOM/REST
”Mechanical Turk”
PnP Provisioning
Engine
Stand alone site using
Graph
rencore.com
Code Assessment• Understand which customizations you have• Understand what they do• Understand why you have them and if they are still
relevant• Understand the impact they make on the
environment• Understand the involved effort to transform
rencore.com
Consider Authentication Carefully• If you transform your solution to SharePoint Online:
• Do you have an on-prem AD?• Do you use ADFS?• Are you moving to Azure AD?• Will you use Hybrid?• Will you use explicit or implicit grant flow for
authentication?
rencore.com
Consider Authentication Carefully• If you transform your solution to SharePoint Online:
• Do you have an on-prem AD?• Do you use ADFS?• Are you moving to Azure AD?• Will you use Hybrid?• Will you use explicit or implicit grant flow for
authentication?
rencore.com
Development: Add-In Model• Complex security
• Add-in security vs User security• Limited ability to specify what the add-in wants to do• Powerful: full access to C# / .NET ecosystem• Rich APIs
• CSOM• REST• Microsoft Graph
rencore.com
Development: SharePoint Framework• Not a replacement for Add-Ins but rather another option• Simple security
• The solution users has the same rights as the user using it• Powerful: access to the full JavaScript ecosystem• Rich APIs
• JSOM• REST• Microsoft Graph
rencore.com
Deployment
FULL TRUST•WSP files•Full control over server•Flexible•With great power comes great responsibility
SANDBOX•WSP files•No control over server•Less flexible•With less power comes great frustration
APPS / ADD-INs•Still new to many people•Separate hosting model•Complex authentication model
SPFx•Still in preview•Separate hosting model•Potentially very new development model to 'traditional' SP Devs
rencore.com
Move to Remote Provisioning• 'Roll your own'
• Complex, high maintenance• Flexible and potentially build for the task
• Use the PnP Provisioning Engine• Tested, pre-built• Template approach• Code approach• Extensible
• Use the PnP Partner Pack• Based upon the PnP Provisioning Engine
rencore.com
ResourcesOffice Pattern & Practices• https://dev.office.com/pnp
• Community project lead by Microsoft• Core Library, PowerShell cmdlets,
samples, reference implementations• Endorsed by SharePoint product group
SharePoint Framework (SPFx)• https://dev.office.com/sharepoint • Additional development model
• Still in preview
rencore.com
Rencore SP Transformatorwww.sptransformator.com
rencore.com
Questions?
THANK YOU!sales@rencore.com
www.sptransformator.com/trial
@sptransformator