w: rencore.com | e: [email protected] | t: @rencoreab
SharePoint Customizations
The most overlooked road block
to your migration
Erwin van HunenProduct Owner - Transformation
MVP Office Servers and Services
Microsoft Certified Master
www.spcaf.com/blog
@erwinvanhunen
Basics
rencore.com
Full Trust Code vs. „App“ „Addin“
rencore.com
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
Full Trust Code vs. SharePoint Framework
rencore.com
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
What is „Transformation“
rencore.com
rencore.com
rencore.com
Magic
rencore.com
What does Transformation mean?
rencore.com
• Look at what you have, then
• Implement from scratch, while
• Re-using concepts, patterns and data
Why would you Transform?
rencore.com
• 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
How would you Transform your Code?
rencore.com
• Replace / gradually update
existing FTC components
• Re-use
code / data structures / solution concepts/ integrations
Major Changes
rencore.com
Major Changes
rencore.com
• 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
CAML == BAD
rencore.com
Custom Web Template
onet.xml
X feature activations
onet.xml
X feature activations
onet.xml
X feature activations +2
onet.xml
X feature activations +4
onet.xml
X feature activations
onet.xml
X 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-B308
http://matte.in/TTE2015Transform
Reimagine!
rencore.com
Transformation != CTRL + V
rencore.com
• 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?
The Transformation Process
rencore.com
Learn Plan & Track TransformAssess
Readiness
rencore.com
• 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?
„New“ Provisioning Approaches
rencore.com
Code Assessment
rencore.com
• 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
Consider Authentication Carefully
rencore.com
• 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?
Development: Add-In Model
rencore.com
• 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
Development: SharePoint Framework
rencore.com
• 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
Deployment
rencore.com
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
Move to Remote Provisioning
rencore.com
• '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
Resources
rencore.com
Office 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
Questions?
rencore.com