SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Extending MicrosoftTeams with SPFx webparts
Level: 200 ||Teams / Dev
Who wouldn't want to just develop once and then run their code everywhere? Now with SPFx (SharePoint
Framework) 1.8 being out, we're getting one step closer to that, as we're given an elegant way to bridge the gap
between your portals built on SharePoint, and Microsoft Teams where most of the collaboration happens.Teams is
just getting more and more powerful - and you can make it even more powerful by extending it.
This session contains an overview ofTeams extensibility scenarios, what SPFx is, and a closer look on how they
work together. We're taking a closer look (with demos!) at two different scenarios: how to create a new SPFx
webpart to be used withTeams, and how to modernize a webpart you already have running in your environment.
After this session, you're familiar with the basics of developing SPFx webparts to be used both in SharePoint and
Teams, as well as how to modify your existing webparts to surface them inTeams.
All of the code included in the demo will be available on GitHub after the session.
@koskila | https://www.koskila.net
Extending MicrosoftTeams with SPFx
webparts
Diamond
Platinum
Gold
Silver
Who’s speaking?
• Antti K. Koskela, Escalation Engineer forValo
Solutions
• From Finland -> 2017 USA -> 2018 Montréal
• A dev since 2004 (an accountant before that,
started with PHP, then Java, eventually C#)
• Bending and twisting SharePoint into
different shapes since MOSS
• Blogging at https://www.koskila.net and
https://www.valointranet.com !
@koskila | https://www.koskila.net
Jyväskylä
Montréal
Charlotte
Session
The session will include a quick overview and a few demos of
the capabilities of:
• Overview ofTeams & its extensibility scenarios
• What is SPFx ?
• How do they work together?
2 demos:
1. How to create a new SPFx webpart to be used withTeams
2. How to modernize a webpart you already have running in your
environment.
@koskila | https://www.koskila.net
Session: Structure
1. A quick look intoTeams (5 mins)
2. An overview ofTeams extensibility (5 mins)
3. A quick look into SFPx (5 mins)
4. SPFx +Teams (5 mins)
5. Demos (30 mins)
6. Discussion (5 mins)
@koskila | https://www.koskila.net
Session: Goals
• The attendees (that’s you!) are familiar with:
1. Teams extensibility and SPFx
2. The basics of developing SPFx webparts to be used both
in SharePoint andTeams
3. How to modify your existing webparts to surface them in
Teams.
@koskila | https://www.koskila.net
Your turn!
@koskila | https://www.koskila.net
Are/were you …
A developer?
An IT Pro?
A power user?
UsingTeams?
Familiar with SPFx?
Familiar withTeams extensions?
@koskila | https://www.koskila.net
Teams – why should I care?
@koskila | https://www.koskila.net
“To empower every person and every organization on the
planet to achieve more.”
Microsoft’s mission statement.
https://www.microsoft.com/en-us/about
Teams (both free and enterprise version) possess a huge role in this.
@koskila | https://www.koskila.net
@koskila | https://www.koskila.nethttps://slideplayer.com/slide/13397477/
@koskila | https://www.koskila.net
https://techcommunity.microsoft.com/t5/Microsoft-Teams/NEW-Teams-IT-architecture-posters-published/td-p/480928
Teams Extensibility
@koskila | https://www.koskila.net
Teams Extensibility
Tabs (Team and Personal)
Bots
Connectors
Messaging extensions
Activity feed integrations
Outgoing web hooks
Teams Extensibility
• Using SPFx is not necessarily – it’s just one scenario!
• Citizen Developer scenarios:
• ExtendTeams with Flow (https://flow.microsoft.com/en-
us/blog/introducing-the-flow-tab-in-teams-and-new-teams-
triggers/ )
• QnA Maker & Bot Framework enable no-code bots forTeams
(and other channels): https://thomy.tech/how-to-create-your-
own-qa-bot-for-microsoft-teams-with-no-code/
@koskila | https://www.koskila.net
SPFx
A new thing, again?
@koskila | https://www.koskila.net
SPFx vs “Traditional” SharePoint
SharePoint Framework
• Client-side execution model
• Rendered & executed in page
context
• Only way to customize modern
pages
• Open source cross-platform tooling
• Responsive, accessible & mobile
friendly
• Scoped to tenant or site
• Limited to creating client-side web
parts & UI extensions
Farm solutions
• Full server-sideAPI
• Only supported in on-premises
environments
• Built withVisual Studio on
Windows
• Scoped to farm
• Build web parts, timer jobs,
event receivers, feature
receivers, etc.
SPFx vs “classic” client-side options
• Script EditorWebParts
• Obvious choice of developers for customizing DOM on classic SharePoint sites.
• Script can be edited by any user with permissions
• Cannot be added to “NoScript” sites
• App Parts
• Developed using Add-in model (iframe)
• Cannot access DOM of SharePoint page
• Development and deployment is complicated, performance is questionable
• SPFx WebParts
• Client side web parts, leverages modern JavaScript frameworks
• Can be used with classic or modern SharePoint pages
• Development can be complicated, but at least the community is good and
possible side effects are limited
Teams + SPFx
@koskila | https://www.koskila.net
@koskila | https://www.koskila.net
SharePoint as the hosting platform for your MicrosoftTeams solutions
SharePoint
Online
js
JavaScript Library
js
JavaScript Library
Office 365 public CDN
js
SPFxTeams solutions are deployedto
Office 365 tenants using tenant app
catalog-Typical options for the sppkg
file packaging and hosting available.
SPFxTeams
Application
SPFxTeams application exposed in the
MicrosoftTeams as a tab (IFrame). Assets
are hosted in SharePoint and publishedto
Teams using standardTeams model.
All typical configuration available as for
any SPFx solution – like asset
packaging, CDN configuration, asset
provisioning etc.
1
2
3
Objective:Simplifydeploymentand
hostingfordevelopers.Remove
requirementsforAzureADspecificappsor
configurationsthroughAzureAdminUI
ExtendingTeams in practice
@koskila | https://www.koskila.net
Business value
• The demos show how to
develop or reuse your SPFx
webparts inTeams
• Single effort -> multiple
channels
@koskila | https://www.koskila.net
DEMO 1
How to create a new extension
using SPFx?
@koskila | https://www.koskila.net
DEMO 1 - How
Following these steps:
https://docs.microsoft.com/en-
us/sharepoint/dev/spfx/web-parts/get-
started/using-web-part-as-ms-teams-tab
@koskila | https://www.koskila.net
DEMO 1 - How
DEMO 1
• Essentially:
npm install yo -g
npm install @microsoft/generator-sharepoint -g
yo
And then follow instructions!
DEMO 1
• Then:
code .
gulp bundle --ship
gulp package-solution --ship
gulp serve
DEMO 1
• Finally:
Upload the app
Enter a webpart page
Add this to the URL:
?loadSPFX=true&debugManifestsFile=https%3A%2F%2Flocalhost%3A4321%2Ftemp%2Fmanifests.js
DEMO 2
How to modernize an existing
SPFx webpart to work in
Teams?
@koskila | https://www.koskila.net
DEMO 2
• Surface the same webpart in both Teams
and SharePoint Online
• Update the webpart to actually function
withTeams!
• The process is outlined in this blog post:
https://www.koskila.net/how-to-teamsify-
an-spfx-solution?/
DEMO 2 – How?
• Reupload a dev version of the SPFx
package
• Verify it’s now loaded from localhost
• Add aTeams manifest
• Load the manifest inTeams
• Update to SPFx 1.8 (or later)
• Grab the context if it exists
• Adjust the styles
• Reload in browser and enjoy
DEMO 2
• We already have a Modern Calendar SPFx webpart running in an
environment
• We also have the source available (the beauty of Open Source!)
• (https://github.com/koskila/sp-dev-fx-
webparts/tree/master/samples/js-modern-calendar)
DEMO 2
• Upload the dev version running from localhost
• gulp serve
• Access a Modern page and add this to your url:
?loadSPFX=true&debugManifestsFile=https%3A%2F
%2Flocalhost%3A4321%2Ftemp%2Fmanifests.js
DEMO 2
• Adding theTeams manifest
• You need to change the following values:
• id: Needs to be unique)
• configurableTabs > configurationUrl: Needs to
contain the id of the SPFx component
• configurableTabs > scopes: Needs to include
“team”
• Add thumbnail pictures
• Package as a zip
• Upload
DEMO 2
• Update the SPFx webpart to 1.8 (or newer)
• npm outdated
• npm install @microsoft/sp-core-library@latest --save
• npm install @microsoft/sp-module-interfaces@latest --save
• npm install @microsoft/sp-webpart-base@latest --save
• npm install @microsoft/sp-webpart-workbench@latest --save
• gulp –update
• npm update –save
• An example of this process outlined here:
• https://www.koskila.net/how-to-update-your-spfx-webpart-
to-a-new-version-of-sharepoint-framework/
DEMO 2 - Code
• Add code to recognize theTeams context
• Grab theTeams theme from the context to make our
webpart’s theme kind of compatible
• See all the code changes here:
• https://github.com/SharePoint/sp-dev-fx-
webparts/compare/master...koskila:moderncalendart
eamsdemo_v2
DEMO 2 - Caveats
• So, first step ofTeamsifying an SPFx webpart is easy
• You might run into issues with authentication, pop-ups, style
inconsistencies or your webpart trying to navigate elsewhere
• Most of the stuff probably works in browser, desktop could cause
issues
• Improvement:
• RecognizeTeams context and make styles compatible
Last points
Using App Studio to create manifests
Conclusions & Final words
@koskila | https://www.koskila.net
Conclusions
• Teams:
• Microsoft’s Hub for collaboration
• SPFx:
• Client-side framework for building SharePoint extensions
• Teams + SPFx:
• Develop with SPFx = works inTeams and SharePoint
• Demo 1:
• Creating a new SPFx webpart that’s compatible from the get-go
• Demo 2:
• Surfacing your existing SPFx webpart inTeams
@koskila | https://www.koskila.net
@koskila | https://www.koskila.net
Discussion
Resources & Further reading
• Code samples:
• https://github.com/koskila/sp-dev-fx-
webparts/commits/moderncalendarteamsdemo_v2/samples/js-modern-calendar
• Microsoft’s guides etc:
• https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-
web-part-as-ms-teams-tab
• My blog post containing slides, code, etc:
• Will be published at https://www.koskila.net/?p=4278
@koskila | https://www.koskila.net
Speaker Survey
and Raffle
• This year we are replacing the paper version
of Speaker Survey with Microsoft Forms.
• Scan the QR code for each session to access
and submit your survey.
• QR codes can be found in the program
guide or on the room sign located by the
door.
• You will receive ONE raffle ticket for each
session survey you complete.
• The raffle ticket volunteer will validate your
First and Last name before providing your
ticket(s)
• Drawing will be held this afternoon 4:30-
5:00 pm.
• Must be present to win.
You can download and use the QR Reader
app available for both iOS and Android
SharePint Happy Hour event held after
SPSCLT19 at Duckworth’s Grill and
Taphouse Uptown.
Walking distance from UNC Charlotte
Center City campus and the 7th street
light rail stop.
Feedback, Ideas,
Questions? Let’s connect!
• antti@valointranet.com
• @koskila
• www.koskila.net
• https://github.com/koskila
• https://www.linkedin.com/in/koski
la/
@koskila | https://www.koskila.net

Contenu connexe

Dernier

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 

Dernier (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 

En vedette

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Extending Microsoft Teams with SPFx webparts

  • 1. Extending MicrosoftTeams with SPFx webparts Level: 200 ||Teams / Dev Who wouldn't want to just develop once and then run their code everywhere? Now with SPFx (SharePoint Framework) 1.8 being out, we're getting one step closer to that, as we're given an elegant way to bridge the gap between your portals built on SharePoint, and Microsoft Teams where most of the collaboration happens.Teams is just getting more and more powerful - and you can make it even more powerful by extending it. This session contains an overview ofTeams extensibility scenarios, what SPFx is, and a closer look on how they work together. We're taking a closer look (with demos!) at two different scenarios: how to create a new SPFx webpart to be used withTeams, and how to modernize a webpart you already have running in your environment. After this session, you're familiar with the basics of developing SPFx webparts to be used both in SharePoint and Teams, as well as how to modify your existing webparts to surface them inTeams. All of the code included in the demo will be available on GitHub after the session. @koskila | https://www.koskila.net
  • 4. Who’s speaking? • Antti K. Koskela, Escalation Engineer forValo Solutions • From Finland -> 2017 USA -> 2018 Montréal • A dev since 2004 (an accountant before that, started with PHP, then Java, eventually C#) • Bending and twisting SharePoint into different shapes since MOSS • Blogging at https://www.koskila.net and https://www.valointranet.com ! @koskila | https://www.koskila.net
  • 6. Session The session will include a quick overview and a few demos of the capabilities of: • Overview ofTeams & its extensibility scenarios • What is SPFx ? • How do they work together? 2 demos: 1. How to create a new SPFx webpart to be used withTeams 2. How to modernize a webpart you already have running in your environment. @koskila | https://www.koskila.net
  • 7. Session: Structure 1. A quick look intoTeams (5 mins) 2. An overview ofTeams extensibility (5 mins) 3. A quick look into SFPx (5 mins) 4. SPFx +Teams (5 mins) 5. Demos (30 mins) 6. Discussion (5 mins) @koskila | https://www.koskila.net
  • 8. Session: Goals • The attendees (that’s you!) are familiar with: 1. Teams extensibility and SPFx 2. The basics of developing SPFx webparts to be used both in SharePoint andTeams 3. How to modify your existing webparts to surface them in Teams. @koskila | https://www.koskila.net
  • 9. Your turn! @koskila | https://www.koskila.net
  • 10. Are/were you … A developer? An IT Pro? A power user? UsingTeams? Familiar with SPFx? Familiar withTeams extensions? @koskila | https://www.koskila.net
  • 11. Teams – why should I care? @koskila | https://www.koskila.net
  • 12. “To empower every person and every organization on the planet to achieve more.” Microsoft’s mission statement. https://www.microsoft.com/en-us/about Teams (both free and enterprise version) possess a huge role in this. @koskila | https://www.koskila.net
  • 16. Teams Extensibility @koskila | https://www.koskila.net
  • 17. Teams Extensibility Tabs (Team and Personal) Bots Connectors Messaging extensions Activity feed integrations Outgoing web hooks
  • 18. Teams Extensibility • Using SPFx is not necessarily – it’s just one scenario! • Citizen Developer scenarios: • ExtendTeams with Flow (https://flow.microsoft.com/en- us/blog/introducing-the-flow-tab-in-teams-and-new-teams- triggers/ ) • QnA Maker & Bot Framework enable no-code bots forTeams (and other channels): https://thomy.tech/how-to-create-your- own-qa-bot-for-microsoft-teams-with-no-code/ @koskila | https://www.koskila.net
  • 19. SPFx A new thing, again? @koskila | https://www.koskila.net
  • 20.
  • 21.
  • 22. SPFx vs “Traditional” SharePoint SharePoint Framework • Client-side execution model • Rendered & executed in page context • Only way to customize modern pages • Open source cross-platform tooling • Responsive, accessible & mobile friendly • Scoped to tenant or site • Limited to creating client-side web parts & UI extensions Farm solutions • Full server-sideAPI • Only supported in on-premises environments • Built withVisual Studio on Windows • Scoped to farm • Build web parts, timer jobs, event receivers, feature receivers, etc.
  • 23.
  • 24. SPFx vs “classic” client-side options • Script EditorWebParts • Obvious choice of developers for customizing DOM on classic SharePoint sites. • Script can be edited by any user with permissions • Cannot be added to “NoScript” sites • App Parts • Developed using Add-in model (iframe) • Cannot access DOM of SharePoint page • Development and deployment is complicated, performance is questionable • SPFx WebParts • Client side web parts, leverages modern JavaScript frameworks • Can be used with classic or modern SharePoint pages • Development can be complicated, but at least the community is good and possible side effects are limited
  • 25. Teams + SPFx @koskila | https://www.koskila.net
  • 26. @koskila | https://www.koskila.net SharePoint as the hosting platform for your MicrosoftTeams solutions SharePoint Online js JavaScript Library js JavaScript Library Office 365 public CDN js SPFxTeams solutions are deployedto Office 365 tenants using tenant app catalog-Typical options for the sppkg file packaging and hosting available. SPFxTeams Application SPFxTeams application exposed in the MicrosoftTeams as a tab (IFrame). Assets are hosted in SharePoint and publishedto Teams using standardTeams model. All typical configuration available as for any SPFx solution – like asset packaging, CDN configuration, asset provisioning etc. 1 2 3 Objective:Simplifydeploymentand hostingfordevelopers.Remove requirementsforAzureADspecificappsor configurationsthroughAzureAdminUI
  • 27. ExtendingTeams in practice @koskila | https://www.koskila.net
  • 28. Business value • The demos show how to develop or reuse your SPFx webparts inTeams • Single effort -> multiple channels @koskila | https://www.koskila.net
  • 29. DEMO 1 How to create a new extension using SPFx? @koskila | https://www.koskila.net
  • 30. DEMO 1 - How Following these steps: https://docs.microsoft.com/en- us/sharepoint/dev/spfx/web-parts/get- started/using-web-part-as-ms-teams-tab
  • 32. DEMO 1 • Essentially: npm install yo -g npm install @microsoft/generator-sharepoint -g yo And then follow instructions!
  • 33. DEMO 1 • Then: code . gulp bundle --ship gulp package-solution --ship gulp serve
  • 34. DEMO 1 • Finally: Upload the app Enter a webpart page Add this to the URL: ?loadSPFX=true&debugManifestsFile=https%3A%2F%2Flocalhost%3A4321%2Ftemp%2Fmanifests.js
  • 35. DEMO 2 How to modernize an existing SPFx webpart to work in Teams? @koskila | https://www.koskila.net
  • 36. DEMO 2 • Surface the same webpart in both Teams and SharePoint Online • Update the webpart to actually function withTeams! • The process is outlined in this blog post: https://www.koskila.net/how-to-teamsify- an-spfx-solution?/
  • 37. DEMO 2 – How? • Reupload a dev version of the SPFx package • Verify it’s now loaded from localhost • Add aTeams manifest • Load the manifest inTeams • Update to SPFx 1.8 (or later) • Grab the context if it exists • Adjust the styles • Reload in browser and enjoy
  • 38. DEMO 2 • We already have a Modern Calendar SPFx webpart running in an environment • We also have the source available (the beauty of Open Source!) • (https://github.com/koskila/sp-dev-fx- webparts/tree/master/samples/js-modern-calendar)
  • 39. DEMO 2 • Upload the dev version running from localhost • gulp serve • Access a Modern page and add this to your url: ?loadSPFX=true&debugManifestsFile=https%3A%2F %2Flocalhost%3A4321%2Ftemp%2Fmanifests.js
  • 40. DEMO 2 • Adding theTeams manifest • You need to change the following values: • id: Needs to be unique) • configurableTabs > configurationUrl: Needs to contain the id of the SPFx component • configurableTabs > scopes: Needs to include “team” • Add thumbnail pictures • Package as a zip • Upload
  • 41. DEMO 2 • Update the SPFx webpart to 1.8 (or newer) • npm outdated • npm install @microsoft/sp-core-library@latest --save • npm install @microsoft/sp-module-interfaces@latest --save • npm install @microsoft/sp-webpart-base@latest --save • npm install @microsoft/sp-webpart-workbench@latest --save • gulp –update • npm update –save • An example of this process outlined here: • https://www.koskila.net/how-to-update-your-spfx-webpart- to-a-new-version-of-sharepoint-framework/
  • 42. DEMO 2 - Code • Add code to recognize theTeams context • Grab theTeams theme from the context to make our webpart’s theme kind of compatible • See all the code changes here: • https://github.com/SharePoint/sp-dev-fx- webparts/compare/master...koskila:moderncalendart eamsdemo_v2
  • 43. DEMO 2 - Caveats • So, first step ofTeamsifying an SPFx webpart is easy • You might run into issues with authentication, pop-ups, style inconsistencies or your webpart trying to navigate elsewhere • Most of the stuff probably works in browser, desktop could cause issues • Improvement: • RecognizeTeams context and make styles compatible
  • 45. Using App Studio to create manifests
  • 46. Conclusions & Final words @koskila | https://www.koskila.net
  • 47. Conclusions • Teams: • Microsoft’s Hub for collaboration • SPFx: • Client-side framework for building SharePoint extensions • Teams + SPFx: • Develop with SPFx = works inTeams and SharePoint • Demo 1: • Creating a new SPFx webpart that’s compatible from the get-go • Demo 2: • Surfacing your existing SPFx webpart inTeams @koskila | https://www.koskila.net
  • 49. Resources & Further reading • Code samples: • https://github.com/koskila/sp-dev-fx- webparts/commits/moderncalendarteamsdemo_v2/samples/js-modern-calendar • Microsoft’s guides etc: • https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using- web-part-as-ms-teams-tab • My blog post containing slides, code, etc: • Will be published at https://www.koskila.net/?p=4278 @koskila | https://www.koskila.net
  • 50. Speaker Survey and Raffle • This year we are replacing the paper version of Speaker Survey with Microsoft Forms. • Scan the QR code for each session to access and submit your survey. • QR codes can be found in the program guide or on the room sign located by the door. • You will receive ONE raffle ticket for each session survey you complete. • The raffle ticket volunteer will validate your First and Last name before providing your ticket(s) • Drawing will be held this afternoon 4:30- 5:00 pm. • Must be present to win. You can download and use the QR Reader app available for both iOS and Android
  • 51. SharePint Happy Hour event held after SPSCLT19 at Duckworth’s Grill and Taphouse Uptown. Walking distance from UNC Charlotte Center City campus and the 7th street light rail stop.
  • 52. Feedback, Ideas, Questions? Let’s connect! • antti@valointranet.com • @koskila • www.koskila.net • https://github.com/koskila • https://www.linkedin.com/in/koski la/ @koskila | https://www.koskila.net