VSTO Development - Основные улучшения в VS2010 / .NET 4.0? - PullRequest
4 голосов
/ 29 марта 2010

Я пытаюсь убедить моих боссов, почему мы должны использовать VS2010 для предстоящего приложения Excel Workbook VSTO. Я не использовал VSTO раньше, но использовал VBA. Не за горами 2010 год, я хотел прочитать об улучшениях, чтобы понять, стоит ли использовать 2010 для разработки этого приложения.

До сих пор я читал 2 основных улучшения: простота развертывания , а также улучшения отладки / взаимодействия с пользователем ...

Мне было просто интересно, есть ли что-то еще, о чем я не знал, или кто-то здесь действительно разрабатывает во ВСТО и использовал 2010 и оба 2008 года и мог бы помочь обосновать / вооружить меня информацией.

Основная проблема моих боссов - это развертывание среды выполнения .NET 4.0 на серверах Citrix здесь ... однако кажется, что с 3.5 нам бы пришлось развернуть среду выполнения VSTO и PIA и т. Д. Так что на самом деле не будет Развертывание будет проще в 2010 году, потому что установка только среды выполнения 4.0 лучше, чем установка VSTO Runtime, а также PIA и т. д.? Или я что-то здесь упускаю? Кто-нибудь здесь развертывает приложение VSTO на предприятии и может говорить об этом?

Кроме того, я пытаюсь также использовать C # поверх VB.NET для этого приложения. Кто-нибудь знает какие-либо ключевые причины, по которым (за исключением моего предвзятого отношения к предпочтениям синтаксиса) было бы лучше использовать для этого C # по сравнению с VB? Какие-либо ключевые функции отсутствуют в разработке VB VSTO? Я читал о VSTO Power Tools , и одна из них описывает расширение LINQ классов объектной модели Excel - однако в нем говорится «набор C #» классы ... Кто-нибудь знает, означают ли они буквально C # - так что это не будет работать с VB.NET, или они просто означают, что код написан на C #? Кто-нибудь когда-либо использовал эти электроинструменты с VB? Я собираюсь скачать и поиграть с ним сейчас, но любая помощь снова очень ценится

Большое спасибо за любую информацию.

Ответы [ 3 ]

2 голосов
/ 06 мая 2010

Я частично получил надстройку VSTO для работы с Outlook 2007, работающей с Citrix XenApp5 вместе с RES PowerFuse. Надстройка загружается Outlook и видна и активна из центра безопасности. Одна важная вещь, которую я узнал, заключается в том, что вы должны создать пользовательскую программу установки, поскольку вам нужно установить приложение на локальный компьютер, HKLM, для среды Citrix, чтобы получить надстройку Office. Похоже, что поддерживается с Office 2010 , и есть исправление для Office 2007, чтобы включить это (KB976811 доступно через KB976477).

Проблема, с которой я до сих пор сталкиваюсь, заключается в том, что ни одно из наших пользовательских представлений не загружается Outlook при запуске из Citrix. Надстройка представляет собой приложение WPF, построенное поверх библиотеки PRISM

2 голосов
/ 25 августа 2010

Развертывание VSTO 3.0 на предприятии:

Ничего особенно хитрого в этом нет. Я определенно рекомендую вам использовать для развертывания систему упаковки ваших компаний, такую ​​как Altiris или SCCM. При упаковке убедитесь, что вы добавили проект CustomInclusionList (и настроили его в соответствии с документами MSDN) + при необходимости подписали свои сборки, если у вас есть сертификат подписи кода.

Если вы находитесь в закрытой среде, вам понадобится технология упаковки, позволяющая устанавливать пакет как администратор. В противном случае развертывание будет кошмаром. Будьте осторожны, когда заставляете упаковщиков переписать пакет, созданный Visual Studio. Необходимо убедиться, что все ключи реестра сохранены, пользовательские действия и т. Д. Вы, вероятно, будете развертывать в куст HKCU, что означает, что пользователи не смогут удалить надстройку самостоятельно (если они не являются администратором).

Обратите внимание, что если пользователи получают приглашение открыть офисное приложение с вопросом «Хотите ли вы установить / не устанавливать этот плагин и т. Д.», То проект custominclusionlist настроен неправильно или у вас отсутствует раздел реестра.

В Citrix:

Кажется, это работает нормально. Главное, чтобы серверы Citrix были полностью обновлены до последней сборки Office со всеми необходимыми компонентами, установленными до развертывания. Это тривиально, если у вас хорошо поддерживается система исправлений. Как другой ответчик ничего особенного не сказал с Citrix. Это будет просто работать, следует установить в HKCU, чтобы избежать каких-либо проблем.

PowerToys для VSTO:

Да, это здорово. Они одинаково хорошо работают с VB или C #. они не зависят от языка, я думаю, что утверждение, на которое вы ссылаетесь, означало, что они были написаны на C #. При развертывании убедитесь, что вы включили сборку расширений либо локально, либо в GAC. он не будет установлен на компьютер пользователя, даже если на нем уже установлен компонент Office 2007 PIA.

При использовании C # поверх VB.net:

без комментариев! да, я бы пошел на C #, хотя некоторые жалуются, что он более многословен, чем VB для проектов VSTO, я думаю, что большая часть этого является наследием. Ищите действительно плохие методы, которые имеют как 30 необязательных аргументов, у вас есть несколько способов справиться с этим сейчас. Напишите метод расширения самостоятельно или в большинстве случаев используйте методы, доступные в пространствах имен Excel.Extensions и Word.Extensions. Также вы можете писать перегрузки в статическом вспомогательном классе и вызывать такие методы, как Open, используя только те параметры, которые вы собираетесь использовать. В конечном счете, вы должны принять решение, основываясь на том, что лучше большинству программистов, и, как следствие, на ваших силах в ресурсах программистов. Вы можете быть гуру в C #, но если остальные 9 парней являются мастерами VB.net, то имеет смысл делать проекты в VB.net. все еще пытаюсь преобразовать их, но реальное решение - с техналом / менеджером, а не с обезьянами кода.

2 голосов
/ 29 марта 2010

Я еще не использовал VS2010 для разработки Office, но я использовал VS2008 для надстроек Word и ленты, а также VB.NET.

Все развертывания зависят от того, насколько вы строги с безопасностью. Я был на сайте ВВС США, и ему требовались самые высокие настройки безопасности, для которых требовались подписанные сборки и некоторые хаки с C ++, чтобы все работало идеально из-за ограничений в VSTO и Office. Я слышал, что они исправили большинство проблем в новой версии.

Другая проблема, которую я обнаружил, в том, что в то время не было книг для VS2008 / Office / Addins, что усложняло ситуацию. Кроме того, в Интернете много примеров различных версий VSTO, Visual Studio, что затрудняет поиск рабочих примеров.

VB имеет / имеет преимущество, поскольку поддерживает необязательные параметры. C # получает их, не уверен, что они получили 4.0. Если у вас есть код в VBA или VB, я бы порекомендовал остаться с VB. Электроинструменты будут работать с обоими языками.

Что касается развертывания .NET4.0 на Citrix; Я не вижу в этом проблемы, но я думаю, что вам нужно войти в систему с этим специальным профилем установщика.

Вы можете создать небольшой прототип, чтобы попробовать ...

...