NetOffice - IDTExtensibility2 против ComAddin

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

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

2 ответа

Решение

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

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

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

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

ComAddin требует, чтобы у вас был установлен Office, но NetOffice работает только с PIA(первичными сборками взаимодействия).

Извлечено из этой ссылки

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

Другие вопросы по тегам