SlideShare a Scribd company logo
1 of 30
www.MostafaElzoghbi.com
 A Web page loaded inside an Office Application
 Office Add-ins enable you to extend Office clients such as Word, Excel,
PowerPoint, and Outlook using web technologies like HTML, CSS and
JavaScript.
 Embedded inline or as task pane within documents, mails or
appointments.
 Works in both Office Apps, Office for Mac, and Office Web Applications
 Office application extensions using Web technologies
 HTML 5 and CSS used to construct user interface
 JavaScript and jQuery used to add executable logic and event handlers
 Add-In can provide code to read/write content to/from Office documents
 Add-In can call web services hosted over Internet or running within local
network
 Office Add-Ins come in three different shapes/types
 Task Pane Add-In
 Content Add-In
 Outlook Add-In
 Web Extensibility Framework (WEF)
 Allows Web page content to render inside Office Application
 Allows Web page code to run within a set of constraints
 Allows Web page code to interact with Office documents
 Allows Web page code to interact with Exchange items
 WEF provides runtime environment for Office Add-Ins
 Office Add-Ins provide basis for a component architecture
 Office Add-Ins provide Add-Ins ability to publish to Add-In Catalog (SP)
and/or Office Store
 Office Add-Ins can be deployed in private networks
 Each Office Add-In is based on XML-based manifest
 Manifest points to a Web page
 Manifest defines the type of the Office Add-In
 Manifest defines which Office applications it supports
 Manifest defines required capabilities
App for Office
Manifest
<XML>
Web
Page
HTML+JS
Office Add-In
Catalog Server Web Server
Office Add-In
 You can use two types of UI elements
in your Office Add-ins:
 Add-in commands
 Insertable Task Panes
 Using Office UI Fabric
 Help users complete tasks quickly & efficiently.
 Enable new scenarios within Office.
 Embed complementary services within office.
 Create an effective Office Store listing.
 Easy on-boarding process.
 Teaching UI to educate users that includes sample data.
 Re-Inforce the VP of your add-in.
 Avoid Pop ups. 
 Make sign up process simple.
 Offer free trials. If your add-in requires a subscription, make some
functionality available without a subscription.
 Provide meaningful icons.
 Use supported sizes with transparent background color.
 Clear & simple button labels.
 Group related commands under a menu control.
 Provide a version of your add-in that also works on hosts that do not
support commands. (Office 2013)
 Ensure that the look and feel and functionality of your add-in
complements the Office experience.
 Keep users in control, favor content over chrome.
 Avoid scrolling, Optimize for 1366x768.
 Don’t include unlicensed images.
 Account for accessibility.
 Make sure that your Add-In UI is responsive for all input platforms
(including mouse/keyboard and touch)
 Optimize for touch. (Context.touchEnabled)
 Test Add-in in different modes (portrait and landscape)
 USE Office UI Fabric: dev.office.com/fabric
 Load time should be <= 500ms (Typical)
 All users interactions respond in less than a second. (Important)
 Use CDN for content/assets.
 Use web standards to optimize your web page.
 List your add-in with full profile including short descriptions, images,
What it does?
 Convey the VP of your add-in in the title and description.
 Create a website to help users find your add-in
 Publish to Office Store & promote it from your website.
Office Store—This is a public marketplace that Microsoft hosts and regulates
on Office.com.
Office Add-ins catalog on SharePoint—For task pane and content add-ins.
Exchange catalog—This is a private catalog for Outlook add-ins that is
available to users of the Exchange server
Network shared folder add-in catalog
1. Create new Office Add-In project
2. Create/design user interface for Web page
3. Enhance Web page with CSS and JavaScript
4. Set project properties in manifest
5. Run!
 App for Office solution has two projects
 Top project contains add-In manifest
 Bottom project for remote web
 Remote Web Project is ASP.NET or Node.js Website
 Contains HTML, CSS and JavaScript source files
 Integration with jQuery library already included
App Manifest Designer
App Manifest - XML View
http://dev.office.com/
http://aka.ms/OfficeDevPnP
https://github.com/OfficeDev/PnP-OfficeAddins
Patterns and Practices in Building Office Add-ins

More Related Content

Viewers also liked

Data science essentials in azure ml
Data science essentials in azure mlData science essentials in azure ml
Data science essentials in azure mlMostafa
 
Build Interactive Analytics using Power BI
Build Interactive Analytics using Power BIBuild Interactive Analytics using Power BI
Build Interactive Analytics using Power BIMostafa
 
TypeScript Jump Start
TypeScript Jump StartTypeScript Jump Start
TypeScript Jump StartMostafa
 
Build intelligent solutions using ms azure
Build intelligent solutions using ms azureBuild intelligent solutions using ms azure
Build intelligent solutions using ms azureMostafa
 
Mistakes that kill startups
Mistakes that kill startupsMistakes that kill startups
Mistakes that kill startupsMostafa
 
PnP in building office add ins - public
PnP in building office add ins - publicPnP in building office add ins - public
PnP in building office add ins - publicMostafa
 
Building predictive models in Azure Machine Learning
Building predictive models in Azure Machine LearningBuilding predictive models in Azure Machine Learning
Building predictive models in Azure Machine LearningMostafa
 
Office Command Add-ins – New generation of Add-ins
Office Command Add-ins – New generation of Add-insOffice Command Add-ins – New generation of Add-ins
Office Command Add-ins – New generation of Add-insDragan Panjkov
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine LearningMostafa
 
Machine Learning Classifiers
Machine Learning ClassifiersMachine Learning Classifiers
Machine Learning ClassifiersMostafa
 
Programming in Spark using PySpark
Programming in Spark using PySpark      Programming in Spark using PySpark
Programming in Spark using PySpark Mostafa
 
Big data solutions in azure
Big data solutions in azureBig data solutions in azure
Big data solutions in azureMostafa
 
Architecting big data solutions in the cloud
Architecting big data solutions in the cloudArchitecting big data solutions in the cloud
Architecting big data solutions in the cloudMostafa
 

Viewers also liked (14)

Data science essentials in azure ml
Data science essentials in azure mlData science essentials in azure ml
Data science essentials in azure ml
 
Build Interactive Analytics using Power BI
Build Interactive Analytics using Power BIBuild Interactive Analytics using Power BI
Build Interactive Analytics using Power BI
 
Office Add-in development
Office Add-in developmentOffice Add-in development
Office Add-in development
 
TypeScript Jump Start
TypeScript Jump StartTypeScript Jump Start
TypeScript Jump Start
 
Build intelligent solutions using ms azure
Build intelligent solutions using ms azureBuild intelligent solutions using ms azure
Build intelligent solutions using ms azure
 
Mistakes that kill startups
Mistakes that kill startupsMistakes that kill startups
Mistakes that kill startups
 
PnP in building office add ins - public
PnP in building office add ins - publicPnP in building office add ins - public
PnP in building office add ins - public
 
Building predictive models in Azure Machine Learning
Building predictive models in Azure Machine LearningBuilding predictive models in Azure Machine Learning
Building predictive models in Azure Machine Learning
 
Office Command Add-ins – New generation of Add-ins
Office Command Add-ins – New generation of Add-insOffice Command Add-ins – New generation of Add-ins
Office Command Add-ins – New generation of Add-ins
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine Learning
 
Machine Learning Classifiers
Machine Learning ClassifiersMachine Learning Classifiers
Machine Learning Classifiers
 
Programming in Spark using PySpark
Programming in Spark using PySpark      Programming in Spark using PySpark
Programming in Spark using PySpark
 
Big data solutions in azure
Big data solutions in azureBig data solutions in azure
Big data solutions in azure
 
Architecting big data solutions in the cloud
Architecting big data solutions in the cloudArchitecting big data solutions in the cloud
Architecting big data solutions in the cloud
 

Similar to Patterns and Practices in Building Office Add-ins

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
 
Chris givens building custom service applications
Chris givens building custom service applicationsChris givens building custom service applications
Chris givens building custom service applicationsChris Givens
 
Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018Nilesh Shah
 
Session 2: Office as a development platform with Visual Studio 2008
Session 2: Office as a development platform with Visual Studio 2008Session 2: Office as a development platform with Visual Studio 2008
Session 2: Office as a development platform with Visual Studio 2008ukdpe
 
Office As A Development Platform
Office As A Development PlatformOffice As A Development Platform
Office As A Development PlatformChristof Sprenger
 
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015Bram de Jager
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Developmentryanaoliveira
 
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013AntonioMaio2
 
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
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for DevelopersRob Wilson
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...Brian O'Gorman
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingSPC Adriatics
 
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015Ryan Schouten
 
Presentation on Crystal Reports and Business Objects Enterprise Features
Presentation on Crystal Reports and Business Objects Enterprise FeaturesPresentation on Crystal Reports and Business Objects Enterprise Features
Presentation on Crystal Reports and Business Objects Enterprise FeaturesInfoDev
 
Seminar Presentation for FrontPage
Seminar Presentation for FrontPageSeminar Presentation for FrontPage
Seminar Presentation for FrontPagewebhostingguy
 
Building On Demand Apps On Force.com
Building On Demand Apps On Force.comBuilding On Demand Apps On Force.com
Building On Demand Apps On Force.comguneetsahai
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovementsLiquidHub
 
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
 

Similar to Patterns and Practices in Building Office Add-ins (20)

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
 
Chris givens building custom service applications
Chris givens building custom service applicationsChris givens building custom service applications
Chris givens building custom service applications
 
Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018
 
Session 2: Office as a development platform with Visual Studio 2008
Session 2: Office as a development platform with Visual Studio 2008Session 2: Office as a development platform with Visual Studio 2008
Session 2: Office as a development platform with Visual Studio 2008
 
Office As A Development Platform
Office As A Development PlatformOffice As A Development Platform
Office As A Development Platform
 
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
Develop, Build, Package and Deploy Office Add-ins with Visual Studio - ESPC 2015
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
 
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013
Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013
 
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
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
 
Presentation on Crystal Reports and Business Objects Enterprise Features
Presentation on Crystal Reports and Business Objects Enterprise FeaturesPresentation on Crystal Reports and Business Objects Enterprise Features
Presentation on Crystal Reports and Business Objects Enterprise Features
 
Seminar Presentation for FrontPage
Seminar Presentation for FrontPageSeminar Presentation for FrontPage
Seminar Presentation for FrontPage
 
Building On Demand Apps On Force.com
Building On Demand Apps On Force.comBuilding On Demand Apps On Force.com
Building On Demand Apps On Force.com
 
Share point 2010-uiimprovements
Share point 2010-uiimprovementsShare point 2010-uiimprovements
Share point 2010-uiimprovements
 
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
 
VSTO (Introduction)
VSTO (Introduction)VSTO (Introduction)
VSTO (Introduction)
 

More from Mostafa

The role of intelligent sensors in the cloud public
The role of intelligent sensors in the cloud publicThe role of intelligent sensors in the cloud public
The role of intelligent sensors in the cloud publicMostafa
 
Skill up in machine learning using Azure ML
Skill up in machine learning using Azure MLSkill up in machine learning using Azure ML
Skill up in machine learning using Azure MLMostafa
 
Big data talking stories in Healthcare
Big data talking stories in Healthcare Big data talking stories in Healthcare
Big data talking stories in Healthcare Mostafa
 
How to migrate Console Apps as a cloud service
How to migrate Console Apps as a cloud serviceHow to migrate Console Apps as a cloud service
How to migrate Console Apps as a cloud serviceMostafa
 
HBase introduction in azure
HBase introduction in azureHBase introduction in azure
HBase introduction in azureMostafa
 
Get your site microsoft edge ready
Get your site microsoft edge readyGet your site microsoft edge ready
Get your site microsoft edge readyMostafa
 
Developing cross platform mobile apps using Apache Cordova
Developing cross platform mobile apps using Apache CordovaDeveloping cross platform mobile apps using Apache Cordova
Developing cross platform mobile apps using Apache CordovaMostafa
 
Identity and o365 on Azure
Identity and o365 on AzureIdentity and o365 on Azure
Identity and o365 on AzureMostafa
 
Azure Data platform
Azure Data platformAzure Data platform
Azure Data platformMostafa
 
Building IoT solutions using Windows 10 IoT Core & Azure
Building IoT solutions using Windows 10 IoT Core & AzureBuilding IoT solutions using Windows 10 IoT Core & Azure
Building IoT solutions using Windows 10 IoT Core & AzureMostafa
 

More from Mostafa (11)

The role of intelligent sensors in the cloud public
The role of intelligent sensors in the cloud publicThe role of intelligent sensors in the cloud public
The role of intelligent sensors in the cloud public
 
Skill up in machine learning using Azure ML
Skill up in machine learning using Azure MLSkill up in machine learning using Azure ML
Skill up in machine learning using Azure ML
 
Big data talking stories in Healthcare
Big data talking stories in Healthcare Big data talking stories in Healthcare
Big data talking stories in Healthcare
 
How to migrate Console Apps as a cloud service
How to migrate Console Apps as a cloud serviceHow to migrate Console Apps as a cloud service
How to migrate Console Apps as a cloud service
 
HBase introduction in azure
HBase introduction in azureHBase introduction in azure
HBase introduction in azure
 
eRecall
eRecalleRecall
eRecall
 
Get your site microsoft edge ready
Get your site microsoft edge readyGet your site microsoft edge ready
Get your site microsoft edge ready
 
Developing cross platform mobile apps using Apache Cordova
Developing cross platform mobile apps using Apache CordovaDeveloping cross platform mobile apps using Apache Cordova
Developing cross platform mobile apps using Apache Cordova
 
Identity and o365 on Azure
Identity and o365 on AzureIdentity and o365 on Azure
Identity and o365 on Azure
 
Azure Data platform
Azure Data platformAzure Data platform
Azure Data platform
 
Building IoT solutions using Windows 10 IoT Core & Azure
Building IoT solutions using Windows 10 IoT Core & AzureBuilding IoT solutions using Windows 10 IoT Core & Azure
Building IoT solutions using Windows 10 IoT Core & Azure
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Patterns and Practices in Building Office Add-ins

  • 2.
  • 3.  A Web page loaded inside an Office Application  Office Add-ins enable you to extend Office clients such as Word, Excel, PowerPoint, and Outlook using web technologies like HTML, CSS and JavaScript.  Embedded inline or as task pane within documents, mails or appointments.  Works in both Office Apps, Office for Mac, and Office Web Applications  Office application extensions using Web technologies  HTML 5 and CSS used to construct user interface  JavaScript and jQuery used to add executable logic and event handlers  Add-In can provide code to read/write content to/from Office documents  Add-In can call web services hosted over Internet or running within local network
  • 4.  Office Add-Ins come in three different shapes/types  Task Pane Add-In  Content Add-In  Outlook Add-In
  • 5.  Web Extensibility Framework (WEF)  Allows Web page content to render inside Office Application  Allows Web page code to run within a set of constraints  Allows Web page code to interact with Office documents  Allows Web page code to interact with Exchange items  WEF provides runtime environment for Office Add-Ins  Office Add-Ins provide basis for a component architecture  Office Add-Ins provide Add-Ins ability to publish to Add-In Catalog (SP) and/or Office Store  Office Add-Ins can be deployed in private networks
  • 6.  Each Office Add-In is based on XML-based manifest  Manifest points to a Web page  Manifest defines the type of the Office Add-In  Manifest defines which Office applications it supports  Manifest defines required capabilities App for Office Manifest <XML> Web Page HTML+JS Office Add-In Catalog Server Web Server Office Add-In
  • 7.  You can use two types of UI elements in your Office Add-ins:  Add-in commands  Insertable Task Panes  Using Office UI Fabric
  • 8.
  • 9.
  • 10.  Help users complete tasks quickly & efficiently.  Enable new scenarios within Office.  Embed complementary services within office.  Create an effective Office Store listing.
  • 11.  Easy on-boarding process.  Teaching UI to educate users that includes sample data.  Re-Inforce the VP of your add-in.  Avoid Pop ups.   Make sign up process simple.  Offer free trials. If your add-in requires a subscription, make some functionality available without a subscription.
  • 12.
  • 13.  Provide meaningful icons.  Use supported sizes with transparent background color.  Clear & simple button labels.  Group related commands under a menu control.  Provide a version of your add-in that also works on hosts that do not support commands. (Office 2013)
  • 14.
  • 15.
  • 16.  Ensure that the look and feel and functionality of your add-in complements the Office experience.  Keep users in control, favor content over chrome.  Avoid scrolling, Optimize for 1366x768.  Don’t include unlicensed images.
  • 17.  Account for accessibility.  Make sure that your Add-In UI is responsive for all input platforms (including mouse/keyboard and touch)  Optimize for touch. (Context.touchEnabled)  Test Add-in in different modes (portrait and landscape)  USE Office UI Fabric: dev.office.com/fabric
  • 18.  Load time should be <= 500ms (Typical)  All users interactions respond in less than a second. (Important)  Use CDN for content/assets.  Use web standards to optimize your web page.
  • 19.  List your add-in with full profile including short descriptions, images, What it does?  Convey the VP of your add-in in the title and description.  Create a website to help users find your add-in  Publish to Office Store & promote it from your website.
  • 20. Office Store—This is a public marketplace that Microsoft hosts and regulates on Office.com. Office Add-ins catalog on SharePoint—For task pane and content add-ins. Exchange catalog—This is a private catalog for Outlook add-ins that is available to users of the Exchange server Network shared folder add-in catalog
  • 21.
  • 22.
  • 23. 1. Create new Office Add-In project 2. Create/design user interface for Web page 3. Enhance Web page with CSS and JavaScript 4. Set project properties in manifest 5. Run!
  • 24.
  • 25.  App for Office solution has two projects  Top project contains add-In manifest  Bottom project for remote web  Remote Web Project is ASP.NET or Node.js Website  Contains HTML, CSS and JavaScript source files  Integration with jQuery library already included
  • 27. App Manifest - XML View
  • 28.

Editor's Notes

  1. An App for Office can be seen as a Web page loaded inside an Office Application. In some cases it will appear embedded inline within the document. In other cases it might appear as a task pane or within a message in Outlook. Note that the architecture for Apps for Office has been designed to work in both Office Applications and Office Web Applications. WEF and Apps for Office allow Office applications to be extended in such as way so that they can leverage Web technologies such as HTML 5 and CSS for rendering user interface as well as JavaScript and jQuery to add behavior. When you write the JavaScript code for an App for Office, you can call REST APIs such as those added to SharePoint 2013 to retrieve and update data from across network.
  2. When you begin to design an add-in, you must pick one of the three different shapes. You can create a document-based add-in as either a Task Pane add-in or a Content add-in. Alternatively, you can create a Outlook Add-In that targets Outlook and Outlook OWA. Requirements for running Office Add-Ins: https://msdn.microsoft.com/EN-US/library/office/dn833104.aspx Add-In host availability: http://dev.office.com/add-in-availability
  3. The Web Extensibility Framework (WEF) is a new development platform used to extend Office applications. This platform allows Web page content to render inside Office Application and to interact with Office documents such as Word document and Excel workbooks and Exchange items such as messages and appointments. The WEF development platform is used to develop Office Add-Ins. Office Add-Ins provide basis for a component architecture which allows developers to build apps which target Office application and Office Web applications such as Excel services and Outlook Web Access. WEF and the Office Add-Ins development model provide foundation for distribution of apps using an app directory such as the Office Store and the App Corporate Catalog used to deploy apps in private networks.
  4. Every Office Add-In must be distributed with an XML-based manifest which contains information about the app itself. For example, the app manifest contains an address to a Web page on the Internet which is used to load the app. The app manifest also includes information which indicates which Office applications it supports. The app manifest also defines the required capabilities which represent the set of permissions that the app needs in order to run and complete its work.
  5. Ref.: https://dev.office.com/docs/add-ins/overview/office-add-ins
  6. Ref.: https://dev.office.com/docs/add-ins/overview/office-add-ins
  7. Ref.: https://dev.office.com/docs/add-ins/overview/add-in-development-best-practices
  8. Ref.: https://dev.office.com/docs/add-ins/design/add-in-development-best-practices
  9. Add-in command design best practices Use commands to represent a specific action with a clear and specific outcome for users. Do not combine multiple actions in a single button. Provide granular actions that make common tasks within your add-in more efficient to perform. Minimize the number of steps an action takes to complete. Provide meaningful icons and labels for buttons that clearly identify the action the user is taking. For all icons: Use PNG format with a transparent background. Include all eight supported sizes. This creates the best experience for all supported resolutions. Match the Office visual style. For example: Keep your shapes simple and avoid multiple colors. Complex graphics are difficult to see at smaller sizes and resolutions. Don't reuse visual metaphors for dissimilar commands. The same icon used for different actions will cause confusion. Make your button labels clear and succinct. Use a combination of visual and textual information to convey meaning. Test your icons in light and dark Office themes and high contrast settings. Note that icons might be difficult to see on dark backgrounds or in high contrast mode. Use consistent icon sizes and positions to help with visual alignment on the ribbon.
  10. Ref.: https://msdn.microsoft.com/EN-US/library/office/mt590883.aspx#bk_firstrun
  11. Office UI fabric is available on NuGet, bower, and npm Ref.: http://dev.office.com/fabric/get-started
  12. Office UI Fabric is a responsive, mobile-first, front-end framework that you can use to apply the Office Design Language to your web experiences. Whether you’re creating a new app or add-in or updating an existing one, Fabric makes it easy to get up and running. Office UI Fabric: https://github.com/OfficeDev/Office-UI-Fabric#get-started
  13. Table with details for lower and upper limits for interactivity duration: https://dev.office.com/docs/add-ins/design/add-in-development-best-practices
  14. Ref.: https://dev.office.com/docs/add-ins/publish/publish Office Store: In the Office Store, developers around the world can publish and sell their custom Office solutions, and then end users and IT professionals can download them for personal or corporate use. When a developer uploads an add-in to the Office Store, Microsoft validates the code. For example, it verifies that the add-in manifest markup is valid and complete. If the code is valid, Microsoft digitally signs the add-in package. The Office Store then takes care of the consumer download experience from discovery to purchase, upgrades, and updates. Office Add-Ins catalog on SP: This new catalog and development platform enables IT departments to use a streamlined method to distribute Office and SharePoint Add-ins to managed users from a central location. Add-in catalogs are available to all SharePoint 2013 customers (including Office 365 and SharePoint on-premise). An add-in catalog enables publishing and management of both internally created add-ins as well as add-ins that are available in the Office Store and licensed for corporate use. Exchange catalog: It enables publishing and management of corporate Outlook add-ins, including internally created add-ins as well as add-ins that are available in the Office Store and licensed for corporate use. Network shared folder add-in catalog: IT departments and developers can also deploy task pane and content add-ins to a central network shared folder, where the manifest files will be stored and managed. Users can then acquire add-ins by specifying this shared folder as a trusted catalog, or IT departments can configure this shared folder as a trusted catalog by using a registry setting.
  15. Reference: http://yeoman.io/ Creating add-ins using yeoman tool: https://code.visualstudio.com/Docs/runtimes/office
  16. The slide shows the initial structure of a task pane app created with the Visual Studio 2012.
  17. This slide shows the Visual Studio designer for an app manifest in a task pane app. It will look different for other types of Apps for Office.
  18. There are times when it is also useful or necessary to examine or update the manifest in XML view. You can enter XML view by clicking the XML file in the Solution Explorer.