Надстройки Office (особенно Outlook)

Мы хотим разработать надстройки для Outlook, Word и Excel. На данный момент я знаю 2 типа решений. Один для общей надстройки (на основе COM), а другой для создания надстройки на основе VSTO. Поскольку я новичок в этом, какой вариант будет лучше? (Или, если есть третий способ, пожалуйста, дайте мне знать) Мы ориентируемся на Office 2003 и 2007. И я бы предпочел разрабатывать эти надстройки на С#.


person Community    schedule 30.03.2009    source источник
comment
Спасибо за ответы. Похоже, пойдет на надстройку на основе Vb.Net и COM, поскольку я обнаружил, что VSTO имеет больше требований к настройке, а также не является нейтральной версией.   -  person    schedule 31.03.2009


Ответы (2)


Непосредственный ответ на ваш вопрос, но его также стоит рассмотреть перед началом разработки надстройки: как уже сказал Рид, при разработке надстройки Office с использованием VB.Net жизнь будет намного проще, чем с использованием C#.

Вызов объектной модели Office обычно не включает несколько необязательных параметров. Однако в C#, поскольку в C# (пока) нет необязательных параметров, вам придется указать каждый необязательный параметр. Недостаточно, для надстроек COM вам также придется позаботиться о упаковке аргументов самостоятельно, то есть вместо передачи простого логического или int вы должны сначала преобразовать его в ссылочный тип. Все это делает код совершенно нечитаемым.

Например. код для открытия документа в Word будет выглядеть так же, как в C#:

object objTrue = true;
object objFalse = false;
object missing = Type.Missing;
object objInputFile = strInputFile;
Document document = WordApplication.Documents.Open(ref objInputFile, 
    ref objFalse, ref objTrue, ref objFalse, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref objFalse, ref missing, ref missing, ref objTrue, ref missing);

тогда как то же самое в VB.Net было бы намного проще читать и писать:

Document document = WordApplication.Documents.Open(strInputFile)

(Дополнительная информация: с C# 4.0 это станет намного проще, используя динамический)

person Dirk Vollmar    schedule 30.03.2009
comment
Вау, это действительно раздражает! Хорошо знать! :-) - person Rob; 30.03.2009

Если вы собираетесь разрабатывать на C#, я настоятельно рекомендую придерживаться VSTO. Он имеет гораздо более простую структуру разработки надстроек и отлично работает с C#.

Использование COM-маршрута, особенно с C#, просто добавляет дополнительных усилий, которые на данный момент не нужны.

person Reed Copsey    schedule 30.03.2009
comment
VSTO действительно великолепен. Но не забывайте про VSTO Power Tools ;-) microsoft.com/downloads/ - person Gregor; 30.03.2009