Let's face it Office Add-ins have a bad reputation of being unstable, performance hogs and a challenge to deploy. I'm here to explain how the modern add-ins model has drastically changed the landscape. We will discuss stability, performance, deployment, capability and opportunity. It's time to look again at using add-ins to increase productivity.
3. M365 Saturday Sydney@CameronDwyer
The Huge Potential of Add-ins
• Impressive user base size
• Keep users focused and in context
• Minimise context switching
• Not an additional application
180M
Office 365
Monthly Active Users
400M
Outlook.com Users
1B
Office App Downloads
on Android
4. M365 Saturday Sydney@CameronDwyer
So why don’t we see huge
add-in usage?
• Historically VSTO/COM gained a bad
reputation
• They were universally painful to work with
• Office worked on all devices, add-ins
didn’t
10. M365 Saturday Sydney@CameronDwyer
• Slow start up
• General slowdown of host app
• Slow and hanging on shutdown
• Dynamic ribbon menus
Host App Performance
OldVSTO/COMModel
11. M365 Saturday Sydney@CameronDwyer
• Add-in manifest does not contain code
• No custom code runs at host start-up
• Custom code only runs when user wants to use add-in
• Runs in sandboxed browser/iframe
Host App Performance
ModernModel
12. M365 Saturday Sydney@CameronDwyer
• Freezing, hanging and crashing
• Synchronous events not completing
• Unmanaged code, memory leaks
• Leaving objects in invalid state
Host App Stability
OldVSTO/COMModel
13. M365 Saturday Sydney@CameronDwyer
• Add-in code is isolated from host app
• Add-in framework monitors add-in CPU/Memory usage
• Events where code runs are async “after” events
• Modal interaction are not allowed
Host App Stability
ModernModel
15. M365 Saturday Sydney@CameronDwyer
• Add-ins are installed with full-trust
• Read/write access to Office document
• Read/write access to all files
• May access other running apps
Permissions
OldVSTO/COMModel
17. M365 Saturday Sydney@CameronDwyer
• Add-ins only ran on Windows versions of Office
• Technology stack would only work on Windows
• COM late 90’s / VSTO 2003
• Office is now on Mac, Online, iOS and Android
Supported environments
OldVSTO/COMModel
18. M365 Saturday Sydney@CameronDwyer
• Windows
• Mac
• Online (web)
• iOS (iPhone & iPad)
• Android (phones and tablets)
Supported environments
ModernModel
19. M365 Saturday Sydney@CameronDwyer
• Limited technology options .Net / COM
• Tech lag
• Steep product specific learning curve
• Visual Studio IDE
• Microsoft development stack
Development environment
OldVSTO/COMModel
20. M365 Saturday Sydney@CameronDwyer
• Web standard technologies
• Use any scripting framework (Angular, React, Vue) or none
• Use any IDE
• Use any toolchain
• Easy for existing web developers to build Office add-ins
Development environment
ModernModel
21. M365 Saturday Sydney@CameronDwyer
• Installed per user / per machine
• Complex roaming & multiple users
• Pre-requisites
• Add-ins not loading (going missing)
Deployment
OldVSTO/COMModel
22. M365 Saturday Sydney@CameronDwyer
• Public Store exposed in-app
• No installation of code
• Add-in is associated with the user (roams)
• Automatic updates to add-ins
• Governance options
Deployment
ModernModel
24. M365 Saturday Sydney@CameronDwyer
• Breadth of API functionality
• Ability to extend UI in more places
• More synchronous (before) events
• Richer integration with other resources on the PC
• Offline
Scenarios where VSTO/COM beats modern