SlideShare a Scribd company logo
SharePoint Saturday Belgium 2017 • October 21 • Brussels Track: IT PRO | Level: 000
Yo Office! Use your SPFx Skillz
to Build Add-ins for Word,
Excel, Outlook and
PowerPoint
Bill Ayers
PlatinumGoldSilver
Bill Ayers
Flow Simulation Ltd.
www.SPDoctor.net
BillA@flosim.com
@SPDoctor
Consultant specialising in SharePoint and Office
365 Development and Architecture for
Collaboration and Mobile Development
MCM/MCSM Charter SharePoint, MCT, MVP,
MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA,
MSc, Professional Scrum Master, etc.
Agenda
• Background
• Office Add-in Shapes
• Building Office Add-ins
• Distributing Add-ins
• Conclusions
• Q & A
2-3 hours/day in
Office Apps
Mobile Devices
1.2B in 2014
1.8B in 2018
1B+
• The de-facto standard for business
• Now available on iOS, Android, OS X, Windows
Phone and in browsers
Office is Everywhere!
Add-in vision
• Native and intuitive feel
• Use UI framework of host client (Office UI
Fabric)
• Write once, run everywhere
• Simple point solutions to automate existing
manual processes
Reactor
Extensions for Office
VSTOCOM
Office Add-ins
VBAMacros
*all still supported
Behind the Scenes
Hosted Add-In Web Page
XML Manifest file in
Exchange, catalog or
file store
Could do with something interesting here…
Office Add-in Shapes
Add-in that runs within a document content with
read/write access: Excel, PowerPoint, Access
Add-in launched contextually from a mail message or appointment:
Outlook and Outlook Web Access (OWA), and could include actionable
messages
Command in the Office UI to launch add-in or execute
JavaScript: Outlook, Outlook Web Access (OWA)
Add-in that runs beside a document/mail with read/write access:
Word, Excel, PowerPoint, Project, Outlook
Module extension for the Outlook navigation bar: Outlook
Task Pane Add-in
Content Add-in
Add-in Command
• “1-click” way for users to invoke add-ins
• Launch task pane
• Execute a JavaScript function without showing UI
• Dropdown (menu) with different types of buttons as options
• Up to 6 buttons per group
• 1 group on default tab, up to 10 groups on custom tab
• Commands that don’t launch UI can show status messages on
the mail item or appointment
• Supported starting with Office Developer Tools for Visual Studio
Update 1
Win32 Online iPad iPhone Mac Android UWA
Read Read
Compose Compose
Add-in Roadmap
https://dev.office.com/add-in-availability
Office.js
• Access to body and attachments, content
• Launch native forms (e.g. reply, new message, appointment)
• Modify fields and add attachments
• Set/get custom properties on items
• Persist user settings
JavaScript API Reference: http://dev.office.com/docs/add-ins/overview/office-add-ins
JavaScript API for Office
Building an Office Add-in
• Napa in-browser web editor – zero install -
https://www.napacloudapp.com/ *retired*
• Script Lab add-in
• Microsoft Visual Studio
• Any Web Editor of you choice (e.g. VS Code) plus
Yeoman project generator
https://dev.office.com/blogs/creating-office-add-ins-
with-any-editor-introducing-yo-office
Getting Started at dev.office.com – can use MSDN subscription, sign up for Office
Developer Program for free 1 year licence, or get a free 30-day Office 365 trial
Using Visual Studio 2015
• Make sure Office Add-ins toolset installed (Visual Studio
2015 setup or http://www.visualstudio.com/features/office-tools-vs)
• Office Developer Tools for Visual Studio 2015 Update 2
available
• Design user interface as a web site
• Edit manifest
• Implement logic with client-side JavaScript or server-side
code
• Run or debug – will host Add-in locally
• Publish from Visual Studio
Using Visual Studio 2017
• Visual Studio 2017 (including community edition) – check the installer option
• Create new project: Add-in for Office App for Office Web Add-in
• Design user interface as a web site, edit manifest, etc…
Project Structure
• First project contains just the XML add-in
manifest (VS includes a design wizard)
• Second project is the supporting ASP.NET
Website with HTML, CSS and JavaScript
files (including jQuery library)
• Use any other technology, but you will have
to provision it yourself
• Things like alerts, pop-up browser windows
and anything modal will be blocked by the
hosting Office app
Build Add-in with Visual Studio
More Development Choices…
• Use any technology that delivers for the web
• Microsoft offering Yeoman generator for skeleton
add-in project (similar to SPFx toolchain)
• Keep in mind that add-ins need SSL/HTTPS
Hosted on GitHub
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and PowerPoint
yo office!
• > npm install -g yo
• > npm install -g generator-office
• > yo office
Building an Add-in Using
Command-line Tooling and Visual
Studio Code
Reference: https://code.visualstudio.com/Docs/runtimes/office
Office UI Fabric
• Responsive framework (kind-of)
• Office Design Language for web
• Designed for Office Add-ins by
OneDrive and SharePoint Design Studio
• Consistent look-and-feel with Office
• About 100k, 200k with components
• Available as raw CSS or versions for Angular and React
• Dev.office.com/fabric
• Open source (github.com/OfficeDev/Office-UI-Fabric)
Office UI Fabric
• Design elements to give add-ins the same look and feel as
the rest of the Office suite
• Consistent typography, icons and behaviour
Link to UI Fabric Stylesheets:
<link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.2.0/fabric.min.css">
<link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.2.0/fabric.components.min.css">
Decorate elements with UI Fabric classes:
<button class="ms-Button" id="get-data-from-selection">
<span class="ms-Button-icon"><em class="ms-Icon ms-Icon--plus"></em></span>
<span class="ms-Button-label">Get Data from selection</span>
<span class="ms-Button-description">Get Data from the document selection</span>
</button>
http://dev.office.com/fabric
Link to UI Fabric JS:
<script src="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.2.0/js/fabric.min.js"></script>
Office UI Fabric ReactJS
Components
• 30 re-useable React components, ready to use
• Used by Microsoft to build Office and SharePoint
• Angular? See ngOfficeUIFabric
import Button from 'office-ui-fabric-react';
Var b = <Button onClick={() => this.getData() }
className="ms-Button--primary">
Refresh List</Button>
Breadcrumb
Button
Callout
Checkbox
ChoiceGroup
ColorPicker
CommandBar
ContextualMenu
DatePicker
DetailsList
Dialog
DocumentCard
Dropdown
Facepile
Label
Layer
Link
List
MessageBar
Nav
Overlay
Panel
Persona
Pickers
PeoplePicker
Pivot
ProgressIndicator
SearchBox
TextField
Toggle
Captain Klepto
Office Design Patterns
•Apply solutions to common customer scenarios
•Apply design best practices
•Incorporate Office UI Fabric components and styles
•Build add-ins that visually integrate with the default Office UI
•“Steal” HTML and CSS from samples on GitHub
https://github.com/OfficeDev/Office-Add-in-UX-Design-Patterns-Code
Distribution through Office Store
Great to have a cross-platform model, but how will people
find add-ins?
Easy access to the Office
Store where users can get
add-ins
* New options for IT management of add-ins now in preview
How to install an Office add-in?
Side-loading
• During development
of add-in
➢ Upload manifest
➢ For testing
Distribute
publicly
• Office store
➢ Validated against
policies
➢ Free or Paid
➢ Not for internal
Deploy within
Organization
• Admin uses
➢ Add-in Catalog
➢ EAC for Outlook
➢ Centralized
deployment
New PowerShell cmdlets for Centralized Deployment management: New-OrganizationAddIn, etc.
TASKS
manag
er
member
Of
FILES
MESSAGES
workingWit
h
Shared with
me
directRepor
ts
createdB
y
FILES
CONVERSATIONS
created
By
workingWit
h
EVENTS
trendingAroun
d
GROUPS
TASKS
NOTES
NOTES
publ
ic
modifiedB
y
USER
trendingAroun
d
Microsoft Graph API
• Outlook (Mail) add-ins
now support the 400
million users of
Outlook.com
• This is in addition to the
billion users of Outlook
client across Windows
and iOS and users of
Office 365
Using with Protected Web
Services
• Use displayDialog to handle auth. flow
• Office-js-helpers.js
• https://github.com/OfficeDev/office-js-helpers
• Use with any OAuth 2.0 service
• Supports both Implicit and Authorization Code OAuth 2.0 flows
• Connect using Server-side code
• Outlook add-in SSO - Exchange generates token - Add-in can
validate and map to known user id
Office.context.ui.displayDialogAsync(dialogURL,
{ width:100, height: 100, requireHTTPS: true },
function(result) {
// handle the result…
});
New Add-in SSO
• https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins
Conclusions:
• Office Add-ins – potential for huge business benefit for
your users with minimal effort
• > 1.5bn potential users across multiple platforms
• Use same skillset across Office Add-ins, SharePoint,
Web, Universal Apps and Mobile Cross-platform Apps
• Your choice of developer tooling
• Sign up for Office 365 Developer Program to get started
– dev.office.com
• Platform continuing to get more capabilities and better
reach
• Think about how add-ins could help your business
Resources:
• Office 365 Dev Center (dev.office.com)
• https://dev.office.com/docs/add-ins/overview/office-add-ins
• Samples and training content: github.com/OfficeDev
• Visit dev.office.com and click the Sign Up button to join the
Office 365 Developer Program
• Microsoft Virtual Academy course “App Model Deep Dive”
with Ted Pattison and Scott Hillier
• Get started with Office development:
dev.office.com/getting-started
• UX Patterns: https://dev.office.com/docs/add-ins/design/ux-
design-patterns
• https://dev.office.com/fabric
SharePoint Saturday Belgium 2017 • October 21 • Brussels
Thank You!
Feedback
http://spsbe.be

More Related Content

PPTX
PowerApps and Flow, one year later
PDF
Microsoft Graph with ASP.NET MVC
PDF
Extending Teams & Groups
PDF
Introduction to Microsoft Flow and Azure Functions
PPTX
Let's do PowerBi - Together
PPTX
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
PPTX
Extend your development skills set using MS Graph
PPTX
Best practices for managing and operating your SharePoint farms
PowerApps and Flow, one year later
Microsoft Graph with ASP.NET MVC
Extending Teams & Groups
Introduction to Microsoft Flow and Azure Functions
Let's do PowerBi - Together
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
Extend your development skills set using MS Graph
Best practices for managing and operating your SharePoint farms

What's hot (19)

PDF
Building the Perfect Office 365 Tenant
PPTX
Use PowerShell superpower to tame your Office 365
PPTX
Simplifying SQL Server & SharePoint Migrations using PowerShell
PDF
Microsoft Teams Deep Dive
PDF
Rethinking Document Management in Office 365
PDF
The business and end user guide into the new and modern SharePoint
PDF
Office 365, Practical Adoption Strategies
PPTX
Building the Perfect Office 365 Tenant - SharePoint Saturday Belgium 2017 #SPSBE
PPTX
Power Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbe
PPTX
SPS Brussels 2017
PPTX
Building the Perfect Office 365 Tenant - SPS London 2017
PPTX
SPSBE - Microsoft Teams Deep Dive
PPTX
Ensuring Successful Office 365 Tenant to Tenant Migration SPS Cambridge 2017...
PDF
What's new in SharePoint Server 2019
PPTX
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
PPTX
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
PPTX
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
PPTX
Changing the way you work with Modern SharePoint Team Sites and Office 365 Gr...
PDF
Microsoft Flow Advanced : tips, pitfalls, problems to be known before staring...
Building the Perfect Office 365 Tenant
Use PowerShell superpower to tame your Office 365
Simplifying SQL Server & SharePoint Migrations using PowerShell
Microsoft Teams Deep Dive
Rethinking Document Management in Office 365
The business and end user guide into the new and modern SharePoint
Office 365, Practical Adoption Strategies
Building the Perfect Office 365 Tenant - SharePoint Saturday Belgium 2017 #SPSBE
Power Users Guide to Office 365 - SharePoint Saturday Belgium 2016 #spsbe
SPS Brussels 2017
Building the Perfect Office 365 Tenant - SPS London 2017
SPSBE - Microsoft Teams Deep Dive
Ensuring Successful Office 365 Tenant to Tenant Migration SPS Cambridge 2017...
What's new in SharePoint Server 2019
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
Changing the way you work with Modern SharePoint Team Sites and Office 365 Gr...
Microsoft Flow Advanced : tips, pitfalls, problems to be known before staring...
Ad

Viewers also liked (6)

PDF
Spsbepoelmanssharepointbigdataclean 150421080105-conversion-gate02
PPTX
Slideshare
PDF
One size doesn’t fit all – The left dimension
PDF
Biwug 230217 choices_incollaboration - An Lenders
PDF
Microsoft Flow Advanced: tips, pitfalls, problems
PPTX
Manual uso slideshare
Spsbepoelmanssharepointbigdataclean 150421080105-conversion-gate02
Slideshare
One size doesn’t fit all – The left dimension
Biwug 230217 choices_incollaboration - An Lenders
Microsoft Flow Advanced: tips, pitfalls, problems
Manual uso slideshare
Ad

Similar to Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and PowerPoint (20)

PDF
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
PDF
SPUnite17 Become a Developer Hero by Building Office Add ins
PPTX
Office Add-ins developer community call-January 2020
PPTX
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
PPTX
Office Add-in development using JavaScript
PPTX
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
PPTX
Office Add-in development
PPTX
SharePoint Fest Chicago - From SharePoint to Office 365 Development
PPTX
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
PDF
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
PDF
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
PPTX
Office Add-ins community call-March 2019
PDF
Real World SharePoint Framework and Azure Services
PPTX
Office apps in Office 365 - Napa the next big thing
PPTX
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
PPTX
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
PPTX
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
PPTX
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
PPTX
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
PPTX
ESPC Webinar - From SharePoint to Office 365 Development
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
SPUnite17 Become a Developer Hero by Building Office Add ins
Office Add-ins developer community call-January 2020
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
Office Add-in development using JavaScript
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
Office Add-in development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
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...
Office Add-ins community call-March 2019
Real World SharePoint Framework and Azure Services
Office apps in Office 365 - Napa the next big thing
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
ESPC Webinar - From SharePoint to Office 365 Development

More from BIWUG (20)

PPTX
Biwug20190425
PDF
Working with PowerShell, Visual Studio Code and Github for the reluctant IT Pro
PPTX
Global Office 365 Developer Bootcamp
PPTX
Deep dive into advanced teams development
PPTX
SharePoint wizards - no magic needed, just use Microsoft Flow
PPTX
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
PPTX
Modern collaboration in teams and projects with Microsoft 365
PDF
Mining SharePoint data with PowerBI
PPTX
Don't simply deploy, transform! Build your digital workplace in Office 365
PPTX
Connect SharePoint Framework solutions to APIs secured with Azure AD
PPTX
Cloud First. Be Prepared
PPTX
APIs, APIs Everywhere!
PPTX
Advanced PowerShell for Office 365
PPTX
New era of customizing site provisioning
PDF
Understanding SharePoint Framework Extensions
PPTX
Microsoft Flow in Real World Projects: 2 Years later & What's next
PPTX
Microsoft Stream - Your enterprise video portal unleashed
PPTX
Why you shouldn't probably care about Machine Learning
PPTX
Transforming your classic team sites in group connected team sites
PDF
Teams - There's no place like home
Biwug20190425
Working with PowerShell, Visual Studio Code and Github for the reluctant IT Pro
Global Office 365 Developer Bootcamp
Deep dive into advanced teams development
SharePoint wizards - no magic needed, just use Microsoft Flow
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
Modern collaboration in teams and projects with Microsoft 365
Mining SharePoint data with PowerBI
Don't simply deploy, transform! Build your digital workplace in Office 365
Connect SharePoint Framework solutions to APIs secured with Azure AD
Cloud First. Be Prepared
APIs, APIs Everywhere!
Advanced PowerShell for Office 365
New era of customizing site provisioning
Understanding SharePoint Framework Extensions
Microsoft Flow in Real World Projects: 2 Years later & What's next
Microsoft Stream - Your enterprise video portal unleashed
Why you shouldn't probably care about Machine Learning
Transforming your classic team sites in group connected team sites
Teams - There's no place like home

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
KodekX | Application Modernization Development
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf
sap open course for s4hana steps from ECC to s4
Unlocking AI with Model Context Protocol (MCP)
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectral efficient network and resource selection model in 5G networks
KodekX | Application Modernization Development
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and PowerPoint

  • 1. SharePoint Saturday Belgium 2017 • October 21 • Brussels Track: IT PRO | Level: 000 Yo Office! Use your SPFx Skillz to Build Add-ins for Word, Excel, Outlook and PowerPoint Bill Ayers
  • 3. Bill Ayers Flow Simulation Ltd. www.SPDoctor.net BillA@flosim.com @SPDoctor Consultant specialising in SharePoint and Office 365 Development and Architecture for Collaboration and Mobile Development MCM/MCSM Charter SharePoint, MCT, MVP, MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA, MSc, Professional Scrum Master, etc.
  • 4. Agenda • Background • Office Add-in Shapes • Building Office Add-ins • Distributing Add-ins • Conclusions • Q & A
  • 5. 2-3 hours/day in Office Apps Mobile Devices 1.2B in 2014 1.8B in 2018 1B+ • The de-facto standard for business • Now available on iOS, Android, OS X, Windows Phone and in browsers Office is Everywhere!
  • 6. Add-in vision • Native and intuitive feel • Use UI framework of host client (Office UI Fabric) • Write once, run everywhere • Simple point solutions to automate existing manual processes
  • 8. Extensions for Office VSTOCOM Office Add-ins VBAMacros *all still supported
  • 9. Behind the Scenes Hosted Add-In Web Page XML Manifest file in Exchange, catalog or file store
  • 10. Could do with something interesting here…
  • 11. Office Add-in Shapes Add-in that runs within a document content with read/write access: Excel, PowerPoint, Access Add-in launched contextually from a mail message or appointment: Outlook and Outlook Web Access (OWA), and could include actionable messages Command in the Office UI to launch add-in or execute JavaScript: Outlook, Outlook Web Access (OWA) Add-in that runs beside a document/mail with read/write access: Word, Excel, PowerPoint, Project, Outlook Module extension for the Outlook navigation bar: Outlook
  • 14. Add-in Command • “1-click” way for users to invoke add-ins • Launch task pane • Execute a JavaScript function without showing UI • Dropdown (menu) with different types of buttons as options • Up to 6 buttons per group • 1 group on default tab, up to 10 groups on custom tab • Commands that don’t launch UI can show status messages on the mail item or appointment • Supported starting with Office Developer Tools for Visual Studio Update 1
  • 15. Win32 Online iPad iPhone Mac Android UWA Read Read Compose Compose Add-in Roadmap https://dev.office.com/add-in-availability
  • 16. Office.js • Access to body and attachments, content • Launch native forms (e.g. reply, new message, appointment) • Modify fields and add attachments • Set/get custom properties on items • Persist user settings JavaScript API Reference: http://dev.office.com/docs/add-ins/overview/office-add-ins
  • 18. Building an Office Add-in • Napa in-browser web editor – zero install - https://www.napacloudapp.com/ *retired* • Script Lab add-in • Microsoft Visual Studio • Any Web Editor of you choice (e.g. VS Code) plus Yeoman project generator https://dev.office.com/blogs/creating-office-add-ins- with-any-editor-introducing-yo-office Getting Started at dev.office.com – can use MSDN subscription, sign up for Office Developer Program for free 1 year licence, or get a free 30-day Office 365 trial
  • 19. Using Visual Studio 2015 • Make sure Office Add-ins toolset installed (Visual Studio 2015 setup or http://www.visualstudio.com/features/office-tools-vs) • Office Developer Tools for Visual Studio 2015 Update 2 available • Design user interface as a web site • Edit manifest • Implement logic with client-side JavaScript or server-side code • Run or debug – will host Add-in locally • Publish from Visual Studio
  • 20. Using Visual Studio 2017 • Visual Studio 2017 (including community edition) – check the installer option • Create new project: Add-in for Office App for Office Web Add-in • Design user interface as a web site, edit manifest, etc…
  • 21. Project Structure • First project contains just the XML add-in manifest (VS includes a design wizard) • Second project is the supporting ASP.NET Website with HTML, CSS and JavaScript files (including jQuery library) • Use any other technology, but you will have to provision it yourself • Things like alerts, pop-up browser windows and anything modal will be blocked by the hosting Office app
  • 22. Build Add-in with Visual Studio
  • 23. More Development Choices… • Use any technology that delivers for the web • Microsoft offering Yeoman generator for skeleton add-in project (similar to SPFx toolchain) • Keep in mind that add-ins need SSL/HTTPS Hosted on GitHub
  • 25. yo office! • > npm install -g yo • > npm install -g generator-office • > yo office
  • 26. Building an Add-in Using Command-line Tooling and Visual Studio Code Reference: https://code.visualstudio.com/Docs/runtimes/office
  • 27. Office UI Fabric • Responsive framework (kind-of) • Office Design Language for web • Designed for Office Add-ins by OneDrive and SharePoint Design Studio • Consistent look-and-feel with Office • About 100k, 200k with components • Available as raw CSS or versions for Angular and React • Dev.office.com/fabric • Open source (github.com/OfficeDev/Office-UI-Fabric)
  • 28. Office UI Fabric • Design elements to give add-ins the same look and feel as the rest of the Office suite • Consistent typography, icons and behaviour Link to UI Fabric Stylesheets: <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.2.0/fabric.min.css"> <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.2.0/fabric.components.min.css"> Decorate elements with UI Fabric classes: <button class="ms-Button" id="get-data-from-selection"> <span class="ms-Button-icon"><em class="ms-Icon ms-Icon--plus"></em></span> <span class="ms-Button-label">Get Data from selection</span> <span class="ms-Button-description">Get Data from the document selection</span> </button> http://dev.office.com/fabric Link to UI Fabric JS: <script src="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.2.0/js/fabric.min.js"></script>
  • 29. Office UI Fabric ReactJS Components • 30 re-useable React components, ready to use • Used by Microsoft to build Office and SharePoint • Angular? See ngOfficeUIFabric import Button from 'office-ui-fabric-react'; Var b = <Button onClick={() => this.getData() } className="ms-Button--primary"> Refresh List</Button> Breadcrumb Button Callout Checkbox ChoiceGroup ColorPicker CommandBar ContextualMenu DatePicker DetailsList Dialog DocumentCard Dropdown Facepile Label Layer Link List MessageBar Nav Overlay Panel Persona Pickers PeoplePicker Pivot ProgressIndicator SearchBox TextField Toggle
  • 30. Captain Klepto Office Design Patterns •Apply solutions to common customer scenarios •Apply design best practices •Incorporate Office UI Fabric components and styles •Build add-ins that visually integrate with the default Office UI •“Steal” HTML and CSS from samples on GitHub https://github.com/OfficeDev/Office-Add-in-UX-Design-Patterns-Code
  • 31. Distribution through Office Store Great to have a cross-platform model, but how will people find add-ins? Easy access to the Office Store where users can get add-ins * New options for IT management of add-ins now in preview
  • 32. How to install an Office add-in? Side-loading • During development of add-in ➢ Upload manifest ➢ For testing Distribute publicly • Office store ➢ Validated against policies ➢ Free or Paid ➢ Not for internal Deploy within Organization • Admin uses ➢ Add-in Catalog ➢ EAC for Outlook ➢ Centralized deployment New PowerShell cmdlets for Centralized Deployment management: New-OrganizationAddIn, etc.
  • 33. TASKS manag er member Of FILES MESSAGES workingWit h Shared with me directRepor ts createdB y FILES CONVERSATIONS created By workingWit h EVENTS trendingAroun d GROUPS TASKS NOTES NOTES publ ic modifiedB y USER trendingAroun d Microsoft Graph API • Outlook (Mail) add-ins now support the 400 million users of Outlook.com • This is in addition to the billion users of Outlook client across Windows and iOS and users of Office 365
  • 34. Using with Protected Web Services • Use displayDialog to handle auth. flow • Office-js-helpers.js • https://github.com/OfficeDev/office-js-helpers • Use with any OAuth 2.0 service • Supports both Implicit and Authorization Code OAuth 2.0 flows • Connect using Server-side code • Outlook add-in SSO - Exchange generates token - Add-in can validate and map to known user id Office.context.ui.displayDialogAsync(dialogURL, { width:100, height: 100, requireHTTPS: true }, function(result) { // handle the result… });
  • 35. New Add-in SSO • https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins
  • 36. Conclusions: • Office Add-ins – potential for huge business benefit for your users with minimal effort • > 1.5bn potential users across multiple platforms • Use same skillset across Office Add-ins, SharePoint, Web, Universal Apps and Mobile Cross-platform Apps • Your choice of developer tooling • Sign up for Office 365 Developer Program to get started – dev.office.com • Platform continuing to get more capabilities and better reach • Think about how add-ins could help your business
  • 37. Resources: • Office 365 Dev Center (dev.office.com) • https://dev.office.com/docs/add-ins/overview/office-add-ins • Samples and training content: github.com/OfficeDev • Visit dev.office.com and click the Sign Up button to join the Office 365 Developer Program • Microsoft Virtual Academy course “App Model Deep Dive” with Ted Pattison and Scott Hillier • Get started with Office development: dev.office.com/getting-started • UX Patterns: https://dev.office.com/docs/add-ins/design/ux- design-patterns • https://dev.office.com/fabric
  • 38. SharePoint Saturday Belgium 2017 • October 21 • Brussels Thank You!