Pieter van der Westhuizen

Add-in Express vs. Visual Studio Tools for Office

Almost four years to this day, I wrote about the new Visual Studio Tools for Office (VSTO) available in the latest release of Visual Studio 2008. I’ve also later posted an update that I’ve found a much more efficient way of developing for Microsoft Office; and that way was of course Add-in Express!

The rest is history and I’ve since had tons of fun developing Microsoft Office add-ins with Add-in Express and also working closely with this amazing team.

You might be thinking “Why do I need Add-in Express? I get the tools I need for Office development with Visual Studio.” Yes, you do get the tools needed for Microsoft Office development with Visual Studio 2010 or VS 2012, but comparing the two is like comparing driving a nail into a piece of wood with either a hammer or a wrench. With the wrench you’ll eventually get the nail into that piece of wood which will take a lot of time and maybe missing the nail and hitting your finger a few times but it’ll work. Whereas with the hammer, driving the nail into that piece of wood will be quick, although you might still miss and hit your finger.

It all comes down to getting the job done as quickly and as painlessly as possible and there are a few things to consider. How easy is it to create an add-in that will target multiple versions of Office? Can I create complex ribbons without a fuss and without -gasp- XML!?! How easy it is to deploy my add-in? Can I easily add my own items to the Office 2010 Backstage view?

Developing for multiple versions of Office 2003 to 2013

Let’s imagine we want to write a Microsoft Office Add-in that targets primary users of Office 2013, 2010 and 2007. However, there are also a number of customers running Office 2003. Immediately this would be a problem when using VSTO. If all the developers on your team use Visual Studio 2010 or 2012, they now suddenly need Visual Studio 2008 or 2005 in order to develop for Office 2003 because Visual Studio 2010 only supports Office 2007 and 2010 when developing with VSTO.

One possible solution would be to create one add-in for Office 2003 in VS 2008 and another for Office 2007-2010 in VS 2010. This will definitely cause a lot of headaches since from the get-go your team will not be working from the same codebase.

Developing for multiple Office applications: Outlook, Excel, Word etc.

If you want to create an add-in that will target for example both Microsoft Word and Excel with VSTO, you would have to create two separate projects in Visual Studio. One would be an Excel 2010 Add-in project:

Creating an Excel 2010 add-in project in Visual Studio

The other a Word 2010 Add-in project:

Creating a Word 2010 add-in project in Visual Studio

Once again, you will be forced to work on more than one codebase. Imagine the complexity if you had to create an add-in that has to work in in both Excel and Word as well as in Office 2003 to 2013?

Office Fluent Ribbon customization

VSTO does offer two ways to create your own Ribbon tabs or customize existing tabs in Office 2007, 2010 and 2013. You can either add a Ribbon (Visual Designer) Item to your project which allows you to:

  • Add custom or built-in tabs to a Ribbon
  • Add custom groups to a custom or built-in tab
  • Add custom controls to a custom group
  • Add custom controls to the Microsoft Office menu

If you want to customize the Ribbon in a way that is not supported by the Ribbon (Visual Designer) item you need to use the Ribbon (XML) item. You use this Visual Studio item when you want to:

  • Add built-in groups to a custom tab or built-in tab
  • Add built-in controls to a custom group
  • Add custom code to override the event handlers of built-in controls
  • Customize the Quick Access Toolbar
  • Share Ribbon customization between add-ins using a qualified ID

Of course as the name suggests, this would involve a lot of XML. Personally I hate having to design UI elements with XML. The room for error or typing mistakes are just too big and not to mention the fact that it takes a lot of trial and error to get your design just right.

In my next few articles, I’ll walk you through accomplishing the tasks I’ve mentioned above as well as a few others using VSTO and then show you how to do the same using Add-in Express. No prizes for guessing which one will be the quickest and easiest : )

Keep watching this space!

Last updated: 5-Feb-2013

Add-in Express vs. VSTO:

You may also be interested in:


  • https://secure.gravatar.com/avatar/4eb16b5a0409523b802eabba6f5ad54f?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G Ethan says:

    Thank you for always sharing such useful information for Microsoft Office customizations!

    I am currently trying to evaluate AddIn Express (ADX) to migrate from our current VSTO solution. Are there any resources you recommend I consult for migrating from a VSTO solution to AddIn Express?

    I also have a couple of questions –

    – We currently deploy our VSTO solution via ClickOnce; can we ensure a transparent transition for existing users via a ClickOnce update if we migrate to ADX? Or would users have to take manual installation steps? I see that ADX offers a ClickOnce deployment solution.

    – Our VSTO solution already provides a IRibbonExtensibility object; do we have to create ADX ribbon controls if we migrate to ADX? Or can we feed ADX the IRibbonExtensibility object? (I have not found any guide or anywhere in the code that suggests I can).


  • https://secure.gravatar.com/avatar/e1a4c2b21a5186e0b27c1c601f418b76?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G Pieter van der Westhuizen says:

    Hi Ethan,

    Add-in Express implements IRibbonExtensibility, which means the ADX ribbon components are used to create Ribbon XML.

    You have a choice to either create the Ribbon using the Add-in Express ribbon components or you can specify the Ribbon XML using the OnRibbonBeforeCreate, OnRibbonBeforeLoad and OnRibbonLoaded events.

    As fot the setup. You would need to create a new setup program and your users would need to uninstall the old add-in and install the new version.

    Hope this helps!

  • https://secure.gravatar.com/avatar/20f434345e1f9a9b711878b2e20b24ba?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G Bhanu says:

    I created MS excel add-in by using vs-2010.I created setup file also but when I’m trying to install that setup file, after installation I’m not able to see that add-in other system. So can you please tell me how to solve this problem.

  • https://secure.gravatar.com/avatar/e1a4c2b21a5186e0b27c1c601f418b76?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G Pieter van der Westhuizen says:

    Hi Bhanu,

    Please send us an email explaining the problem to out suport email. You can find the address in {Add-in Express installation folder}\readme.txt.

Post a comment

Have any questions? Ask us right now!