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.