MS Outlook - расширение форм автоматически
Мне нужно разработать расширение Outlook, способное расширять существующие формы с помощью вкладок, загружаемых с удаленного сервера. Например, в форме назначения должна появиться дополнительная вкладка. Определение формы на этой вкладке загружается из веб-службы и отображается, например, с использованием WPF. Данные для этой вкладки также поступают с сервера и привязываются к полям формы. И последнее: когда форма сохранена, она также должна быть отправлена на этот удаленный сервер.
Должно работать в Outlook 2003 и 2007.
Основные вопросы:
- Это вообще возможно?
- Что читать, чтобы понять это быстрее? MSDN большой, даже его раздел для разработчиков Outlook.
- Есть ли образцы?
ОБНОВИТЬ
Большое спасибо за ответы! Определенно, здесь слишком много разных вопросов, поэтому мне придется разбить его на несколько частей. После прочтения ответов и выполнения домашней работы я хочу продолжить:
- Да, это возможно. Может быть, позже я найду подводные камни.
- Лучший способ - взять VS 2008 и попробовать сделать расширение.
2 ответа
Хорошо, в вашем посте много вопросов, я думаю, что у меня есть некоторые ответы, но не все. Во всяком случае, в вашем вопросе слишком много вещей, чтобы один пост покрыл все это.
Первое, что нужно знать, это то, что Outlook 2007 имеет другой способ работы, чем предыдущие версии. Поэтому вам, вероятно, придется сделать что-то дважды, чтобы использовать Outlook 2003 и 2007.
Первое, что нужно знать, это словарный запас, который поможет найти то, что вам нужно. В Outlook 2003 вы будете использовать пользовательские формы для создания или расширения форм. В Outlook 2007 вы будете использовать новые области формы. Хотя они похожи по своей концепции, это две разные вещи.
Поскольку я работал только в Outlook 2007, то, что я скажу дальше, относится только к этому. Вам потребуется либо Visual Studio 2005 и загрузить VSTO (Инструменты Visual Studio для Office), либо Visual Studio 2008.
Область формы имеет один из 4 типов: смежный, отдельный, заменить или заменить все. Смежный означает, что он отображается в нижней части формы по умолчанию. Отдельный означает, что это новая "страница" внутри формы. Заменить означает, что она заменяет первую страницу формы по умолчанию, а Заменить все означает, что она заменяет все страницы формы по умолчанию.
Вы сказали, что хотите использовать вкладки. В Outlook 2007 вы не должны. Вы должны использовать отдельные страницы, чтобы соблюдать принципы пользовательского интерфейса в Outlook 2007. Вы можете создавать вкладки, но вы увидите, что они будут выглядеть довольно некрасиво. С другой стороны, отдельные ленты появляются на ленте, что позволяет легко переключаться с одной страницы на другую.
У вас есть два способа проектирования областей формы. Первый рекомендуемый способ - это конструктор в Outlook 2007: что-то вроде "Инструменты> Формы> Создать форму региона". Вы проектируете внутри этой вещи, сохраняете форму как файл.ofs и затем импортируете ее в Visual Studio.
Преимущества:
- Рекомендовано Microsoft, поэтому практически все ресурсы по настройке Outlook 2007 используют этот метод.
- Готовые элементы управления для Outlook (например, поля, предназначенные для хранения почтовых адресов).
- Автоматическая привязка к UserProperty в вашей почте.
Недостатки:
- Грубый дизайнер (сложно правильно сориентировать вещи).
- Всякий раз, когда вы хотите обновить свою форму, вам придется изменить ее в Outlook и загрузить ее снова в Visual Studio, что приведет к удалению предыдущего кода.
- Старые элементы управления COM, с которыми ужасно работать.
Другой способ - создать новую форму региона в Visual Studio.
Преимущества:
- У вас есть все новейшие, сильные стороны, контроль формы win вы хотите.
- Лучший дизайнер.
- Легко обновить.
Недостатки:
- Вы не найдете много информации об этом, так как большинство авторов книг используют только дизайнер Outlook.
- Вам придется самостоятельно кодировать многие действия, которые вы воспринимаете как само собой разумеющееся в Outlook (например, создавать текстовое поле, в котором можно хранить и проверять несколько почтовых адресов), что довольно болезненно и может быть трудно сделать.
Я думаю, что вы можете отправить свои пользовательские формы (по крайней мере, те, которые разработаны в Outlook) по почте, но я не уверен, так как я никогда не пробовал сам.
Что касается привязки, вы, вероятно, сможете сделать это с событием. Например, есть события, которые запускаются перед сохранением или отправкой сообщения.
Пока это все, я надеюсь, что я не не в теме с моим длинным ответом, и что он может помочь вам точно определить, что вы хотите сделать. Вы должны получить представление о том, что Outlook позволяет вам делать, а затем задать более конкретные вопросы по каждому пункту.
Это невозможно, как вы описываете, но вы можете получить некоторые пути там. Также Ksempac указал на много хороших вещей о плюсах и минусах о том, как действовать в Outlook 2007.
Чтобы начать работу в 2003 и 2007 годах, я думаю, что наилучшим способом было бы разработать собственную форму встречи. Вы можете расширить одну из вкладок, чтобы иметь элемент управления браузера, который отображал динамическую форму из вашего веб-сервиса. Результаты могут быть отправлены обратно или сохранены с новой формой внешнего вида для последующего рендеринга / обработки.
Примеры:
Пример дизайна формы: http://www.msexchange.org/articles/Designing-Outlook-Forms-Part1.html
Перезаписать формы по умолчанию: http://support.microsoft.com/?kbid=241235
Здесь и в сети много хороших вещей о разработке форм Outlook, и вы можете спросить здесь все. Есть несколько хороших книг о формах:
Книги и сайт Сью Мошер - хорошее место для начала. Outlookcode.com
Программирование в Microsoft Outlook: Jumpstart для администраторов, разработчиков и опытных пользователей (ISBN 1-555-58286-9, Digital Press)
Программирование Microsoft Outlook 2007: Jumpstart для опытных пользователей и администраторов (ISBN 1-55558-346-6, Digital Press)
Как Ksempac вам, вероятно, нужно разбить вопрос и спросить, как вы идете..
Обновление Если у вас есть бюджетная надстройка Express, http://www.add-in-express.com/ избавит вас от необходимости развертывания в двух версиях, и вы сможете быстрее добиться производительности, чем если бы вы делали это вручную.,