SlideShare une entreprise Scribd logo
1  sur  30
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)
Project Templates
C#MSBuild
IIS Express
XAML
• 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
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
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

Contenu connexe

Tendances

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 LinsNCCOMMS
 
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 highlightsAnupam 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 OverviewVinh 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 2013Ed 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 MASTERCLASSEuropean Collaboration Summit
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationRob Wilson
 
AvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntAvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntMary 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 AzureTobias Lekman
 
Sharepoint 2013 Overview
Sharepoint 2013 OverviewSharepoint 2013 Overview
Sharepoint 2013 OverviewTarek 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
 
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 BakkerNCCOMMS
 
Using Office365 to build collaborative teams
Using Office365 to build collaborative teamsUsing Office365 to build collaborative teams
Using Office365 to build collaborative teamsOS-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 GrethNCCOMMS
 
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 PanelJoel 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
 

Tendances (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!
 

Similaire à 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 SPFxNCCOMMS
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkSandeep 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 reusabilityStephane 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 EnterpriseEnvision IT
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
In Act Developers Platform
In Act Developers PlatformIn Act Developers Platform
In Act Developers PlatformEris Ristemena
 
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 insNCCOMMS
 
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 ShareAlfresco 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]
 
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 developmentGil Fink
 
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 4Jon Galloway
 

Similaire à 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
 

Dernier

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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 WorkerThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
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 SolutionsEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 Servicegiselly40
 
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 AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

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)
  • 7.
  • 9.
  • 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
  • 11.
  • 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
  • 23.
  • 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

Notes de l'éditeur

  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