SlideShare a Scribd company logo
1 of 38
Developing SharePoint Framework Solutions for the
Enterprise
Eric Shupps
President
BinaryWave
Level: Intermediate
About Me
Eric Shupps
Office Servers & Services MVP
@eshupps
sharepointcowboy
slideshare.net/eshupps
linkedin.com/in/eshupps
github.com/eshupps
INTRODUCTION
Enterprises are fueling the SPFx
rocket
M365 Dev Podcast – Top 10 Episode Downloads (Apr 2018 – Apr
2019)
http://www.m365devpodcast.com
Models
Full Trust
Coverage
Capability
Integration
Familiarity
Add-Ins
Contextual
PHA/SHA
Extensibility
Framework
X-Platform
Customizations
Modern
Azure
Flexible
SSO
Multi-Tenant
Deployment
Purpose
• Provide a “pages and parts” customization mechanism
that addresses gaps in the add-in model
• Regain the contextual functionality of web parts
• Give customers the ability to create integrated modern
page experiences in the cloud
• Transition to a completely client-side execution model
within the core page flow
• Extend out-of-the-box elements, including menus, list
items and branding
Architecture
SharePoint/Office 365
Host Web
Page
Enterprise Challenges
• Vision
• Team skills
• Tools acquisition
• Solution design, re-design and migration
• Legacy dependencies
• Cloud integration
• Collaborative development
• Vendor support
• Platform and version disparities
• Automated lifecycle management (DevOps)
ENABLEMENT
Legacy
• Windows Server
• IIS
• ASP.NET
• SharePoint Server
Framework
•.NET (C#/VB)
•SharePoint Server OM
•CAML/XOML
Languages and API’s
• Visual Studio
Tools
Modern
• Browser
• Server
• Mobile
Framework
•HTML, JavaScript (JQuery, Knockout, Angular,
React, etc.)
•CSOM, JSOM, REST, Office JS, Graph, OAuth
•C#, VB, Java, PHP, Python, Ruby, Others
Languages and API’s
• Visual Studio
• VS Code
• IDE of choice
Tools
Toolchain
TypeScript - JavaScript superset w/ typed objects, classes
&extension methods
Node.js - Web server and component packaging
extensions
NPM – Packaging and module
management utility
Gulp – Task runner and build automation
Yeoman – Project scaffolding generator
CDN – Content delivery network (or
location) for hosting source files
React – JavaScript library of UI
components
Office Fabric – Office-centric set of React
UI components
Skills Acquisition
Source: raywenderlich.com
Machine Configuration
• Windows
• Node.js
• NPM
• Gulp
• GitHub
• Yeoman Generator
• VS Code (or other)
• NVM (optional)
• Visual Studio Extension
• Mac
• Node.js
• NPM
• Gulp
• GitHub
• Yeoman Generator
• Homebrew (optional)
• NVM (optional)
• VS Code (or other)
Platform Configuration
• Developer Sites
• Workbench
• Corporate Catalog
• Site collection app catalog
• Content Delivery Network (or accessible file location)
• Apps (On-Premises)
Vision
• Why do we have to learn yet another development model?
• How long is this one going to last?
• We’re Microsoft developers, why do we have to learn all this Node
stuff?
• Why can’t I use Visual Studio?
• What the heck is this Git stuff?
• TypeScript? What what the [bleep] is that?
• My code goes where?
• Command line? Seriously? What year is this?
DESIGN AND DEVELOPMENT
Models
SPFx
Cloud or
OnPrem
Contextual
Integrated
Parts &
Extensions
Add-In
Cloud or
OnPrem
Contextual
Unintegrated
Apps, SPA's, Self-
Contained
Azure AD
Cloud
SSO
Full Stack
LOB
Full Trust
OnPrem
Full Trust
SSOM
Legacy
Solution
Legacy Redesign
Web Parts SPFx Web Part
Application Pages
SPFx Web Part / Add-In
Page
Timer Jobs
Azure Functions / Web
Jobs
Provisioning Add-In
Branding
SPFx Application
Customizer
Event Receivers Webhooks
Solution Components
Web Part
•In-context
page
component
•Customizable
property pane
•Connectable
•Scope: Page
Application
Customizer
•Script injection
onto pages
•Defined DOM
element
identifiers
•Scope: Site
Command Set
•Modify list and
item menus
•Custom
dialogs
•Scope: List
Field
Customizer
•Change display
options for
field elements
•Scope: List
Add-Ins Azure
Legacy Dependencies
•ERP
•SaaS
•LOB
•Third-Party
• VPN
• Firewall
• Bandwidth
• Gateways
•Directory
•Permissions
•Groups
•MFA
•Databases
•Web Services
•Applications
Data Auth
SystemsAccess
Vendor Support
Visual Studio
.NET
VB/C#
TFS/VSTS/Azure DevOps
Azure
VS Code
TypeScript
Yeoman Generator
SharePoint/O365
Node
NPM
Gulp
NVM
JavaScript
React
Knockout
Yeoman
PnP
Security
If you want authenticated
code, with verified
dependencies, signed and
supported by reputable
entities, with legally binding
commercial licensing
agreements…
…THAT DOG WON’T HUNT!
LIFECYCLE MANAGEMENT
Interoperability
SP 2016
(FP2)
SPO
SP 2019
Version Management
• Define feature support baseline
• Branch solutions according to
baseline or target environment
• Leverage common utility classes
and libraries wherever possible
• Apply local updates only to
master, resolve dependencies,
branch from master
SPFx
On-
Premises
2016
🚫
🚫
🚫
🚫
v1.1
2019
🚫
🚫
v1.4
Cloud
Current
v1.7
v1.5
v1.4
v1.2
v1.1
Updates
• Local vs. Global
• npm outdated
• npm install package@version –save
• o365 spfx project upgrade –toVersion [version]
Automated Lifecycle Management
• IDE integration with DevOps tooling and services
• Optimization of build dependencies (npm install)
• Controlled build pipeline
• Package configuration (dev, test, staging, production)
• Environment targeting
• Versioned deployment
Commit Build Package Deploy
DEPLOYMENT
Packaging
• Output of build tasks is a package file (similar to classic WSP)
• Controlled by package-solution.json file in project
• All assets packaged into .sppkg file if “includeClientSideAssets” = true.
• Use “skipFeatureDeployment” for tenant-wide deployment
• If CDN enabled, hosting of assets is automatic (otherwise served from App Catalog site collection)
– Change behavior by setting “includeClientSideAssets” = false
Packaging Commands
• gulp bundle --ship
• gulp package-solution --ship
Feature Framework
• Declarative assets can be deployed to sites as
part of an SPFx project
– Fields
– Site Columns
– Content Types
– List Instances
• Uses the same “Elements” structure as legacy
solution packages
• Assets are provisioned when solution (“app”) is
installed
…and retracted when it’s removed!
Office 365 CDN
• Enables delivery of SPFx assets from an O365 library
• Supports CSS, EOT, GIF, ICO, JPEG, JS, MAP, PNG,
SVG, TTF and WOFF extensions
• Requires */CLIENTSIDEASSETS origin*
• Automatically places assets into correct locations for
tenant-wide accessibility
CDN Commands
• Set-SPOTenantCdnEnabled –CdnType Public
• Get-SPOTenantCdnEnabled
• Get-SPOTenantCdnOrigins
• Get-SPOTenantCdnPolicies
• NOTE: Provisioning can take 15+ minutes to complete
Visual Studio Extension
• Custom Visual Studio VSIX project and item templates
• Parameters and settings configured in Windows Forms
• Overlays but does not replace the native Yeoman Generator for
SharePoint Framework
• Ability to customize command line for advanced usage scenarios
• Automated project scaffolding with standard VS and MS Build file
structures
• One-click F5 debug experience plus integration with the Task
Runner Explorer
VS Extension Usage
13k
SPFX ALM WITH AZURE
DEVOPS
Gated check-in that triggers automated build and deployment
activities
https://www.slideshare.net/eshupps
https://www.github.com/eshupps

More Related Content

What's hot

What's hot (20)

Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
 
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
(DVO314) USA Today Uses Chef & AWS for Infrastructure Standardization
 
Mastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
Mastering Best Azure DevOps Online Training and Certification - Dot Net TricksMastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
Mastering Best Azure DevOps Online Training and Certification - Dot Net Tricks
 
SharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopSharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development Workshop
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure Databricks
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UICross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
 
Drupal distributions to build a platform
Drupal distributions to build a platformDrupal distributions to build a platform
Drupal distributions to build a platform
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
API Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic DeploymentAPI Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic Deployment
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!
 

Similar to OSH01 - Developing SharePoint Framework Solutions for the Enterprise

Similar to OSH01 - Developing SharePoint Framework Solutions for the Enterprise (20)

DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
 
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutions
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
 
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
 

More from Eric Shupps

More from Eric Shupps (20)

Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
 
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
 
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateA Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
 
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce DevelopersApp to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
 
Beginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power AutomateBeginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power Automate
 
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
 
Mastering Modern Authentication and Authorization Techniques for SharePoint, ...
Mastering Modern Authentication and Authorization Techniques for SharePoint, ...Mastering Modern Authentication and Authorization Techniques for SharePoint, ...
Mastering Modern Authentication and Authorization Techniques for SharePoint, ...
 
ECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web ApplicationsECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web Applications
 
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
 
Overcoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical FieldOvercoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical Field
 
Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...
 
Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365
 
Introduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core LibrariesIntroduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core Libraries
 
SharePoint and Office Development Workshop
SharePoint and Office Development WorkshopSharePoint and Office Development Workshop
SharePoint and Office Development Workshop
 
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
 
SharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best PracticesSharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best Practices
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
 
Rev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best PracticesRev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best Practices
 
Real World SharePoint Add-In Development
Real World SharePoint Add-In DevelopmentReal World SharePoint Add-In Development
Real World SharePoint Add-In Development
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

OSH01 - Developing SharePoint Framework Solutions for the Enterprise

  • 1. Developing SharePoint Framework Solutions for the Enterprise Eric Shupps President BinaryWave Level: Intermediate
  • 2. About Me Eric Shupps Office Servers & Services MVP @eshupps sharepointcowboy slideshare.net/eshupps linkedin.com/in/eshupps github.com/eshupps
  • 4. Enterprises are fueling the SPFx rocket M365 Dev Podcast – Top 10 Episode Downloads (Apr 2018 – Apr 2019) http://www.m365devpodcast.com
  • 6. Purpose • Provide a “pages and parts” customization mechanism that addresses gaps in the add-in model • Regain the contextual functionality of web parts • Give customers the ability to create integrated modern page experiences in the cloud • Transition to a completely client-side execution model within the core page flow • Extend out-of-the-box elements, including menus, list items and branding
  • 8. Enterprise Challenges • Vision • Team skills • Tools acquisition • Solution design, re-design and migration • Legacy dependencies • Cloud integration • Collaborative development • Vendor support • Platform and version disparities • Automated lifecycle management (DevOps)
  • 10. Legacy • Windows Server • IIS • ASP.NET • SharePoint Server Framework •.NET (C#/VB) •SharePoint Server OM •CAML/XOML Languages and API’s • Visual Studio Tools
  • 11. Modern • Browser • Server • Mobile Framework •HTML, JavaScript (JQuery, Knockout, Angular, React, etc.) •CSOM, JSOM, REST, Office JS, Graph, OAuth •C#, VB, Java, PHP, Python, Ruby, Others Languages and API’s • Visual Studio • VS Code • IDE of choice Tools
  • 12. Toolchain TypeScript - JavaScript superset w/ typed objects, classes &extension methods Node.js - Web server and component packaging extensions NPM – Packaging and module management utility Gulp – Task runner and build automation Yeoman – Project scaffolding generator CDN – Content delivery network (or location) for hosting source files React – JavaScript library of UI components Office Fabric – Office-centric set of React UI components
  • 14. Machine Configuration • Windows • Node.js • NPM • Gulp • GitHub • Yeoman Generator • VS Code (or other) • NVM (optional) • Visual Studio Extension • Mac • Node.js • NPM • Gulp • GitHub • Yeoman Generator • Homebrew (optional) • NVM (optional) • VS Code (or other)
  • 15. Platform Configuration • Developer Sites • Workbench • Corporate Catalog • Site collection app catalog • Content Delivery Network (or accessible file location) • Apps (On-Premises)
  • 16. Vision • Why do we have to learn yet another development model? • How long is this one going to last? • We’re Microsoft developers, why do we have to learn all this Node stuff? • Why can’t I use Visual Studio? • What the heck is this Git stuff? • TypeScript? What what the [bleep] is that? • My code goes where? • Command line? Seriously? What year is this?
  • 18. Models SPFx Cloud or OnPrem Contextual Integrated Parts & Extensions Add-In Cloud or OnPrem Contextual Unintegrated Apps, SPA's, Self- Contained Azure AD Cloud SSO Full Stack LOB Full Trust OnPrem Full Trust SSOM Legacy Solution
  • 19. Legacy Redesign Web Parts SPFx Web Part Application Pages SPFx Web Part / Add-In Page Timer Jobs Azure Functions / Web Jobs Provisioning Add-In Branding SPFx Application Customizer Event Receivers Webhooks
  • 20. Solution Components Web Part •In-context page component •Customizable property pane •Connectable •Scope: Page Application Customizer •Script injection onto pages •Defined DOM element identifiers •Scope: Site Command Set •Modify list and item menus •Custom dialogs •Scope: List Field Customizer •Change display options for field elements •Scope: List Add-Ins Azure
  • 21. Legacy Dependencies •ERP •SaaS •LOB •Third-Party • VPN • Firewall • Bandwidth • Gateways •Directory •Permissions •Groups •MFA •Databases •Web Services •Applications Data Auth SystemsAccess
  • 22. Vendor Support Visual Studio .NET VB/C# TFS/VSTS/Azure DevOps Azure VS Code TypeScript Yeoman Generator SharePoint/O365 Node NPM Gulp NVM JavaScript React Knockout Yeoman PnP
  • 23. Security If you want authenticated code, with verified dependencies, signed and supported by reputable entities, with legally binding commercial licensing agreements… …THAT DOG WON’T HUNT!
  • 26. Version Management • Define feature support baseline • Branch solutions according to baseline or target environment • Leverage common utility classes and libraries wherever possible • Apply local updates only to master, resolve dependencies, branch from master SPFx On- Premises 2016 🚫 🚫 🚫 🚫 v1.1 2019 🚫 🚫 v1.4 Cloud Current v1.7 v1.5 v1.4 v1.2 v1.1
  • 27. Updates • Local vs. Global • npm outdated • npm install package@version –save • o365 spfx project upgrade –toVersion [version]
  • 28. Automated Lifecycle Management • IDE integration with DevOps tooling and services • Optimization of build dependencies (npm install) • Controlled build pipeline • Package configuration (dev, test, staging, production) • Environment targeting • Versioned deployment Commit Build Package Deploy
  • 30. Packaging • Output of build tasks is a package file (similar to classic WSP) • Controlled by package-solution.json file in project • All assets packaged into .sppkg file if “includeClientSideAssets” = true. • Use “skipFeatureDeployment” for tenant-wide deployment • If CDN enabled, hosting of assets is automatic (otherwise served from App Catalog site collection) – Change behavior by setting “includeClientSideAssets” = false
  • 31. Packaging Commands • gulp bundle --ship • gulp package-solution --ship
  • 32. Feature Framework • Declarative assets can be deployed to sites as part of an SPFx project – Fields – Site Columns – Content Types – List Instances • Uses the same “Elements” structure as legacy solution packages • Assets are provisioned when solution (“app”) is installed …and retracted when it’s removed!
  • 33. Office 365 CDN • Enables delivery of SPFx assets from an O365 library • Supports CSS, EOT, GIF, ICO, JPEG, JS, MAP, PNG, SVG, TTF and WOFF extensions • Requires */CLIENTSIDEASSETS origin* • Automatically places assets into correct locations for tenant-wide accessibility
  • 34. CDN Commands • Set-SPOTenantCdnEnabled –CdnType Public • Get-SPOTenantCdnEnabled • Get-SPOTenantCdnOrigins • Get-SPOTenantCdnPolicies • NOTE: Provisioning can take 15+ minutes to complete
  • 35. Visual Studio Extension • Custom Visual Studio VSIX project and item templates • Parameters and settings configured in Windows Forms • Overlays but does not replace the native Yeoman Generator for SharePoint Framework • Ability to customize command line for advanced usage scenarios • Automated project scaffolding with standard VS and MS Build file structures • One-click F5 debug experience plus integration with the Task Runner Explorer
  • 37. SPFX ALM WITH AZURE DEVOPS Gated check-in that triggers automated build and deployment activities