Microsoft Visual Studio 2005

Visual Studio Tools for the Microsoft Office System

Алексей Федоров

Microsoft Office System как платформа

   Ручная интеграция

   Модель внешней автоматизации

   Интеграция на уровне приложений

   Преимущества использования Office как платформы

Visual Studio Tools for Microsoft Office System

   Расширенные компоненты Office

   Поддержка Actions Pane

   Разработка смарт-тэгов

   Поддержка программирования на уровне схем

   Кэширование данных

   Создание приложений на основе Outlook

   Модель безопасности в VSTO 2005

   Модель развертывания

Дополнительные материалы

 

История расширяемости приложений семейства Microsoft Office

 

Об авторе. Алексей Федоров — сотрудник отдела стратегических технологий российского представительства компании Microsoft (alexeif@microsoft.com).

В предыдущих номерах мы познакомились с различными изданиями Microsoft Visual Studio 2005: бесплатными средствами, рассчитанными на начинающих программистов, студентов и непрофессиональных разработчиков, — группой продуктов Express Edition (см. КомпьютерПресс № 6’2005) и группой продуктов, предназначенных для компаний, специализирующихся на разработке программного обеспечения, — Visual Studio 2005 Team System: Team Foundation Server, Team Edition for Software Architects, Team Edition for Software Developers и Team Edition for Software Testers (см. КомпьютерПресс № 7’2005).
На очереди — версия Microsoft Visual Studio 2005, предназначенная для создания приложений на базе Microsoft Office, — Visual Studio 2005 Tools for the Microsoft Office System (VSTO).

Компания Microsoft обеспечивала возможность написания расширений для продуктов семейства Office начиная с версии Office Professional 4.3 (см. врезку), но только с появлением Visual Studio Tools for the Microsoft Office System разработчики получили в свое распоряжение средство, которое не только полностью поддерживает все современные технологии, но и обладает единой средой, объединяющей все средства разработки компании.

Первая версия Visual Studio Tools for the Microsoft Office System, выпущенная в 2003 году, поддерживала создание приложений на основе Word 2003 и Excel 2003. В версии 2005 года появится поддержка Outlook и, возможно, InfoPath. В целом стратегия компании состоит в том, чтобы обеспечить адекватную поддержку всех продуктов семейства Office, реализовать совместимую объектную модель, схожий подход к программированию и единую среду разработки.

Microsoft Office System как платформа

Прежде чем рассмотреть собственно расширения Visual Studio Tools для Microsoft Office System, следует сказать несколько слов о самой платформе Microsoft Office System. Использование Office для автоматизации бизнес-задач и интеграции с бизнес-приложениями не является чем-то новым. На протяжении более чем 10 лет эта возможность предоставлялась в продуктах семейства теми или иными способами. В настоящее время поддерживается несколько моделей интеграции различных бизнес-приложений с продуктами семейства Office — ручная, модель внешней автоматизации, модель на основе документов и интеграция на уровне приложений.

Ручная интеграция

Ручная интеграция состоит из набора классических операций cut&paste, в результате которых данные переносятся из одного бизнес-приложения в другое. Основными недостатками такого подхода являются низкая продуктивность и вероятность внесения большого числа ошибок.

Модель внешней автоматизации

В этом случае приложение использует Office как внепроцессный COM-сервер. Наиболее частые сценарии для данной модели — генерация и редактирование офисных документов. Основными недостатками этой модели являются невозможность реализации серверных сценариев, необходимость реализации собственного пользовательского интерфейса, отсутствие 100-процентного доступа ко всей функциональности продуктов семейства Office.

Интеграция на основе документов

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

Интеграция на уровне приложений

При использовании этой модели создаются расширения (add-ins) для офисных приложений. Такой подход применяется в тех случаях, когда расширения должны быть доступны в нескольких документах. Примером расширений является утилита фирмы Adobe (входит в комплект Adobe Acrobat), позволяющая преобразовать документ Office в PDF-файл.

При использовании VSTO мы реализуем два последних способа интеграции — интеграцию на основе документов путем расширения их функциональности и интеграцию на уровне приложения путем создания расширений. И в том, и в другом случае VSTO базируется на объектной модели продуктов Office System, представляя ее в наиболее удобном виде для использования из всех приложений, что написаны на языках, предназначенных для создания управляемого кода (C# или VB .NET). При этом следует отметить, что VSTO не является полной заменой Visual Basic for Applications (VBA) — это, скорее, дополнение, призванное помочь в решении задач, для которых механизм VBA не предназначен.

Преимущества использования Office как платформы

При создании приложений на базе Office можно решить ряд проблем, возникающих как перед разработчиками, так и перед пользователями. Во-первых, отпадает необходимость в выполнении рутинных операций копирования данных — документы можно связывать с «живыми» бизнес-данными. Во-вторых, значительно снижаются затраты на обучение, так как пользователи работают в знакомой среде, используя уже известные им парадигмы. В-третьих, время разработки приложений существенно сокращается, благодаря возможности использовать богатую функциональность платформы Office.

В начало В начало

Visual Studio Tools for Microsoft Office System

Использование VSTO позволяет объединить разработку для .NET и для Office и предоставляет не только полный доступ к библиотеке классов .NET Framework, но и возможность применения объектно-ориентированных языковых конструкций, включая наследование, структурированную обработку исключений, обобщения, частичные классы и т.п. Можно даже вызывать Web-сервисы. Таким образом, использование VSTO существенно расширяет набор инструментов и средств, которые были доступны в предыдущих версиях.

Как уже было отмечено, применение Office и VSTO дает возможность связать документы с «живыми» бизнес-данными. Такие документы называются «разумными» (smart documents), так как они «знают», как соединяться с данными, как извлекать их из источников и из документов, как представлять информацию, требуемую в данном контексте.

Ключевыми технологиями, делающими возможным создание таких «разумных» документов, являются:

    • открытые XML-форматы офисных документов;
    • возможность создания расширенных XML-схем;
    • интеграция интерфейсов на базе панели задач (Document Actions Task Pane).

Среди новшеств Visual Studio 2005 Tools for the Microsoft Office System можно отметить:

    • поддержку интерфейсных компонентов, созданных средствами .NET;
    • расширенные компоненты Office;
    • поддержку Actions Pane;
    • разработку Smart Tags;
    • поддержку программирования на уровне схем;
    • кэширование данных;
    • развертывание приложений на основе манифеста.

Рассмотрим некоторые из новых функций более подробно.

Расширенные компоненты Office

VSTO 2005 расширяет ряд встроенных объектов Word и Excel. Расширенные компоненты (так называемые Host Controls) доступны через стандартную панель компонентов, их свойства отображаются в Properties Explorer. Они программно доступны через именованные поля, поддерживают связь с данными и расширяют событийную модель.

 

Использование Action Pane

Использование Action Pane

Расширенные компоненты предназначены для расширения функциональности Word или Excel либо для добавления функциональности, отсутствующей на уровне объектной модели, например в Excel объектная модель доступна через пространство имен Microsoft.Office.Interop.Excel; элементами для отображения данных в этой объектной модели являются Range, Name, ListObject и Chart. Стандартная объектная модель Excel поддерживает события только на уровне объектов Worksheet и Workbook, в ней невозможна привязка данных (как это реализовано в Windows Forms), в управляемом коде объекты Name и ListObject недоступны напрямую. Использование расширенных компонентов позволяет обойти эти ограничения. В VSTO 2005 реализованы следующие расширенные компоненты для Excel: NamedRange, XMLMappedRange, Chart и ListObject.

Применение расширенных компонентов в Word открывает доступ к компонентам Bookmark, XMLNode и XMLNodes. Компонент Bookmark обеспечивает набор событий, связанных с манипуляцией с закладками (отсутствуют в стандартной объектной модели), — BindingContextChanged, Deselected, BeforeDoubleClick, BeforeRightClick, Disposed, Selected, SelectionChange. Компоненты XMLNode и XMLNodes реализуют работу с XML-документами в панели задач и поддерживают следующие события: BindingContextChanged (только для XMLNode), AfterInsert, BeforeDelete, ContextEnter, ContextLeave, Deselect, Disposed, Select, ValidationError.

     

История расширяемости приложений семейства Microsoft Office

1993 Office Professional 4.3 (перед VBA)

    • Excel Basic — предшественник VBA в Excel 5;
    • Access Basic;
    • Word had Word Basic

1995 Office Professional 95

    • COM Addins в Excel

1997 Office Professional 97

    • VBA для Word, Excel, Access и PowerPoint;
    • общая объектная модель для всех приложений, включая базовые сервисы типа CommandBars;
    • COM Addins для Word, PowerPoint

1999 Перенос Office 98 на платформу Macintosh

2000 Office 2000

    • VBA для Visio, Project, FrontPage, Outlook

2001 Office XP

    • .NET-сборки (Primary Interop Assemblies) для всех приложений Office;
    • поддержка Smart Tags в Word;
    • стандарт SpreadSheetML;
    • возможность создания Automation Addins в Excel

2003 Microsoft Office System 2003

    • стандарт WordML;
    • пользовательские XML-схемы в Word, Excel, InfoPath;
    • сервисы поиска (Research Services);
    • технология Smart Documents для Word и Excel;
    • поддержка Smart Tags в Word, Excel, Outlook и PowerPoint
 

Поддержка Actions Pane

Панель задач (Document Actions Task Pane) предназначена для настройки документов. Впервые это средство появилось в Microsoft Word и Excel 2003 Professional Edition. Соответствующие программные объекты доступны в VSTO 2005 через классы Excel Workbook и Word Document. Класс ActionsPane поддерживает программную модель, схожую с Windows Forms, — эта модель достаточно проста, и, например, для создания панелей задач не требуется реализация интерфейса ISmartDocument.

Отметим, что программирование панели задач было возможно и с помощью технологии Smart Documents (через SmartDoc SDK, который предоставлял программную модель на основе COM), но эта технология, как видно из табл. 1, имела ряд ограничений.

Таблица 1. Возможности технологий  Smart Documents и Action Panes

Таблица 1. Возможности технологий Smart Documents и Action Panes

Разработка смарт-тэгов

Смарт-тэги (Smart Tags) — это технология, позволяющая ассоциировать распознанный фрагмент текста в документ с каким-либо набором действий. С помощью данной технологии можно реализовать на уровне документов контекстно-зависимые действия. В VSTO 2005 для создания смарт-тэгов имеется специальный класс, использование которого дает доступ к коллекциям Terms и Expressions, ассоциацию с коллекцией Actions, возможность применения делегатов .NET для реализации событийной модели.

Поддержка программирования на уровне схем

При программировании на уровне схем разработчики имеют прямой программный доступ к XML-узлам документа, экземпляры полей создаются для каждого элемента схемы, а также появляется возможность доступа к полям, а не к элементам интерфейса. Схемы поддерживают связь с данными, событийную модель на уровне событий Context Enter/ContextLeave и AfterInsert/BeforeInsert.

 

Шаблон для дополнений к Microsoft Office Outlook 2003 в VSTO 2005

Шаблон для дополнений к Microsoft Office Outlook 2003 в VSTO 2005

Кэширование данных

Использование VSTO 2005 позволяет реализовать кэширование данных для документов Word и Excel. Кэширование данных необходимо в тех случах, когда требуется поддержка работы в отсоединенном режиме. Данные из кэша могут быть связаны с документами и отображены в режиме выполнения приложения, в кэше также могут храниться данные, не связанные с интерфейсными элементами. Данные из кэша доступны на сервере. В VSTO 2005 применяется так называемая асимметричная программная модель — в VSTO-проекте разработчик использует атрибут CachedAttribute для указания полей, данные из которых должны попасть в кэш; содержимое таких полей сохраняется автоматически. Для доступа к кэшу из других проектов Visual Studio применяется объект ServerDocument, который позволяет открывать документы без создания экземпляров Word или Excel, — в таком случае наличие Office на сервере не требуется.

Создание приложений на основе Outlook

После выпуска beta 2 VSTO 2005 появилось бесплатное дополнение (загружаемое с сайта Microsoft), позволяющее использовать VSTO 2005 для создания расширений Outlook (Outlook Add-Ins). В VSTO 2005 теперь есть новый шаблон проекта — Outlook Add-in, с помощью которого можно создавать соответствующие расширения. VSTO 2005 предоставляет всю необходимую инфраструктуру, включая специальный компонент Add-in Loader (AddinLdr.dll), используемый для загрузки расширений.

Поддержка Microsoft Office Outlook 2003 VSTO 2005 позволяет обращаться к объектной модели продукта и кода на C# или на VB .NET и выполнять такие операции, как создание расширенных меню, экспорт заданий, а совместное использование Outlook и XML Expansion Pack делает возможной интеграцию с Word или с Excel. На сайте для разработчиков (http://msdn.microsoft.com/office/understanding/vsto/default.aspx) можно найти статьи, посвященные данному дополнению, которые содержат описание архитектуры и многочисленные примеры ее использования:

    • Introducing Outlook Add-in Support for Visual Studio 2005 Tools for Office;
    • Architecture of the Outlook Add-in Support in Visual Studio 2005 Tools for Office;
    • Creating an Outlook Task Add-in Solution with Visual Studio 2005 Tools for Office;
    • Visual Studio 2005 Tools for Office Training: Outlook Hands-on Labs (Beta);
    • Visual Studio 2005 Tools for Office Sample: Outlook Snippets (Beta);
    • Visual Studio 2005 Tools for Office Sample: Outlook Samples (Beta).

Модель безопасности в VSTO 2005

Поскольку модель расширения продуктов Office, используемая в VSTO 2005, полностью базируется на инфраструктуре .NET, в сборках полностью поддерживаются механизмы безопасности .NET Code Access Security. Отметим, что модель безопасности распространяется как на сборки, содержащие код, расширяющий функциональность офисных документов, так и на сами документы.

 

Онлайновая документация по VSTO 2005

Онлайновая документация по VSTO 2005

Модель развертывания

Модель развертывания, применяемая в VSTO 2005, базируется на разделении документа, кода и сборки — код является частью проекта Visual Studio, а совместно с документом поставляется только сборка. Сборки привязаны к документу — в VSTO 2003 для этих целей использовались свойства документа, а в VSTO 2005 — специальные средства, доступные при выполнении приложения.

Развертывание базируется на манифесте, который содержит всю необходимую для выполнения операции информацию. Для того чтобы приложения, созданные средствами VSTO 2005, могли работать, на клиентском компьютере должны быть установлены:

    • Office 2003 Professional Edition;
    • .NET Framework 2.0;
    • VSTO 2005 Runtime;
    • Office PIAs;
    • соответствующие политики безопасности.

Существует несколько моделей развертывания — локальная/локальная, локальная/сетевая и сетевая/сетевая, которые описаны в табл. 2.

 

Таблица 2.  Модели развертывания

Таблица 2. Модели развертывания

В начало В начало

Дополнительные материалы

Упомянутый выше сайт для разработчиков содержит также множество материалов, посвященных VSTO 2005. Отметим лишь некоторые из них:

    • What’s New in Visual Studio 2005 Tools for Office;
    • Visual Studio 2005 Tools for Office Hands-on Labs for Excel 2003;
    • Visual Studio 2005 Tools for Office Hands-on Labs for Word 2003;
    • Convert VBA Code to Visual Basic .NET When Migrating to Visual Studio 2005 Tools for Office;
    • Migrating Excel VBA Solutions to Visual Studio 2005 Tools for Office;
    • Build a Status Report Application with Visual Studio 2005 Tools for Office;
    • Build an Excel Invoice Application Using Visual Studio 2005 Tools for Office;
    • Overview of Server Capabilities in Visual Studio 2005 Tools for Office.

Для более подробного знакомства с продуктом можно также воспользоваться онлайновой документацией, доступной по адресу: http://msdn2.microsoft.com/library/.

***

В следующем номере мы продолжим знакомство с новыми технологиями компании Microsoft и обратимся к средству управления базами данных — Microsoft SQL Server 2005.

КомпьютерПресс 8'2005


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует