Технологии разработки в Microsoft Office 2003
Андрей Љолесов
Наверное, не стоит лишний раз повторять, что семейство офисных продуктов Microsoft давно превратилось из набора отдельных клиентских приложений в самодостаточную платформу построения специализированных бизнес-решений. В предыдущем обзоре ("Платформа Microsoft Office System 2003", "BYTE/Россия" No 12'2003) мы сделали основной акцент на те новшества в последней версии Microsoft Office, которые рассчитаны на пользователей, а теперь рассмотрим новые средства и технологии для разработчиков решений*.
* О новых средствах разработки, появившихся в предыдущей версии офисного пакета, речь шла в статье "Microsoft Office XP — платформа разработки приложений", "BYTE/Россия" No 10'2001.
В целом логика развития технологий разработки шла в последние годы от решения задач автоматизации на уровне отдельных программ на базе механизма VBA в сторону применения средств интеграции приложений (в том числе на базе Web и XML), позволяющих создавать комплексные решения корпоративного уровня. С учетом этого модернизация средств разработки в Microsoft Office 2003 была направлена в первую очередь на то, чтобы обеспечить следующие возможности.
Подключенные приложения. Здесь прежде всего имеется в виду создание
приложений с использованием XML и Web-сервисов, чтобы пользователи могли взаимодействовать
с самыми разными бизнес-процессами и данными предприятия. Поддержка XML добавлена
в Word 2003 и существенно расширена в Excel 2003 и Access 2003 (рис. 1). Кроме
того, разработчики теперь могут интегрировать Web-сервисы в любые офисные приложения.
Рис. 1. Word 2003 можно использовать в качестве редактора XML-документов.
|
Интеллектуальные приложения. Новая технология смарт-документов, реализованная
для Word 2003 и Excel 2003, позволяет создавать интерактивные приложения, работающие
с распределенными источниками данных. Существенно расширены и возможности создания
и использования смарт-тегов, впервые появившиеся в Office XP.
Организация групповой работы. Ключевая роль здесь отводится технологиям
Windows SharePoint, которые представлены в двух вариантах: SharePoint Services
(компонент серверной ОС Windows Server 2003) и SharePoint Portal Server 2003
(наиболее функциональный автономный серверный продукт). В решении задач программной
настройки пользовательского интерфейса и гибкого доступа к уделенным ресурсам
важная роль отводится также обновленной технологии Web Parts.
Интеграция с Visual Studio .NET. Специальные средства расширения позволяют
создавать дополнительные программные модули для Word, Excel и InfoPath с помощью
VS.NET с использованием архитектуры .NET Framework.
Интеграция данных. Эти вопросы в целом решаются посредством технологий
SharePoint и XML. Однако здесь следует особо выделить появление нового офисного
приложения — InfoPath 2003, специально ориентированного на задачи этого класса.
В целом подчеркнем, что развитие возможностей программирования в Microsoft Office 2003 шло не только в рамках совершенствования самих инструментальных средств, но и путем расширения спектра пользовательских функций, которыми можно управлять программно (см. таблицу).
В общем виде использование XML-технологий, смарт-документов и смарт-тегов, а также средств групповой работы мы рассмотрели в предыдущем обзоре Office 2003 ("BYTE/Россия" No 12'2003). Поэтому здесь мы подробнее поговорим о средствах функционального расширения офисных приложений с помощью Visual Studio .NET и основных возможностей InfoPath 2003. Вопросы использования и разработки компонентов Web Parts мы планируем обсудить в следующих номерах журнала.
Новые сферы применения методов программирования в продуктах Microsoft Office
System 2003
Продукт | Сферы применения программирования |
Word 2003 | Работа с документами в формате Word XML с помощью настраиваемых пользователем XML-схем Программная работа с XML через объектную модель Word Создание основанных на XML шаблонов Word, включающих пользовательскую разметку XML, динамические данные Web-сервисов и средства управления правами доступа к отдельным элементам документа Применение смарт-документов для работы с контекстно-обусловленными решениями |
Excel 2003 | Преобразование электронных таблиц в структуры данных XML Использование различных карт управления схемами для импорта/экспорта наборов данных сложной структуры Обновление данных из XML-источников (серверные СУБД и Web-сервисы) Проверка значимости данных в электронных таблицах с помощью XML-схем Создание решений с применением смарт-документов для сложных задач анализа данных и финансовых вычислений |
Access 2003 | Экспорт XML-данных в реляционные таблицы, импорт/экспорт пространств имен XSD, применение XSL-форматирования при операциях экспорта/импорта Интеграция данных и ссылок между таблицами Access и списками Windows SharePoint Services Добавление действий смарт-тегов к любому полю таблицы, запроса, формы, отчета или страницы доступа к данным |
InfoPath 2003 | Создание динамических интерактивных XML-форм с использованием встроенной бизнес-логики Использование существующих схем, Web-сервисов и XML-данных для создания приложений со сложными информационными связями Интеграция приложений и систем на основе простого, интуитивно понятного пользовательского интерфейса Развертывание решений, способных автоматически определять изменения версий и проводить соответствующие обновления Построение решений для совместной работы, интегрированных с Windows SharePoint Services |
FrontPage 2003 | Использование каталога источников данных для управления источниками данных и их визуальным представлением Создание и редактирование XSLT-элементов для созданий HTML-представления данных XML Применение средства Data Source Detail View для просмотра структуры данных, поступающих из внешних источников |
SharePoint Portal Server 2003 | Использование технологии Web Parts для создания настраиваемых, интерактивных средств просмотра бизнес-данных Создание групповых решений путем разработки программных модулей, управляющих функциями сервера через его объектную модель Применение набора Enterprise Application Integration совместно с BizTalk Server для интеграции портала с данными различных корпоративных систем Построение интегрированных решений, где встроенные Web-сервисы используются для доступа к данным SharePoint Portal Server со стороны других приложений |
Visio 2003 | Автоматическая генерация диаграмм на основе данных, получаемых из различных корпоративных источников, включая базы данных и Web-сервисы Выборка данных из диаграмм Visio для использования в Excel, Word, Access, SQL Server и в других инструментах для интеграции с бизнес-процессами и различными системами Встраивание Visio в .NET-решения Встроенное применение компонента Visio Drawing Control в различных специализированных приложениях |
Project 2003 | Создание и редактирование проектов с помощью нового набора Project Data Services API Сбор информации из различных источников с помощью технологий XML Интеграция корпоративных ресурсов с имеющимися бизнес-решениями Управление развертыванием программных решений с помощью Internet Explorer Загрузка и синхронизация информационных ресурсов с применением служб Active Directory |
Live Communications Server 2003 | Сервер представляет собой расширяемую платформу для поддержки коммуникаций в режиме реального времени |
Инструмент разработки расширений
В целом технологии внутреннего программирования в Microsoft Office 2003 по-прежнему базируются на традиционном механизме VBA/COM и соответствующей программной объектной модели офисных приложений. Интегрированная среда разработки самого VBA осталась примерно той же, что и в Office 2000/XP, хотя, конечно, наборы объектов в конкретных пакетах модернизированы в соответствии с их общим функциональным расширением.
Новшества в этой области коснулись технологий создания программных расширений в виде DLL. Ранее эти задачи решались в рамках инструментария VBA/VB 6.0 — специального мастера COM Add-ins, который был доступен разработчикам в составе специального выпуска Microsoft Office Developer. Теперь же, в Office 2003, двоичные расширения создаются на базе архитектуры .NET Framework с применением Visual Studio .NET 2003.
Специального выпуска Developer в составе Office 2003 нет, вместо него как отдельный продукт предлагается набор инструментов Visual Studio Tools for Microsoft Office System (VSTOS). Ориентировочная цена его коробочного варианта — 500 долл., версия Upgrade (для владельцев хотя бы одного инструмента разработки Microsoft) — 200 долл. Наверное, такое выделение инструментария в отдельную поставку будет удобнее для разработчиков, особенно для тех, кто работает с локализованными версиями Office. (Выпуск Developer поставлялся только в английской версии, соответственно, российским разработчикам нужно было приобретать и устанавливать два варианта пакета: английский и русский. Кроме лишней траты денег, это вызывало проблемы, связанные с возможными конфликтами разных языковых версий.)
VSTOS представляет собой расширение для Visual Studio .NET 2003. После его установки в окне New Project появляется дополнительная опция для создания офисных проектов на языках VB.NET и C# (рис. 2). Программирование ведется с помощью классов и объектов, находящихся в пространствах имен Microsoft.Office.Core, Microsoft.Office.Interop и Microsoft.VBE.Interop.Forms. Общая логика разработки программных компонентов примерно та же, что ранее в COM Add-Ins, но все же еще раз подчеркнем, что в Office 2000/XP разработка двоичных расширений велась на том же языке VBA, что и написание макросов, а созданные DLL могли использоваться со всеми офисными приложениями. VSTOS позволит создавать двоичные DLL-расширения, работающие в среде .NET Framework, на языках VB.NET и C#, но только для Word 2003 и Excel 2003.
Рис. 2. После установки VSTOS в окне New Project в среде Visual Studio.NET появляется опция для создания офисных проектов на языках VB.NET и C#.
|
Как отдельный продукт VSTOS, помимо собственно инструментария для VS.NET, включает еще несколько средств. Во-первых, в его состав входит Visual Basic .NET Standard Edition (это несколько усеченный по функциональности Visual Studio .NET, где используется только язык VB.NET). Кроме того, в пакет входят Microsoft Access 2003 Developer Extensions (модули исполнения Access для бесплатного распространения в продуктах независимых разработчиков и дополнительный инструментарий) и SQL Server 2000 Developer Edition.
Работа с XML-документами с помощью InfoPath
В Microsoft Office System 2003 появилось качественно новое приложение — InfoPath 2003, ранее носившее кодовое имя XDocs. Оно поставляется как автономный продукт, а также входит в состав пакета Microsoft Office 2003 Professional Enterprise Edition, распространяемого в виде корпоративных лицензий.
InfoPath предназначен для работы с XML-документами через интерфейс в виде разнообразных динамических форм (рис. 3). Одно из возможных применений InfoPath — сбор и визуальное представление данных, собираемых из разнородных источников: СУБД, бизнес-приложений, Web-сервисов. Создаваемые формы должны иметь расширенную функциональность — например, когда состав, расположение и форматирование полей определяется содержимым получаемых данных. К тому же желательно еще обеспечить проверку значимости информации, учитывать возможные взаимосвязи и т. д.
Рис. 3. Редактирование динамической формы в среде InfoPath 2003.
|
Как правило, для решения таких задач сейчас применяется специальное приложение, в котором функции управления внешним интерфейсом и связями с источниками данных реализованы посредством программного кода (хотя бы с помощью Visual Basic). InfoPath делает то же самое, но только без программирования.
В основе InfoPath лежит широкое использование различных XML-технологий: XML, XPath, XSD, XSLT, XHTML, CSS, DOM, XML DSig, SOAP, WSDL, UDDI. На рис. 4 представлена общая логика формирования динамической формы. Исходные данные получаются из XML-файлов или SOAP-сообщений (Web-сервисов), из которых с помощью XML-схемы создается внутреннее дерево данных DOM (Document object model). Далее с применением таблиц стилей XSLT строится внешний вид документа. Однако нужно подчеркнуть, что все эти программные технологии находятся внутри приложения — пользователь управляет ими через соответствующий визуальный интерфейс. В InfoPath есть также механизм внутреннего программирования при помощи скриптовых языков, что позволяет создавать более функционально насыщенные решения.
Рис. 4. Механизм формирования динамической формы в InfoPath 2003.
|
Следует подчеркнуть, что, в отличие от Web-форм, InfoPath — это "толстый" (rich) клиент, выполняющий, в частности, функции форматирования и редактирования текста, проверки грамматики, оценки значимости вводимых данных, автокоррекции и т. п. Иными словами, общее управление бизнес-логикой сосредоточено на клиентском компьютере. Это, в свою очередь, обеспечивает возможность работы в режиме офлайн в случае полного разрыва связи с внешними источниками данных, а также передачу документов InfoPath между сотрудниками (в том числе через электронную почту).
Учитывая рост числа задач, связанных с обработкой данных, хранимых в разнородных источниках, у InfoPath очень хорошие перспективы применения, тем более что в нем имеются собственные средства программирования (пока на уровне сценариев), позволяющие создавать более функциональные приложения.
Расширение возможностей InfoPath с помощью VS.NET 2003
Наверное, многие заказчики пока еще находятся на стадии изучения возможностей InfoPath. И тем не менее уже можно говорить о востребованности данного продукта на рынке. Одно из следствий этого — намерение Microsoft выпустить его обновленную версию уже в начале нынешнего лета (с предварительной версией (preview) можно познакомиться и сейчас). Хотя пока этот пакет называется InfoPath 2003 Service Pack 1 (SP-1), это не должно вводить в заблуждение пользователей: речь идет не о традиционном пакете обновлений (обычно включающем исправления ошибок и решения проблем безопасности), а о масштабном функциональном расширении приложения. Пожалуй, продукт было бы правильнее назвать новой версией InfoPath 2.0 (скорее всего, название Service Pack должно подчеркнуть, что обновление будет выполняться бесплатно).
InfoPath 2003 Service Pack 1 содержит, в частности, более десятка дополнительных функций проектирования форм и развертывания приложения. Одна из них — новое диалоговое окно Fill Out a Form, которое открывается автоматически при запуске приложения. С его помощью пользователь может выбирать часто используемые формы, в том числе с разбивкой их по различным категориям. Отдельная функция позволяет управлять разными версиями одной и той же формы. Существенно расширены и возможности описания событийных правил, которые выдают сообщения по ходу коррекции отдельных элементов формы. Роли пользователей могут быть связаны с группами безопасности службы каталогов Active Directory.
Изменение средств развертывания форм InfoPath связано в первую очередь с обеспечением вопросов подлинности. Сейчас в случае коррекции настраиваемых форм необходимо их переустанавливать на каждом пользовательском компьютере. В новой версии для удостоверения подлинности используются программируемые сертификаты, благодаря чему можно применять автоматическое подтверждение через серверные службы, например, Windows SharePoint Services. В этом случае шаблоны обновляются сразу, как только пользователь открывает новую или уже существующую форму.
Однако наиболее существенное новшество — возможность функционального расширения InfoPath с помощью Visual Studio .NET 2003. Как известно, одна из ключевых идей InfoPath — реализация задач управления визуальными формами и связями с источниками данных без программирования, только с помощью пользовательского интерфейса. В то же время очевидно, что для создания эффективных приложений на основе этого продукта крайне желательно иметь механизм его гибкой настройки и функционального расширения с помощью средств программной автоматизации. В версии, представленной осенью 2003 г., такие задачи решаются с помощью скриптовых языков (JScript и VBScript). В новом варианте для этого можно будет применять расширения, создаваемые на VB.NET или C# с помощью Visual Studio .NET 2003 и нового инструмента — Microsoft Office InfoPath 2003 Toolkit for VS.NET.
В целом работа с InfoPath Toolkit выглядит примерно так же, как со средствами VS Tools for Microsoft Office. После его установки в диалоговом окне проектов VS.NET появляется новый значок для создания специальных проектов InfoPath Project. Разработка выполняется с помощью новой формы или путем копирования существующей формы InfoPath 1.0. В последнем случае скриптовый код JScript или VBScript автоматически преобразуется в управляемый код C# или VB.NET. Разработчик может прямо в среде VS.NET визуально сравнить исходный и полученный программный код, чтобы проконтролировать правильность выполненного преобразования, основная суть которого — замена механизма позднего связывания исполняемого кода на модель раннего связывания.
Проекты InfoPath содержат ссылку на программные компоненты (классы, интерфейсы, перечисления и т. п.) пространства имен Microsoft.Office.Interop.InfoPath.SemiTrust, с помощью которых разработчик получает доступ ко всем основным внутренним функциям приложения (рис. 5). Например, набор Delegates предоставляет 13 событий, которые позволяют отслеживать действия с кнопками и полями формы, диалоговыми окнами или меню в конструкторе InfoPath. Для управления XML-документами InfoPath используется объект DataDOMEvent, включающий 22 свойства и 14 методов. В целом же поддержка XML-технологий базируется на использовании библиотеки Microsoft XML Core Services (MSXML) 5.0.
Рис. 5. Доступ к внутренним функциям InfoPath 2003 SP-1 выполняется с помощью иерархической системы объектов, представленных в пространстве имен Microsoft.Office.Interop.InfoPath.SemiTrust.
|
В заключение нужно отметить, что InfoPath SP-1 имеет опцию обратной совместимости с текущим вариантом продукта, автоматически исключающую использование новых функций. Это придает надежность созданию форм, работающих в среде разных версий InfoPath. Однако, учитывая новизну данного приложения и его пока не слишком широкое практическое применение, конечно, имеет смысл сразу ориентироваться на применение его новых возможностей. Впрочем, тем, кто хорошо знаком с традициями Microsoft, все это не должно казаться удивительным: давно известно, что применять на практике новые продукты корпорации разумно только после выхода второй версии.