SlideShare a Scribd company logo
Gold Silver Bronze
• SharePoint Framework – why is it important?
• Development Tools
• SPFx getting started
• Demo - Let’s build
• Development Experience (Build, Debug, Deploy)
• SharePoint Extensions and new capabilities
• Roadmap
Anupam Ranku
 Kloudie – Consultant @Kloud Solutions
 SharePoint Online, Office 365, Azure
 Building SharePoint solution 10+ years
 Developing software for last 14+ years
• New model. Leveraging a modern web stack approach and focusing on
client side/browser based customizations.
• Additive to already existing methods
 SharePoint Add-in model
 Script Editor Web Parts (JavaScript injection/embeddings)
• Governance/Control of scripting capabilities in SharePoint Online
• Lots of guidance and help on Creating, Developing, Deploying Solutions:
 Development practices
 Testing approach
 Deployment to production
 Standardize client-side libraries
• GA – February 2017
• Transferable skills
• For developers, it’s never been easier to extend and further tailor SharePoint to
engage users.
• Developers can add the frameworks of their choice into the SharePoint Framework
toolchain, to let them build web integrations with SharePoint at lightning speed.
90%
of Fortune 500
companies
MS Cloud
100M
monthly
active users
(Office 365)
50K+
new SMBs per
month (Office
365)
8T
Resources
(emails, events,
calendar, users,
files)
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences
Project Templates
C#MSBuild
IIS Express
XAML
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences
• Go to https://dev.office.com/sharepoint/docs/spfx/set-
up-your-developer-tenant
Get a free Office 365 Developer Tenant
• Setup environment
• Build the first webpart
• Visual Studio Extension
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences
Top level folders
• .vscode: includes Visual Studio Code integration files
• config: includes all config files
• dist: created automatically when you build the project – holds debug
builds
• lib: created automatically when you build the project
• node_modules: this is created automatically when you build your
project, it includes all the npm packages your solution relies upon and
their dependencies
• src: this is the main folder of the project, it includes the web part,
styles, and a test file
• temp: created automatically when you build your project – holds
production builds
• typings: includes some type definition files. Most type definitions are
installed in node_modules@types
Defines the main entry point for the web part
Extends the BaseClientSideWebPart.
All client-side webs part must extend the
BaseClientSideWebPart class in order to be
defined as a valid web part
import { IHelloWorldWebPartProps } from './IHelloWorldWebPartProps';
export default class HelloWorldWebPart extends
BaseClientSideWebPart<IHelloWorldWebPartProps>
{
// code omitted
}
Defines the interface for moving properties
between different classes in the web part
export interface IHelloWorldWebPartProps {
description: string;
}
Defines the web part metadata
{
"$schema": "../../../node_modules/@microsoft/sp-module-
interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json",
"id": "318dd20d-0c02-4c3d-acc5-e2c0fa84cf3f",
"alias": "HelloWorldWebPart",
"componentType": "WebPart",
"version": "0.0.1",
"manifestVersion": 2,
"preconfiguredEntries": [{
"groupId": "318dd20d-0c02-4c3d-acc5-e2c0fa84cf3f",
"group": { "default": "Under Development" },
"title": { "default": "HelloWorld" },
"description": { "default": "HelloWorld description" },
"officeFabricIconFontName": "Page",
"properties": {
"description": "HelloWorld"
}
}]
}
Defines the web part styles
.container {
max-width: 700px;
margin: 0px auto;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
}
.row {
padding: 20px;
}
.listItem {
max-width: 715px;
margin: 5px auto 5px auto;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
}
Defines the TypeScript typings for the web part
styles
/* tslint:disable */
require('./HelloWorld.module.css');
const styles = {
helloWorld: 'helloWorld_68b3b0f6',
container: 'container_68b3b0f6',
row: 'row_68b3b0f6',
listItem: 'listItem_68b3b0f6',
button: 'button_68b3b0f6',
label: 'label_68b3b0f6',
};
export default styles;
/* tslint:enable */
Contains information about your bundle(s), any external
dependencies, localized resources
Specifies the AMD script libraries used in the web part
{
"entries": [
{
"entry": "./lib/webparts/helloWorld/HelloWorldWebPart.js",
"manifest": "./src/webparts/helloWorld/HelloWorldWebPart.manifest.json",
"outputPath": "./dist/hello-world.bundle.js"
}
],
"externals": {
“jquery": "node_modules/jquery/dist/jquery.min.js"
},
"localizedResources": {
"helloWorldStrings": "webparts/helloWorld/loc/{locale}.js"
}
}
• Build
• Workbench
 Local - Local development time experience. Test your
changes immediately, even in offline mode
 SharePoint Online - https://your-sharepoint-
site/_layouts/workbench.aspx
• Debug
• Deploy
 AppCatalog
 Office 365 Public/Private CDN
• Build and run on local server and automatically launch local SharePoint
Workbench
• Build and run solution on local server
• Inline - debugger;
• Visual Studio Code F5 – launch.Jason
SPFx generates source code mapping files in
debug builds
TypeScript files are mapped to the generated
JavaScript files
Source code mapping files are included in the
generated JavaScript files
• Connect
 SharePoint Online Management Shell
 Connect-SPOService -Url https://rankudemo-admin.sharepoint.com
• Verify / Enable / Disable
 Get-SPOTenantCdnEnabled -CdnType Public
 Get-SPOTenantCdnEnabled -CdnType Private
 Set-SPOTenantCdnEnabled -CdnType Public #-NoDefaultOrigins
 Set-SPOTenantCdnEnabled -CdnType Public / Private -Enable $false
 Public CDN enabled locations: MASTERPAGE, STYLE LIBRARY
• Access
https://publiccdn.sharepointonline.com/<tenanthostname>/sites/site/library
https://privatecdn.sharepointonline.com/tenant/sites/site/library/item?_eat_=1
495567990_1130bbbb93becf13dd9ec288398ef3f53a8dd131d7f1116f9d3f0b8
9a5277b45&_oat_=1495567990_de85e8d775578ba9936900
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences
Areas in the page available
for Application Customizer
to embed customizations
for end users. Application
Customizer can be also
invisible for the end users.
• Allow us to register a piece of JavaScript on every page within a SharePoint site
• Comes with a contract from Microsoft about specific elements on the page, such as
headers and footers.
• Not delegate controls, but similar
• Navigation, Branding, Analytics etc
Command Set customizer can be used
to introduce new custom actions to a
list. Can be configured to be active
when numerous items are selected.
Executes associated custom code when
clicked.
• Command sets which we knew as custom actions
• Command bar, Contextual Menu/ECB Menu
• On click, executes JavaScript
Field customizer can be used to
customize experiences around the
specific fields. You can associate field
customizer component to a specific
field instance to make a customization
execute when it’s used.
• Register a JavaScript object that will replace the rendering of a field within a
SharePoint list or document library
• KPI Visualization, Button/Control, Formatting Values
• Similar to JSLink
• More new Capabilities
 Web part to web part connections
 OpenId Connect support for 3rd party solutions - Call easily other services
hosted in Office 365 without complexity of additional consent. Gradual
extension of capabilities.
• Resources
 Office React Fabric
https://dev.office.com/fabric
 Enterprise guidance
https://dev.office.com/sharepoint/docs/spfx/enterprise-guidance
 Team development:
https://dev.office.com/sharepoint/docs/spfx/team-based-development-on-
sharepoint-framework
Spring (June)
SharePoint WebHooks GA
SharePoint Framework GA
SharePoint Sites on Microsoft Graph GA
Web part connection Preview
SharePoint Framework Extensions Preview
Fall (December)
SharePoint Extensions GA
Web part connection GA
Native Graph access from SharePoint Framework
SharePoint Framework Web Parts on-premises as
part of FP2
Any Questions*?
(*just make sure you tell me what I need to Google)
Anupam.ranku@gmail.com
http://ranku.site
Gold Silver Bronze

More Related Content

What's hot

O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
NCCOMMS
 
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
European Collaboration Summit
 
Microsoft ignite 2019 highlights
Microsoft ignite 2019 highlightsMicrosoft ignite 2019 highlights
Microsoft ignite 2019 highlights
Anupam Ranku
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
European Collaboration Summit
 
Sharepoint Overview
Sharepoint OverviewSharepoint Overview
Sharepoint Overview
Vinh Nguyen
 
Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013
Ed Musters
 
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASSECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
European Collaboration Summit
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development Presentation
Rob Wilson
 
AvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntAvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle Mgmnt
Mary Leigh Mackie
 
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
NCCOMMS
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Tobias Lekman
 
Sharepoint 2013 Overview
Sharepoint 2013 OverviewSharepoint 2013 Overview
Sharepoint 2013 Overview
Tarek Yehia
 
[Webinar] New Features in SharePoint 2016
[Webinar] New Features in SharePoint 2016 [Webinar] New Features in SharePoint 2016
[Webinar] New Features in SharePoint 2016
James Wright
 
SharePoint Overview
SharePoint OverviewSharePoint Overview
SharePoint Overview
Katpro Technologies Pvt Ltd
 
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick BakkerO365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
NCCOMMS
 
Using Office365 to build collaborative teams
Using Office365 to build collaborative teamsUsing Office365 to build collaborative teams
Using Office365 to build collaborative teams
OS-Cubed, Inc.
 
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael GrethO365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
NCCOMMS
 
SharePoint Conference 2019 - SharePoint Experts & Announcements Panel
SharePoint Conference 2019 - SharePoint Experts & Announcements PanelSharePoint Conference 2019 - SharePoint Experts & Announcements Panel
SharePoint Conference 2019 - SharePoint Experts & Announcements Panel
Joel Oleson
 
When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)
Rob Wilson
 
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!
Małgorzata Borzęcka
 

What's hot (20)

O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
 
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
ECS19 - Vesa Juvonen - SharePoint Development for Enterprises - What's New an...
 
Microsoft ignite 2019 highlights
Microsoft ignite 2019 highlightsMicrosoft ignite 2019 highlights
Microsoft ignite 2019 highlights
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
 
Sharepoint Overview
Sharepoint OverviewSharepoint Overview
Sharepoint Overview
 
Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013
 
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASSECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
ECS19 - Benjamin Niaulin - MICROSOFT TEAMS FOR POWER USERS MASTERCLASS
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development Presentation
 
AvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntAvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle Mgmnt
 
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
 
Sharepoint 2013 Overview
Sharepoint 2013 OverviewSharepoint 2013 Overview
Sharepoint 2013 Overview
 
[Webinar] New Features in SharePoint 2016
[Webinar] New Features in SharePoint 2016 [Webinar] New Features in SharePoint 2016
[Webinar] New Features in SharePoint 2016
 
SharePoint Overview
SharePoint OverviewSharePoint Overview
SharePoint Overview
 
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick BakkerO365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
 
Using Office365 to build collaborative teams
Using Office365 to build collaborative teamsUsing Office365 to build collaborative teams
Using Office365 to build collaborative teams
 
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael GrethO365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
O365Con18 - Best Practice with Company Video on Microsoft Stream - Michael Greth
 
SharePoint Conference 2019 - SharePoint Experts & Announcements Panel
SharePoint Conference 2019 - SharePoint Experts & Announcements PanelSharePoint Conference 2019 - SharePoint Experts & Announcements Panel
SharePoint Conference 2019 - SharePoint Experts & Announcements Panel
 
When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)
 
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!
 

Similar to Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences

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
NCCOMMS
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Sandeep Adwankar
 
Azure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusabilityAzure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusability
Stephane Lapointe
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
Vagif Abilov
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
Eris Ristemena
 
sveltekit-en.pdf
sveltekit-en.pdfsveltekit-en.pdf
sveltekit-en.pdf
ssuser65180a
 
SPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add insSPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add ins
NCCOMMS
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
Alfresco Software
 
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)
Brian Culver
 
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
SharePoint Patterns and Practices
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
Talbott Crowell
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
Knut Relbe-Moe [MVP, MCT]
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
SUGES (SharePoint Users Group España)
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
SPS Paris
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven development
Gil Fink
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
Ivano Malavolta
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 

Similar to Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences (20)

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
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
 
Azure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusabilityAzure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusability
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers Platform
 
sveltekit-en.pdf
sveltekit-en.pdfsveltekit-en.pdf
sveltekit-en.pdf
 
SPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add insSPUnite17 Become a Developer Hero by Building Office Add ins
SPUnite17 Become a Developer Hero by Building Office Add ins
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
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)
 
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
SharePoint Patterns & Practices - PnP Core and PnP PowerShell SIG - 7th of Oc...
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven development
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
 

Recently uploaded

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 

Recently uploaded (20)

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 

Office 365 Saturday (Sydney) - SharePoint framework – build integrated user experiences

  • 2. • SharePoint Framework – why is it important? • Development Tools • SPFx getting started • Demo - Let’s build • Development Experience (Build, Debug, Deploy) • SharePoint Extensions and new capabilities • Roadmap
  • 3. Anupam Ranku  Kloudie – Consultant @Kloud Solutions  SharePoint Online, Office 365, Azure  Building SharePoint solution 10+ years  Developing software for last 14+ years
  • 4. • New model. Leveraging a modern web stack approach and focusing on client side/browser based customizations. • Additive to already existing methods  SharePoint Add-in model  Script Editor Web Parts (JavaScript injection/embeddings) • Governance/Control of scripting capabilities in SharePoint Online • Lots of guidance and help on Creating, Developing, Deploying Solutions:  Development practices  Testing approach  Deployment to production  Standardize client-side libraries • GA – February 2017 • Transferable skills
  • 5. • For developers, it’s never been easier to extend and further tailor SharePoint to engage users. • Developers can add the frameworks of their choice into the SharePoint Framework toolchain, to let them build web integrations with SharePoint at lightning speed.
  • 6. 90% of Fortune 500 companies MS Cloud 100M monthly active users (Office 365) 50K+ new SMBs per month (Office 365) 8T Resources (emails, events, calendar, users, files)
  • 10. • Go to https://dev.office.com/sharepoint/docs/spfx/set- up-your-developer-tenant Get a free Office 365 Developer Tenant • Setup environment • Build the first webpart • Visual Studio Extension
  • 12. Top level folders • .vscode: includes Visual Studio Code integration files • config: includes all config files • dist: created automatically when you build the project – holds debug builds • lib: created automatically when you build the project • node_modules: this is created automatically when you build your project, it includes all the npm packages your solution relies upon and their dependencies • src: this is the main folder of the project, it includes the web part, styles, and a test file • temp: created automatically when you build your project – holds production builds • typings: includes some type definition files. Most type definitions are installed in node_modules@types
  • 13. Defines the main entry point for the web part Extends the BaseClientSideWebPart. All client-side webs part must extend the BaseClientSideWebPart class in order to be defined as a valid web part import { IHelloWorldWebPartProps } from './IHelloWorldWebPartProps'; export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { // code omitted }
  • 14. Defines the interface for moving properties between different classes in the web part export interface IHelloWorldWebPartProps { description: string; }
  • 15. Defines the web part metadata { "$schema": "../../../node_modules/@microsoft/sp-module- interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json", "id": "318dd20d-0c02-4c3d-acc5-e2c0fa84cf3f", "alias": "HelloWorldWebPart", "componentType": "WebPart", "version": "0.0.1", "manifestVersion": 2, "preconfiguredEntries": [{ "groupId": "318dd20d-0c02-4c3d-acc5-e2c0fa84cf3f", "group": { "default": "Under Development" }, "title": { "default": "HelloWorld" }, "description": { "default": "HelloWorld description" }, "officeFabricIconFontName": "Page", "properties": { "description": "HelloWorld" } }] }
  • 16. Defines the web part styles .container { max-width: 700px; margin: 0px auto; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); } .row { padding: 20px; } .listItem { max-width: 715px; margin: 5px auto 5px auto; box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); }
  • 17. Defines the TypeScript typings for the web part styles /* tslint:disable */ require('./HelloWorld.module.css'); const styles = { helloWorld: 'helloWorld_68b3b0f6', container: 'container_68b3b0f6', row: 'row_68b3b0f6', listItem: 'listItem_68b3b0f6', button: 'button_68b3b0f6', label: 'label_68b3b0f6', }; export default styles; /* tslint:enable */
  • 18. Contains information about your bundle(s), any external dependencies, localized resources Specifies the AMD script libraries used in the web part { "entries": [ { "entry": "./lib/webparts/helloWorld/HelloWorldWebPart.js", "manifest": "./src/webparts/helloWorld/HelloWorldWebPart.manifest.json", "outputPath": "./dist/hello-world.bundle.js" } ], "externals": { “jquery": "node_modules/jquery/dist/jquery.min.js" }, "localizedResources": { "helloWorldStrings": "webparts/helloWorld/loc/{locale}.js" } }
  • 19. • Build • Workbench  Local - Local development time experience. Test your changes immediately, even in offline mode  SharePoint Online - https://your-sharepoint- site/_layouts/workbench.aspx • Debug • Deploy  AppCatalog  Office 365 Public/Private CDN
  • 20. • Build and run on local server and automatically launch local SharePoint Workbench • Build and run solution on local server • Inline - debugger; • Visual Studio Code F5 – launch.Jason
  • 21. SPFx generates source code mapping files in debug builds TypeScript files are mapped to the generated JavaScript files Source code mapping files are included in the generated JavaScript files
  • 22. • Connect  SharePoint Online Management Shell  Connect-SPOService -Url https://rankudemo-admin.sharepoint.com • Verify / Enable / Disable  Get-SPOTenantCdnEnabled -CdnType Public  Get-SPOTenantCdnEnabled -CdnType Private  Set-SPOTenantCdnEnabled -CdnType Public #-NoDefaultOrigins  Set-SPOTenantCdnEnabled -CdnType Public / Private -Enable $false  Public CDN enabled locations: MASTERPAGE, STYLE LIBRARY • Access https://publiccdn.sharepointonline.com/<tenanthostname>/sites/site/library https://privatecdn.sharepointonline.com/tenant/sites/site/library/item?_eat_=1 495567990_1130bbbb93becf13dd9ec288398ef3f53a8dd131d7f1116f9d3f0b8 9a5277b45&_oat_=1495567990_de85e8d775578ba9936900
  • 24. Areas in the page available for Application Customizer to embed customizations for end users. Application Customizer can be also invisible for the end users. • Allow us to register a piece of JavaScript on every page within a SharePoint site • Comes with a contract from Microsoft about specific elements on the page, such as headers and footers. • Not delegate controls, but similar • Navigation, Branding, Analytics etc
  • 25. Command Set customizer can be used to introduce new custom actions to a list. Can be configured to be active when numerous items are selected. Executes associated custom code when clicked. • Command sets which we knew as custom actions • Command bar, Contextual Menu/ECB Menu • On click, executes JavaScript
  • 26. Field customizer can be used to customize experiences around the specific fields. You can associate field customizer component to a specific field instance to make a customization execute when it’s used. • Register a JavaScript object that will replace the rendering of a field within a SharePoint list or document library • KPI Visualization, Button/Control, Formatting Values • Similar to JSLink
  • 27. • More new Capabilities  Web part to web part connections  OpenId Connect support for 3rd party solutions - Call easily other services hosted in Office 365 without complexity of additional consent. Gradual extension of capabilities. • Resources  Office React Fabric https://dev.office.com/fabric  Enterprise guidance https://dev.office.com/sharepoint/docs/spfx/enterprise-guidance  Team development: https://dev.office.com/sharepoint/docs/spfx/team-based-development-on- sharepoint-framework
  • 28. Spring (June) SharePoint WebHooks GA SharePoint Framework GA SharePoint Sites on Microsoft Graph GA Web part connection Preview SharePoint Framework Extensions Preview Fall (December) SharePoint Extensions GA Web part connection GA Native Graph access from SharePoint Framework SharePoint Framework Web Parts on-premises as part of FP2
  • 29. Any Questions*? (*just make sure you tell me what I need to Google) Anupam.ranku@gmail.com http://ranku.site

Editor's Notes

  1. Manifest deployed to SharePoint AppCatalog by Tenant Admin Code can be hosted in SharePoint or external and loaded into page It runs in the context of the current user and connection in the browser. No iFrames. The controls are rendered in the normal page DOM. The controls are responsive and accessible by nature. There is a life cycle that the developer is involved in. It’s not just render, but load, _serialize _and deserialize, configuration changes, etc. It is framework agnostic – You can use any browser framework that you like – React, Handlebars, knockout, angular – take your pick. The tool chain is based on common open source client development tools like npm, TypeScript, yeoman, webpack, gulp, etc. Performance is key. SPFx client-side solutions that are approved by the tenant administrators (or their delegates) can be used by end users on all sites – even self service created sites like teams, groups, personal, etc. Can be deployed in both classic web part and publishing pages as well as the modern pages.
  2. BaseClientSideWebPart implements the minimal functionality that is required to build a web part. This class also provides many parameters to validate and access to read-only properties such as displayMode, web part properties, web part context, the web part instanceId, the web part domElement and much more. Notice that the web part class is defined to accept a property type IHelloWorldWebPartProps. The property type is defined as an interface in a separate file IHelloWorldWebPartProps.ts. export interface IHelloWorldWebPartProps { description: string; } JSX - syntax extension to JavaScript.
  3. Defines the web part metadata such as version, id, componentType, manifestVersion, and description. Every web part must contain this manifest.
  4. HelloWorld.module.scss.ts is the typescript file that includes the corresponding typings of HelloWorld.module.scss, you can then import and reference these styles in your web part code.
  5. This file contains information about your bundle(s) and any external dependencies and localized resources. - The entries section contains the default bundle information. The externals section contains the libraries that are not bundled with the default bundle. Asynchronous module definition
  6. JSX - extension to JavaScript. .tsx extention
  7. .pdb
  8. Covert it to almost like a 3rd party grid