Modern SharePoint Customization
John E. Huschka, Collaboration Foundry September 12, 2017 6
Tonight’s Menu
Salad
Changing user interface architecture
Soup
Changing toolset architecture
Tapas
Technology and tools
Dessert/Coffee Recommendations, questions and discussion
UI in the SharePoint World
ASP.Net
UI in the Client World
JavaScript 1 ASP.Net Client #1 2
Why Client-Side?
- Networking everywhere.
- Universal JavaScript.
- Client platform diversity: Phone, tablets…
- Client software knows how to render/run on the client.
- Sharing of cloud server resources:
- No individual can customize cloud-based servers.
Tools in the SharePoint World
Forms
Workflows
Webparts
Event Hdlrs
Solutions
Tools in the Client World
- Flow
- JavaScript
- Workflows
- Webparts
SharePoint Framework
- A framework by which client-side components can be integrated into SharePoint pages (modern and classic).
- Initial release supports web parts for both modern and classic pages.
- Coming to SharePoint 2016 in late 2017 (Feature Pack 2).
- “Extensions” (in preview) provides client-side integration with the SharePoint UI.
A New Toolset…
Diagram from Andrew Connell. See https://www.linkedin.com/pulse/free-10-day-email-course-me-.
SharePoint Modern Experience
- A major upgrade to the SharePoint UI supporting cloud-first, mobile-first:
- Sites
- Libraries
- Pages
- “Classic” experience is not deprecated.
- Currently, limited branding and customization options.
- Planned for SharePoint 2016.
Microsoft Patterns & Practices
- Microsoft-sponsored, open-source.
- Large, active, evolving collection of tools (wrapping the CSOM) and techniques.
- Multi-platform support:
- .NET (C#, VB.NET)
- PowerShell
- JavaScript (TypeScript)
- Useful for many contexts, but especially provisioning.
- Highly recommended.
Provisioning: Old versus New
Old:
- “Save site as template”
- Challenges:
- Compressed file format
- Deployment = site
- Not Microsoft recommended
New:
- Deployment: Feature framework
- PowerShell:
- Get-PnPProvisioningTemplate
- Advantages:
- Uncompressed XML file format
- Deployment = component(s)
- CSOM based
- Microsoft recommended
- Deployment:
- Apply-PnPProvisioningTemplate
Microsoft Flow
- Cloud-based low-code workflow
- Available as part of O365 or separate subscription
- Not a true triggered architecture
- Custom Azure function integration
- Currently, more of an individual solution:
- Not all SharePoint columns types supported
- No source code, deployment story
- Runs as individual who deployed
- Not unique to SharePoint…
Azure Logic Apps
- Azure cloud-based, code-optional workflow
- Same application as Microsoft Flow, but…
- Closer to an enterprise solution:
- Solution source code is available
- Creatable in Visual Studio
- Can integrate with custom functions
- Good logging/debugging
Microsoft PowerApps
- Cloud-based application development
- Available as part of O365 and Dynamics 365 or separate subscription
- Common Data Service available
- Flow integration
- Custom Azure function integration
Azure Functions & Webjobs
- Azure cloud-based code-first custom processes.
- Can be triggered from SharePoint via webhook
- Can be scheduled
- Can be integrated into other tools
- Wide variety of languages.
Recommendations
- Try the tools, technology. Get acquainted with them.
- Prepare your organization for cloud-based integration.
- Take advantage of integration opportunities. It’s not “all or nothing” for “classic” or “modern” architecture.
- Don’t forget your simple, core toolset.