SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO
BUILD OFFICE ADD-INS
Bill Ayers M[CM|VP|CT]
Flow Simulation Ltd, UK
♡ DIAMOND AND PLATINUM SPONSORS ♡
Agenda
• Why Office Add-ins?
• How Office Add-ins Work
• Tools for Building Office Add-ins
• Using the Web Development Toolchain
• SPFx
• Distributing Add-ins
• Conclusions
• Q & A
AGENDA:
WHY OFFICE ADD-INS?
HOW OFFICE ADD-INS WORK
TOOLS FOR BUILDING OFFICE ADD-INS
USING THE WEB DEVELOPMENT TOOLCHAIN
SPFX
DISTRIBUTING ADD-INS
CONCLUSIONS
Q & A
• The de-facto standard for business
• > 1.2 b users + 400m outlook.com
• 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
(must be HTTPS)
XML Manifest file in
Exchange, catalog or
file store
DEMO
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, Excel, PowerPoint, Word, OneNote
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
Excel Custom FunctionsF
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
• 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
DEMO
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…
More Development Choices…
• Use any technology that delivers for the web
• Yeoman generator for skeleton add-in project
(similar to SharePoint Framework toolchain)
Hosted on
GitHub
yo office!
• Go to https://nodejs.org/ and install LTS version
• npm install -g yo
• npm install -g generator-office
• yo office
DEMO
Reference: https://code.visualstudio.com/Docs/runtimes/office
React
• Open-source framework backed by Facebook
• Component model
• Virtual DOM
• “Weird” JSX/TSX syntax
• Go to https://reactjs.org/
App component with title property
Component has properties
Component’s render function returns one
root element with child elements (can wrap in
div or empty element <>)
Elements are converted into valid JavaScript
by the JSX compiler
Events are bound with function.bind syntax or
lambda expressions: e=>add(e)
Component props are immutable, but
component state can change using setState
method
ReactDOM.render method used to bind initial
App element to the element in the DOM with
the ID “app”.
React App class App extends React.Component {
constructor(props) {
super(props);
this.state = { items: [] }
}
render() {
const stocks = this.state.items.map((item, index) => (
<li>{item}</li>
));
return (
<div>
<h1>{this.props.title}</h1>
<div>
<input type="text" ref="newItem“ onKeyPress={this.add.bind(this)}/>
</div>
<ul>{stocks}</ul>
</div>
);
}
add(event) {
if (event.key == "Enter") {
var list = this.state.items;
list.unshift(this.refs.newItem.value);
this.setState({items: list});
this.refs.newItem.value = "";
}
}
}
ReactDOM.render(<App title="Hello World!" />, document.getElementById("app"));
Office.initialize and React
// Bootstrap root component in Office.initialize
Office.initialize = () => {
ReactDOM.render(
<App title={title} />,
document.querySelector('#container')
);
};
Office UI Fabric React Components
React component library with more than 40
reusable components
Add the office-ui-fabric-react npm package
Typing available for TypeScript
Office UI Fabric Core
Includes styles, icons, typography, brand
icons, colors, grids, and more as CSS and
JavaScript if not using React.
PnP SPFx React Components:
http://github.com/SharePoint/sp-dev-fx-controls-react/
Office Add-ins Design Toolkit
• Adobe XD Document
• Download Adobe XD (free)
• Download toolkit from
https://aka.ms/addins_toolkit
DEMO
Reference: https://dev.office.com/
Design Guidelines
• Design explicitly for Office
• Focus on key tasks
• Favour content over chrome
• Go easy on the branding
• Keep users in control
• Design for all Office platforms and input methods
• First Run experience
• See: https://docs.microsoft.com/en-us/office/dev/add-ins/design/add-in-design
Simplified component structure – no this, no
classes, no constructor, no
componentDidMount, etc.
Pure functional components
Use functions instead of classes
Functional (Stateless) Components were
introduced with React 1.4
React Hooks new in React 16.8
Current generator-office uses React 16.8
Current SPFx generator (1.8) uses React 16.7
One more thing -
React Hooks
function App(props) {
const [items, setItems] = React.useState([]);
const stocks = items.map((item, index) => (
<li>{item}</li>
));
function add(event) {
if (event.key == "Enter") {
var list = items;
list.unshift(event.target.value);
setItems({items: list});
}
}
return (
<div>
<h1>{props.title}</h1>
<div>
<input type="text“ onKeyPress={event=>add(event)} />
</div>
<ul>{stocks}</ul>
</div>
);
}
}
ReactDOM.render(<App title="Hello World!" />, document.getElementById("app"));
Refactored function Stocks({items}) {
return (
<ul>
{items.map(item => <li>{item}</li>)}
</ul>
);
}
function App(props) {
const [items, setItems] = useState([]);
function add(event) {
if (event.key == "Enter") {
var list = items;
list.unshift(event.target.value);
setItems({items: list});
}
}
return (
<div>
<h1>{props.title}</h1>
<div>
<input type="text“ onKeyPress={event=>add(event)} />
</div>
<Stocks items={items} />
</div>
);
}
}
ReactDOM.render(<App title="Hello World!" />, document.getElementById("app"));
Stocks is extracted as a separate component.
Stocks only depends on its props so it is a pure
or “stateless” functional component; no state, no
side-effects.
This makes Stocks very easy to test.
Implicit object destructuring operator {} used
instead of props.items.
DEMO
TASKS
manager
memberOf
FILES
MESSAGES
workingWith
Shared with me
directReports
createdBy
FILES
CONVERSATIONS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASKS
NOTES
NOTES
public
modifiedBy
USER
trendingAround
Microsoft Graph API
Dialog API
• Dialog API allows you to open
a dialog box from an Office
Add-in.
• Typically used for
authentication prompts with
external systems.
• Can also be used to show UI
elements that are too big for
the task pane.
Dialog API
Office.context.ui.displayDialogAsync(“https://myaddin.contoso.com/login.html",
options, callbackFunction);
open to a page hosted from a valid
app domain (defined in manifest) and
then can display any page that is
hosted using HTTPS
e.g. height and
width
optional – enables host
page to get messages
from dialog
What if we could just use SPFx?
Introduced at //build/ 2019
Still in early stages
SPFx component in task pane includes a call to Office.js
Get access to SharePoint data (if authenticated)
Get access to Microsoft Graph through MSGraphClient
No need to worry about where to host the Add-in
Currently planned for preview in 1.9 release of SPFx
DEMO
Deployment Options
• Debugging – launch from Visual Studio or Visual Studio Code
• Side-loading – ad-hoc pull-driven deployment
• App Catalog – for internal distribution
• App Store – for broader distribution
• App Store – commercial distribution
• Centralized Deployment
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, possibly even code, across Office
Add-ins, SharePoint, Web, Universal Apps and Mobile
Cross-platform Apps
• Your choice of developer tooling – use what you know
• Platform continuing to get more capabilities and better
reach
• Watch out for SPFx Office Add-in component in SPFx
version 1.9
Sign up for the Office 365
Developer Program
Start at http://dev.office.com
Build your first Office Add-
in
Use Yeoman, Visual Studio Code,
ReactJS and other familiar tools from
SPFx development right now
Think about how Office
Add-ins could help your
business
Solve real business problems,
delight users, watch out for SPFx 1.9
CALL TO ACTION
thank you
questions?
SPDOCTOR.COM@SPDOCTOR
Bill Ayers
Technical Director
Flow Simulation Ltd.
Office 365 Dev Center dev.office.com (redirect)
Office Add-ins
Documentation
https://docs.microsoft.com/e
n-us/office/dev/add-ins/
Training content on GitHub https://github.com/OfficeDev/
TrainingContent/
Office UI Fabric https://developer.microsoft.c
om/en-us/fabric
Script Lab https://github.com/OfficeDev/
script-lab
Discover what’s coming with
the Microsoft 365 Roadmap
aka.ms/M365Roadmap
Follow me and share this
session
@SPDoctor #Collabsummit
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ADD-INS

Weitere ähnliche Inhalte

Was ist angesagt?

ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...European Collaboration Summit
 
[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...European Collaboration Summit
 
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
 
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...European Collaboration Summit
 
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Thomas Daly
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
 
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...European Collaboration Summit
 
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowEuropean Collaboration Summit
 
What's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userWhat's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userSPC Adriatics
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applicationsTalbott Crowell
 
An Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices ProjectAn Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices ProjectSPC Adriatics
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsNCCOMMS
 
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...NCCOMMS
 
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365Patrick Guimonet
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyBob German
 
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...serge luca
 
Introduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsIntroduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsSPC Adriatics
 

Was ist angesagt? (20)

ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 
[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...[Jansen] Transforming your classic team sites into modern group connected tea...
[Jansen] Transforming your classic team sites into modern group connected tea...
 
ECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your IntranetECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your Intranet
 
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
 
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
 
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
 
ECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sitesECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sites
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
 
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
 
What's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userWhat's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end user
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
 
An Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices ProjectAn Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices Project
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx Extensions
 
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...
O365Con18 - Customizing SharePoint and Microsoft Teams with SharePoint Framew...
 
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365
Collab 365 - Real world scenarios to migrate to SharePoint 2016 or Office 365
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the Ugly
 
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...
Improve and Understand Your SharePoint Online Performance - Serge Luca Patric...
 
Top 7 mistakes
Top 7 mistakesTop 7 mistakes
Top 7 mistakes
 
Introduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsIntroduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutions
 

Ähnlich wie ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ADD-INS

Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...BIWUG
 
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
 
Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Microsoft 365 Developer
 
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
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSébastien Levert
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSébastien Levert
 
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio FranziniCCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franziniwalk2talk srl
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...Sébastien Levert
 
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
 
Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Nilesh Shah
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionThomas Daly
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Uncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentUncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentEric Overfield
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutionsDipti Chhatrapati
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsEric Overfield
 
Introduction to Office Development Topics
Introduction to Office Development TopicsIntroduction to Office Development Topics
Introduction to Office Development TopicsHaaron Gonzalez
 

Ähnlich wie ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ADD-INS (20)

Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
 
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
 
Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020
 
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)
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 DevelopmentSharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
 
Office Add-in development
Office Add-in developmentOffice Add-in development
Office Add-in development
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
 
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio FranziniCCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
 
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
 
Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
Uncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint DevelopmentUncovering the Latest in SharePoint Development
Uncovering the Latest in SharePoint Development
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutions
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding options
 
Introduction to Office Development Topics
Introduction to Office Development TopicsIntroduction to Office Development Topics
Introduction to Office Development Topics
 

Mehr von European Collaboration Summit

ECS19 - Bram De Jager - Design a secure collaboration solution with Azure In...
ECS19 -  Bram De Jager - Design a secure collaboration solution with Azure In...ECS19 -  Bram De Jager - Design a secure collaboration solution with Azure In...
ECS19 - Bram De Jager - Design a secure collaboration solution with Azure In...European Collaboration Summit
 
ECS19 - Eric Harlan - Increasing throughput of Office 365
ECS19 - Eric Harlan - Increasing throughput of Office 365ECS19 - Eric Harlan - Increasing throughput of Office 365
ECS19 - Eric Harlan - Increasing throughput of Office 365European Collaboration Summit
 
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?European Collaboration Summit
 
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...European Collaboration Summit
 
ECS19 - Christina Wheeler - Become Data Modeling Superhero
ECS19 - Christina Wheeler - Become Data Modeling SuperheroECS19 - Christina Wheeler - Become Data Modeling Superhero
ECS19 - Christina Wheeler - Become Data Modeling SuperheroEuropean Collaboration Summit
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialEuropean Collaboration Summit
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassEuropean Collaboration Summit
 
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiences
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiencesECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiences
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiencesEuropean Collaboration Summit
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...European Collaboration Summit
 
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference Architecture
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference ArchitectureECS19 - Nicki Borell - Microsoft Cybersecurity Reference Architecture
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference ArchitectureEuropean Collaboration Summit
 
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectEuropean Collaboration Summit
 
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...European Collaboration Summit
 
ECS19 - Toni Pohl - Develop intelligent apps for the Modern Workplace
ECS19 - Toni Pohl - Develop intelligent apps for the Modern WorkplaceECS19 - Toni Pohl - Develop intelligent apps for the Modern Workplace
ECS19 - Toni Pohl - Develop intelligent apps for the Modern WorkplaceEuropean Collaboration Summit
 
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...European Collaboration Summit
 
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...European Collaboration Summit
 
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...European Collaboration Summit
 
ECS19 - Serge Luca - MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...
ECS19 - Serge Luca -  MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...ECS19 - Serge Luca -  MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...
ECS19 - Serge Luca - MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...European Collaboration Summit
 
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...European Collaboration Summit
 
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint Sites
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint SitesECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint Sites
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint SitesEuropean Collaboration Summit
 
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenarios
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenariosECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenarios
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenariosEuropean Collaboration Summit
 

Mehr von European Collaboration Summit (20)

ECS19 - Bram De Jager - Design a secure collaboration solution with Azure In...
ECS19 -  Bram De Jager - Design a secure collaboration solution with Azure In...ECS19 -  Bram De Jager - Design a secure collaboration solution with Azure In...
ECS19 - Bram De Jager - Design a secure collaboration solution with Azure In...
 
ECS19 - Eric Harlan - Increasing throughput of Office 365
ECS19 - Eric Harlan - Increasing throughput of Office 365ECS19 - Eric Harlan - Increasing throughput of Office 365
ECS19 - Eric Harlan - Increasing throughput of Office 365
 
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?
ECS19 - Ahmad Najjar - Logic Apps vs Microsoft Flow - When, how and where?
 
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...
ECS19 - Michael Van Horenbeeck - Divide Et Imperat Office 365 Mergers, Acquis...
 
ECS19 - Christina Wheeler - Become Data Modeling Superhero
ECS19 - Christina Wheeler - Become Data Modeling SuperheroECS19 - Christina Wheeler - Become Data Modeling Superhero
ECS19 - Christina Wheeler - Become Data Modeling Superhero
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiences
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiencesECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiences
ECS19 - Paolo Pialorsi - Building Portals with modern SharePoint experiences
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
 
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference Architecture
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference ArchitectureECS19 - Nicki Borell - Microsoft Cybersecurity Reference Architecture
ECS19 - Nicki Borell - Microsoft Cybersecurity Reference Architecture
 
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
 
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...
ECS19 - Vesa Juvonen, Paolo Pialorsi - Building “modern” portals with SharePo...
 
ECS19 - Toni Pohl - Develop intelligent apps for the Modern Workplace
ECS19 - Toni Pohl - Develop intelligent apps for the Modern WorkplaceECS19 - Toni Pohl - Develop intelligent apps for the Modern Workplace
ECS19 - Toni Pohl - Develop intelligent apps for the Modern Workplace
 
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
 
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...
ECS19 - Thomas Goelles, Stephan Bisser - Unite your workplace with Microsoft'...
 
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...
ECS19 - Steven Collier - Live Events in Teams, Yammer and Stream using Extern...
 
ECS19 - Serge Luca - MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...
ECS19 - Serge Luca -  MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...ECS19 - Serge Luca -  MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...
ECS19 - Serge Luca - MICROSOFT FLOW IN REAL WORLD PROJECTS: 3 YEARS LATER AN...
 
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...
ECS19 - Samuel Zuercher - Do I still need an Intranet or is MS Teams just eno...
 
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint Sites
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint SitesECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint Sites
ECS19 - Rodrigo Pinto - Modernize Your Classic SharePoint Sites
 
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenarios
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenariosECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenarios
ECS19 - Rodrigo Pinto - Migrating to Teams, real cases and scenarios
 

Kürzlich hochgeladen

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Kürzlich hochgeladen (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ADD-INS

  • 1.
  • 2. RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ADD-INS Bill Ayers M[CM|VP|CT] Flow Simulation Ltd, UK
  • 3. ♡ DIAMOND AND PLATINUM SPONSORS ♡
  • 4. Agenda • Why Office Add-ins? • How Office Add-ins Work • Tools for Building Office Add-ins • Using the Web Development Toolchain • SPFx • Distributing Add-ins • Conclusions • Q & A
  • 5. AGENDA: WHY OFFICE ADD-INS? HOW OFFICE ADD-INS WORK TOOLS FOR BUILDING OFFICE ADD-INS USING THE WEB DEVELOPMENT TOOLCHAIN SPFX DISTRIBUTING ADD-INS CONCLUSIONS Q & A
  • 6. • The de-facto standard for business • > 1.2 b users + 400m outlook.com • Now available on iOS, Android, OS X, Windows Phone and in browsers Office is Everywhere!
  • 7. 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
  • 9. Extensions for Office VSTOCOM Office Add-ins VBAMacros *all still supported
  • 10. Behind the Scenes Hosted Add-In Web Page (must be HTTPS) XML Manifest file in Exchange, catalog or file store
  • 11. DEMO Could do with something interesting here…
  • 12. 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, Excel, PowerPoint, Word, OneNote 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 Excel Custom FunctionsF
  • 13. Win32 Online iPad iPhone Mac Android UWA Read Read Compose Compose Add-in Roadmap https://dev.office.com/add-in-availability
  • 14. 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
  • 16. Building an Office Add-in • 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
  • 17. DEMO
  • 18. 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…
  • 19. More Development Choices… • Use any technology that delivers for the web • Yeoman generator for skeleton add-in project (similar to SharePoint Framework toolchain) Hosted on GitHub
  • 20. yo office! • Go to https://nodejs.org/ and install LTS version • npm install -g yo • npm install -g generator-office • yo office
  • 22. React • Open-source framework backed by Facebook • Component model • Virtual DOM • “Weird” JSX/TSX syntax • Go to https://reactjs.org/
  • 23. App component with title property Component has properties Component’s render function returns one root element with child elements (can wrap in div or empty element <>) Elements are converted into valid JavaScript by the JSX compiler Events are bound with function.bind syntax or lambda expressions: e=>add(e) Component props are immutable, but component state can change using setState method ReactDOM.render method used to bind initial App element to the element in the DOM with the ID “app”. React App class App extends React.Component { constructor(props) { super(props); this.state = { items: [] } } render() { const stocks = this.state.items.map((item, index) => ( <li>{item}</li> )); return ( <div> <h1>{this.props.title}</h1> <div> <input type="text" ref="newItem“ onKeyPress={this.add.bind(this)}/> </div> <ul>{stocks}</ul> </div> ); } add(event) { if (event.key == "Enter") { var list = this.state.items; list.unshift(this.refs.newItem.value); this.setState({items: list}); this.refs.newItem.value = ""; } } } ReactDOM.render(<App title="Hello World!" />, document.getElementById("app"));
  • 24. Office.initialize and React // Bootstrap root component in Office.initialize Office.initialize = () => { ReactDOM.render( <App title={title} />, document.querySelector('#container') ); };
  • 25. Office UI Fabric React Components React component library with more than 40 reusable components Add the office-ui-fabric-react npm package Typing available for TypeScript Office UI Fabric Core Includes styles, icons, typography, brand icons, colors, grids, and more as CSS and JavaScript if not using React. PnP SPFx React Components: http://github.com/SharePoint/sp-dev-fx-controls-react/
  • 26. Office Add-ins Design Toolkit • Adobe XD Document • Download Adobe XD (free) • Download toolkit from https://aka.ms/addins_toolkit
  • 28. Design Guidelines • Design explicitly for Office • Focus on key tasks • Favour content over chrome • Go easy on the branding • Keep users in control • Design for all Office platforms and input methods • First Run experience • See: https://docs.microsoft.com/en-us/office/dev/add-ins/design/add-in-design
  • 29. Simplified component structure – no this, no classes, no constructor, no componentDidMount, etc. Pure functional components Use functions instead of classes Functional (Stateless) Components were introduced with React 1.4 React Hooks new in React 16.8 Current generator-office uses React 16.8 Current SPFx generator (1.8) uses React 16.7 One more thing - React Hooks function App(props) { const [items, setItems] = React.useState([]); const stocks = items.map((item, index) => ( <li>{item}</li> )); function add(event) { if (event.key == "Enter") { var list = items; list.unshift(event.target.value); setItems({items: list}); } } return ( <div> <h1>{props.title}</h1> <div> <input type="text“ onKeyPress={event=>add(event)} /> </div> <ul>{stocks}</ul> </div> ); } } ReactDOM.render(<App title="Hello World!" />, document.getElementById("app"));
  • 30. Refactored function Stocks({items}) { return ( <ul> {items.map(item => <li>{item}</li>)} </ul> ); } function App(props) { const [items, setItems] = useState([]); function add(event) { if (event.key == "Enter") { var list = items; list.unshift(event.target.value); setItems({items: list}); } } return ( <div> <h1>{props.title}</h1> <div> <input type="text“ onKeyPress={event=>add(event)} /> </div> <Stocks items={items} /> </div> ); } } ReactDOM.render(<App title="Hello World!" />, document.getElementById("app")); Stocks is extracted as a separate component. Stocks only depends on its props so it is a pure or “stateless” functional component; no state, no side-effects. This makes Stocks very easy to test. Implicit object destructuring operator {} used instead of props.items.
  • 31. DEMO
  • 33. Dialog API • Dialog API allows you to open a dialog box from an Office Add-in. • Typically used for authentication prompts with external systems. • Can also be used to show UI elements that are too big for the task pane.
  • 34. Dialog API Office.context.ui.displayDialogAsync(“https://myaddin.contoso.com/login.html", options, callbackFunction); open to a page hosted from a valid app domain (defined in manifest) and then can display any page that is hosted using HTTPS e.g. height and width optional – enables host page to get messages from dialog
  • 35. What if we could just use SPFx? Introduced at //build/ 2019 Still in early stages SPFx component in task pane includes a call to Office.js Get access to SharePoint data (if authenticated) Get access to Microsoft Graph through MSGraphClient No need to worry about where to host the Add-in Currently planned for preview in 1.9 release of SPFx
  • 36. DEMO
  • 37.
  • 38. Deployment Options • Debugging – launch from Visual Studio or Visual Studio Code • Side-loading – ad-hoc pull-driven deployment • App Catalog – for internal distribution • App Store – for broader distribution • App Store – commercial distribution • Centralized Deployment
  • 39. 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, possibly even code, across Office Add-ins, SharePoint, Web, Universal Apps and Mobile Cross-platform Apps • Your choice of developer tooling – use what you know • Platform continuing to get more capabilities and better reach • Watch out for SPFx Office Add-in component in SPFx version 1.9
  • 40. Sign up for the Office 365 Developer Program Start at http://dev.office.com Build your first Office Add- in Use Yeoman, Visual Studio Code, ReactJS and other familiar tools from SPFx development right now Think about how Office Add-ins could help your business Solve real business problems, delight users, watch out for SPFx 1.9 CALL TO ACTION
  • 41. thank you questions? SPDOCTOR.COM@SPDOCTOR Bill Ayers Technical Director Flow Simulation Ltd. Office 365 Dev Center dev.office.com (redirect) Office Add-ins Documentation https://docs.microsoft.com/e n-us/office/dev/add-ins/ Training content on GitHub https://github.com/OfficeDev/ TrainingContent/ Office UI Fabric https://developer.microsoft.c om/en-us/fabric Script Lab https://github.com/OfficeDev/ script-lab Discover what’s coming with the Microsoft 365 Roadmap aka.ms/M365Roadmap Follow me and share this session @SPDoctor #Collabsummit