Каковы относительные преимущества разработки надстроек Office 2007/2010 с VSTO и без него? - PullRequest
0 голосов
/ 18 августа 2011

Несколько лет назад я провел довольно серьезную разработку надстроек Office для Office 2003 (Word, Excel и PowerPoint).Я создал несколько общих надстроек COM в C # с помощью Visual Studio 2003. В то время я смотрел на VSTO, но решил по причинам, которые не могу полностью вспомнить, что он не подходит для моих нужд.

Мои надстройки должны быть обновлены и больше не нуждаются в поддержке Office 2003 - хотя они все еще должны поддерживать Office 2007, а не только 2010 год.

Я знаю, что ситуация значительно изменилась, ичто Visual Studio 2010 лучше поддерживает разработку Office.Я хотел бы определить, следует ли мне повторно реализовать свои надстройки с помощью VSTO или продолжить маршрут общего надстройки COM.

Если кто-нибудь знает хорошее резюме плюсов и минусов каждого из них.подход (помимо маркетингового ажиотажа), я хотел бы услышать это.

Вещи, которые я нашел очень разочаровывающими в первый раз (не используя VSTO, но могут применяться в любом случае):

  • необходимость явного управления ссылками на COM (и повсюду вызывать ReleaseComObject)
  • необходимость использования COM-оболочки для обеспечения работы модели безопасности
  • проекты установки Visual Studio просто не выполнялисьт работа;Я закончил сборку собственного установщика на основе MSI
  • отсутствие документации, особенно по всем вышеперечисленным;Я провел недели проб и ошибок и поиска случайных блогов;предоставленный MS пример кода полностью игнорирует все эти реальные проблемы

Стоит также отметить, что важно минимизировать количество вещей, которые необходимо установить перед моими надстройками,Я думаю, что одной из вещей, которые оттолкнули меня от VSTO, была необходимость развернуть дополнительные вещи (хотя, поскольку я никогда не шел по этому пути, я не знаю, была ли эта обеспокоенность оправданной).И мне бы очень хотелось иметь возможность развертывания на стандартной сборке Windows 7 (или Vista) без предварительной установки (скажем) .NET 4.

1 Ответ

1 голос
/ 18 августа 2011

Частичный ответ, но слишком длинный, чтобы уместиться в комментарии:

Части, которые я могу прокомментировать:

  • Проекты установки для надстроек VSTO теперь действительно работают, и это очень хорошодоступно пошаговое руководство о том, как их правильно создать.
  • Документация в целом об объектной модели офиса плохая, imho, и это должно быть одинаково раздражающим для разработки com и c #.Потому что многие объекты теперь возвращаются как динамические, если вы используете .net framework v4, вы теряете intellisense, который не помогает.Обходной путь для этого должен быть явным при приведении к известным типам, где это возможно.
  • Для того, чтобы запустить его, очевидно, нужна соответствующая установленная среда (v4 лучше для этого, чем в более ранней версии, из-за динамики, необязательных аргументов, которые были добавлены под давлением со стороны офисной группы и настройки NoPIA).также необходимо установить среду выполнения VSTO.
  • Все эти зависимости могут быть включены в установщик, но они необходимы

Вы не указали, что использовали для создания этих надстроек com (я думаю, это c ++ или vb6)и я не могу сказать, насколько они велики и какой капитальный ремонт им нужен, поэтому на самом деле невозможно дать совет, если сейчас самое время внести изменения.Одна из областей, где переход на c #, безусловно, будет намного чище и приятнее, это все, что связано с лентами.Но опять же, я не могу оценить, насколько это актуально для вас.

...