Search code examples
c#vstoadd-inexcel-addins

Excel Addin COM Addin VS VSTO Addin


I have Searched many hours on the internet but not found satisfactory so - What is the difference between VSTO Addin & COM Addin (which we make as Class library project and use excel object)? Is there any limitation in VSTO project like it will work for only specific Version of excel.


Solution

  • A COM Add-in uses the IDTExtensibility2 interface to communicate with an Office application.

    VSTO (and any other Office Add-in library such as Add-in Express) bases on and extends this interface. For example, VSTO

    • does a lot of the background work for hooking up the Interface.
    • provides Document-level customizations (code linked to a particular document or template), not just application-level add-ins.
    • extends certain parts of the Word or Excel object model to make them simpler for the .NET developer to work with.
    • enables the developer to place WinForms controls on the Excel or Word document surface or host them in a Custom Task Pane by wrapping them up in a way compatible to the Office technology
    • provides the "plumbing" for data binding to certain native Office objects
    • offers a Ribbon Designer for "simple" Ribbon customizations as an alternative to Ribbon XML.

    VSTO works with Office 2007 and later (IDTExtensibility2 was introduced for Office 2000, if I remember correctly). You have to use the correct .NET Framework and VSTO template for the earliest version of Office you plan to support. Add-ins created for earlier versions can be used in later versions of Office without being re-built.

    Any add-in based on the Interface is limited to Windows Desktop.