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

What's hot

Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language CourseVivek chan
 
358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14sumitbardhan
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)swapnac12
 
Linked list in Data Structure and Algorithm
Linked list in Data Structure and Algorithm Linked list in Data Structure and Algorithm
Linked list in Data Structure and Algorithm KristinaBorooah
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm AnalysisMary Margarat
 
Classes and objects
Classes and objectsClasses and objects
Classes and objectsNilesh Dalvi
 
Python functions
Python functionsPython functions
Python functionsAliyamanasa
 
OS Functions and Services
OS Functions and ServicesOS Functions and Services
OS Functions and Servicessgpraju
 
Data structure and algorithm using java
Data structure and algorithm using javaData structure and algorithm using java
Data structure and algorithm using javaNarayan Sau
 
Memory Management in OS
Memory Management in OSMemory Management in OS
Memory Management in OSvampugani
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming LanguageAhmad Idrees
 
Decision making and loop in C#
Decision making and loop in C#Decision making and loop in C#
Decision making and loop in C#Prasanna Kumar SM
 
Structure of java program diff c- cpp and java
Structure of java program  diff c- cpp and javaStructure of java program  diff c- cpp and java
Structure of java program diff c- cpp and javaMadishetty Prathibha
 

What's hot (20)

Data Structures
Data StructuresData Structures
Data Structures
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language Course
 
358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14358 33 powerpoint-slides_14-sorting_chapter-14
358 33 powerpoint-slides_14-sorting_chapter-14
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
Linked list in Data Structure and Algorithm
Linked list in Data Structure and Algorithm Linked list in Data Structure and Algorithm
Linked list in Data Structure and Algorithm
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
 
Arrays In C
Arrays In CArrays In C
Arrays In C
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
Python functions
Python functionsPython functions
Python functions
 
Java packages
Java packagesJava packages
Java packages
 
OS Functions and Services
OS Functions and ServicesOS Functions and Services
OS Functions and Services
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Data structure and algorithm using java
Data structure and algorithm using javaData structure and algorithm using java
Data structure and algorithm using java
 
Memory Management in OS
Memory Management in OSMemory Management in OS
Memory Management in OS
 
Stacks in c++
Stacks in c++Stacks in c++
Stacks in c++
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 
Decision making and loop in C#
Decision making and loop in C#Decision making and loop in C#
Decision making and loop in C#
 
Dictionary
DictionaryDictionary
Dictionary
 
Structure of java program diff c- cpp and java
Structure of java program  diff c- cpp and javaStructure of java program  diff c- cpp and java
Structure of java program diff c- cpp and java
 
Introduction to c++ ppt 1
Introduction to c++ ppt 1Introduction to c++ ppt 1
Introduction to c++ ppt 1
 

Viewers also liked

Introducing Power BI Embedded
Introducing Power BI EmbeddedIntroducing Power BI Embedded
Introducing Power BI EmbeddedMostafa
 
Build intelligent solutions using Azure
Build intelligent solutions using AzureBuild intelligent solutions using Azure
Build intelligent solutions using AzureMostafa
 
Big data solutions in Azure
Big data solutions in AzureBig data solutions in Azure
Big data solutions in AzureMostafa
 
Building Big data solutions in Azure
Building Big data solutions in AzureBuilding Big data solutions in Azure
Building Big data solutions in AzureMostafa
 
Extending Product Outreach with Outlook Connectors
Extending Product Outreach with Outlook ConnectorsExtending Product Outreach with Outlook Connectors
Extending Product Outreach with Outlook ConnectorsMostafa
 
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 (19)

Introducing Power BI Embedded
Introducing Power BI EmbeddedIntroducing Power BI Embedded
Introducing Power BI Embedded
 
Build intelligent solutions using Azure
Build intelligent solutions using AzureBuild intelligent solutions using Azure
Build intelligent solutions using Azure
 
Big data solutions in Azure
Big data solutions in AzureBig data solutions in Azure
Big data solutions in Azure
 
Building Big data solutions in Azure
Building Big data solutions in AzureBuilding Big data solutions in Azure
Building Big data solutions in Azure
 
Extending Product Outreach with Outlook Connectors
Extending Product Outreach with Outlook ConnectorsExtending Product Outreach with Outlook Connectors
Extending Product Outreach with Outlook Connectors
 
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

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

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.