2014-01-16 2 views
1

Есть ли техническое преимущество в netoffice, используя IDTExtensibility2 vs ComAddin в netoffice? Или они оба выполняют одно и то же (хотя через разные пути)?NetOffice - IDTExtensibility2 vs ComAddin

Я знаю, что ComAddin наследуется от интерфейса IDTExtensibility2 - я думаю, мои вопросы просто - почему я должен наследовать непосредственно из интерфейса, а не из класса ComAddin? Больше контроля?

ответ

2

NetOffice не использует или не работает с PIA или VSTO (нет необходимости). Это одно из преимуществ NetOffice.

Интерфейс IDTExtensibility2 - это общий интерфейс для добавления на основе COM в MS-Office. Офисное приложение создает экземпляр из addin (на основе данных реестра) и взаимодействует через этот интерфейс с добавлением. вы можете создать офисный админ только с реализацией этого интерфейса. (все решения, addin express, vsto, netoffice делают это за сценой)

Базовый класс COMAddin в NetOffice является верхней оболочкой для работы с Office через интерфейс IDTExtensibility2 и обрабатывает типичные задачи инфраструктуры для вас (регистр/unregister и т. д.). VSTO делает то же самое, но вы никогда не видите базовый класс здесь (во время волшебства кодировщика, но вы можете видеть это в IL Spy oder Reflector)

Базовый класс COMAddin упрощает создание офисного дополнения и уменьшает код инфраструктуры, который будет более знакомым с VSTO - вот и вся идея. Ваш выбор - использовать его. Если у вас нет исключительных требований, это хорошая идея, что я нахожу.

1

Для ComAddin требуется установить Office, но NetOffice работает только с PIA (Primary Interop Assemblies).

Извлеченные из этого link

An Office COM надстройки является COM-сервера в процессе, который активируется приложением Управление через СОМ времени выполнения слоя. Поэтому для разработки надстройки COM в .NET требуется, чтобы компонент надстройки был реализован в .NET, а затем открыт для COM-клиентов (то есть приложений Office) через слой взаимодействия COM.

Смежные вопросы