Развитие семейства MS Office в последние годы все в большей степени идет по пути позиционирования в качестве платформы разработки специализированных бизнес-систем. В этом процессе можно выделить несколько этапов.
1. Настройка и автоматизация отдельных приложений (до версии Office 95 включительно).
2. Возможность интеграции приложений как между собой, так и с другими программами. Основой этого стала реализация в Office 97 унифицированной иерархической объектной модели на основе OLE Automation (несколько сот объектов, причем больше половины из них являются общими), создание единого внутреннего механизма программирования приложений на основе VBA, а также интеграция с другими средствами разработки Microsoft, в первую очередь с Visual Basic.
Состав различных выпусков MS Office XP
3. Расширенные возможности интеграции, в том числе на уровне Интернета, за счет использования целого ряда дополнительных средств и технологий, многие из которых поставлялись в составе издания MS Office 2000 Developer (см. PC Week/RE, № 44/ 99, с. 26) или в виде наборов SDK (в частности, Digital Dashboard - см. PC Week/RE, № 6/ 2001, с. 25).
Хотелось бы обратить внимание и на такую тенденцию: если раньше разработка новых программных систем касалась одного из офисных приложений, то сейчас все чаще в роли контейнеров выступают внешние программы, использующие тот или иной функционал семейства Office.
Версия Office XP в целом продолжает это направление развития платформы для разработчиков. Наверное, среди ее новшеств стоит выделить в первую очередь поддержку технологии Smart Tags (интеллектуальные метки), широкое использование XML-стандартов, модифицированные возможности Office Web Components, Web-службы коллективной работы SharePoint Team Services, а также ряд дополнительных инструментов, в том числе для автоматизации управления потоками работы (workflow).
Тем не менее основу систем на базе MS Office по-прежнему составляют возможности офисных приложений (см. таблицу) в их традиционном применении, т. е. в качестве продуктов для конечных пользователей. Этот функционал доступен разработчикам в виде системы объектов, которыми можно манипулировать как внутри самих приложений с помощью среды VBA, так и из внешних программ. С этих новшеств (только ключевых - полный перечень приведен в документации) мы и начнем обзор.
Просто VBA, а не VBA.NET
Наверное, самой приятной новостью является то, что VBA - среда разработки и язык программирования - остались в целом такими же, как в Office 97/2000, радикальные новшества VB.NET (см. PC Week/RE, № 18/ 2001, с. 36) в данном случае обойдут нас стороной. Office XP включает VBA версии 6.3, которая, как говорится в комментариях Microsoft, содержит ряд обновлений по сравнению с VBA 6.0 в составе Office 2000, но на первый взгляд их обнаружить не удалось.
Как и ранее, VBA используется в шести приложениях из состава MS Office - Word, Excel, Access, PowerPoint, FrontPage и Outlook. Кроме того, он применяется в продуктах MS Project и MS Visio, а также распространяется в виде SDK для интеграции в приложениях третьих фирм (знакомую среду VBA можно найти в продуктах десятков ведущих мировых разработчиков ПО).
Однако хотя VBA-программистам и не нужно срочно готовиться к внедрению инноваций VB.NET при переходе на Office XP, обольщаться не стоит: скорее всего это лишь временная отсрочка.
Поддержка XML
Access 2002 и Excel 2002 теперь поддерживают экспорт-импорт данных в формате XML. Это вещь конечно же полезная, хотя ее трудно назвать революционной: те, кому это было нужно, уже давно могли написать достаточно простые собственные программы-конверторы. Правда, встроенные средства обеспечивают создание точной копии (с учетом всех возможных атрибутов), но при этом размер файла, как правило, получается в два-три раза больше по сравнению с “родным” форматом приложения.
Стандарты XML/XSL используются при сохранении офисных документов в виде Web-страниц, а также при реализации многих других компонентов и технологий Office XP (Smart Tags, Data Access Pages, Office Web Components, Web Services и др.).
Новые функции приложений
В библиотеке объектов Access 10 Object Library*1 имеется новый объект Printer, с помощью которого можно получать информацию о принтерах, подключенных к компьютеру, а также управлять их установками. Разработчики Access-приложений могут также воспользоваться дополнительными событиями (например, подключением к источнику данных или отключением от него) при программировании окон просмотра PivotTable и PivotChart. Существенно улучшен и конструктор страниц доступа к данным (Data Access Pages).
_____
*1. Автономные приложения, входящие в состав пакета MS Office XP, имеют номер версии 2002, однако для названий их компонентов обычно используется фактический порядковый номер версии - 10.
В Excel 2002 использована модернизированная модель защиты рабочих листов с более гибкими по сравнению с предыдущими версиями средствами. Разработчик теперь может разрешить пользователям выполнять ряд операций (например, вставку ячеек в защищенные листы или их удаление). Кроме того, можно задавать диапазоны ячеек, доступные для редактирования только определенным пользователям. Панель инструментов Watch Window обеспечивает слежение за содержимым ячеек таблицы. Хотя выводимую информацию нельзя распечатывать непосредственно средствами панели, новый объект Watch позволяет на программном уровне создавать и печатать отчеты на базе содержимого этого окна.
Одно из главных направлений развития FrontPage 2002 - обеспечение коллективной работы с помощью Web-узлов. Оно непосредственно связано с технологией SharePoint Team Services, о которой пойдет речь ниже. Само приложение включает ряд новых объектов, в частности BasicList, Survey и DocumentLibrary для управления потоками данных на групповых Web-сайтах.
Outlook 2002 предоставляет новые возможности по настройке интерфейса и управления многочисленными компонентами этого приложения. Для создания пользовательских интерфейсов (для их обозначения используется термин “view”) применяются XML-схемы, модифицируемые с помощью нового свойства XML объекта View. Например, если выполнить такой код для текущего окна “Контакты”:
Dim olView As Outlook.View
Set olView = Application.ActiveExplorer.CurrentView
Debug.Print olView.XML,
то в окне Immediate получим его XML-описание (рис. 1). Еще два полезных новшества Outlook 2002 - объекты Search и Result для поиска данных (писем, контактов и пр.) и обработки полученных результатов.
Объектная модель Word 2002 пополнилась средствами программного управления рассылкой писем, а также настройкой мастера слияния и рассылки. Новые объекты библиотеки Word 10.0 Object Library позволяют отслеживать все действия при коллективной работе с документом. Например, можно написать макрос, который выдаст все комментарии, записанные тем или иным сотрудником.
Рис. 1. XML-описания окна “Контакты”
Появление большинства новых объектов PowerPoint 2002 связано с анимацией различных фигур. А новый объект Effect позволяет на программном уровне создавать презентации на базе документов Word. Будет полезен также объект Organizational Chart, формирующий диаграммы на основе базы данных о сотрудниках компании.
Как уже отмечалось выше, MS Office включает большой набор общих для всех приложений объектов для работы на программном уровне. Многие из них находятся в библиотеке MS Office Object Library. В ее новую версию включен ряд дополнений, среди которых можно выделить модернизированные файловые диалоговые окна и расширенные средства поиска.
Раньше для операций открытия/сохранения файлов использовался ActiveX-элемент управления Common Dialog (кроме работы с файлами он выполняет многие другие операции, в том числе печать и выбор шрифта) или соответствующие функции Win API. Теперь же Office 10 Object Library содержит собственный объект FileDialog для работы с файловой системой. В дополнение к традиционным окнам Open и Save As он реализует режимы File Picker и Folder Picker, позволяющие получать списки файлов или каталогов (рис. 2).
Рис. 2. Новый объект FileDialog предлагает новые режимы при работе с файловой системой
Два года назад в составе Office 2000 впервые появился ряд ActiveX-компонентов, получивших название Office Web Components. Фактически они реализуют некоторые функции Excel и предназначены для использования в составе HTML-страниц и панелей Digital DashBoard (см. PC Week/ RE, № 6/2001, с. 25). Обновленные варианты этих компонентов обеспечивают более широкие возможности форматирования данных, а также настройки панелей инструментов и меню. Но самое важное то, что для этих компонентов изменилась система лицензирования. Теперь они могут свободно загружаться и устанавливаться поверх HTTP-протокола, не требуя установки Office XP на компьютере.
Smart Tag - технология интеллектуальной обработки текста
В Office XP впервые появилась новая технология интеллектуальной обработки текста - Smart Tags (в русской версии Office она так и называется “смарт-теги”). Ранее Word, Excel и Outlook автоматически распознавали адреса Web-сайтов и электронной почты, преобразуя их в соответствующие ссылки. Теперь эти же приложения версии 2002, а также новый Internet Explorer 6.0 (но только если на компьютере установлен Office XP) могут существенно расширить возможности подключения разнообразных функций, обеспечивающих связь между документами и различными информационными и вычислительными ресурсами.
Идея технологии достаточно проста: пользователь может применять механизм распознавания, связывающий наборы терминов с различными “присоединенными” к ним функциями. В MS Office XP входят готовые англоязычные модули Smart Tags для обработки имен людей, дат, телефонных номеров, адресов и пр. Но главное, что он может создавать собственные наборы. Каждому из них соответствует отдельный “распознаватель” (recognizer), который можно создать двумя способами.
В простейшем случае он формируется в виде XML-файла (для чего может подойти даже самый примитивный текстовый редактор типа NotePad), например, такого вида:
<?xml version=”1.0” encoding=”Windows-1251”?>
<FL:smarttaglist xmlns:FL=”urn: schemas-microsoft-com:smarttags:list”>
<FL:name>Basic-программирование</FL:name>
<FL:lcid>1033</FL:lcid>
<FL:description>Basic Language</FL:description>
<FL:smarttag type=”urn:schemas-andy-com:visualbasic#terms”>
<FL:caption>Справка по Basic-программированию</FL:caption>
<FL:terms>
<FL:termlist>QuickBasic, Visual,Basic,Бейсик</FL:termlist>
</FL:terms>
<FL:actions
<FL:action id=”GotoMyWebSite”>
<FL:caption>Посмотреть Web-сайт “VB + VBA House”</FL:caption>
<FL:url>http://www.visual.2000.ru/ develop/vb</FL:url>
</FL:action>
<FL:action id=”SendEmail”>
<FL:caption>Отправить электронное письмо</FL:caption>
<FL:url>Mailto:akolesov@ online.ru</FL:url>
</FL:action>
</FL:actions>
</FL:smarttag>
</FL:smarttaglist>
После записи файла (их может быть несколько) в специальный каталог для хранения списков Smart Tags при просмотре и вводе текста все слова, перечисленные в теге <FL:terms>, будут автоматически выделяться и подчеркиваться точками. Если к такому слову подвести курсор мыши, то появится кнопка Smart Tag Actions (“Действия для смарт-тегов”), после щелчка на которой выводится меню с перечнем доступных операций (рис. 3).
Рис. 3. Так работает технология Smart Tags
В заголовке меню указано имя “распознавателя”, среагировавшего на данное слово. Две нижние строки меню представляют стандартные служебные операции, а выше располагаются описанные нами в тегах <FL:action> пользовательские операции. Для программирования таких списков смарт-тегов может быть применен более широкий набор операций, обеспечивающих, например, автоматическое обновление содержимого файла. Однако очевидно, что в случае XML-описаний дополнительная обработка ограничивается весьма узким кругом операций, связанных в основном со ссылками на Web-ресурсы.
Существенно более широкие возможности предоставляет второй вариант создания “распознавателя” в виде ActiveX DLL: здесь для обработки можно использовать сколь угодно сложный программный код с применением библиотеки типов Microsoft Smart Tags 1.0, входящей в состав Office XP. Подробное описание технологии разработки смарт-тегов и примеров ее реализации находится в наборе Smart Tag SDK (http://msdn/ microsoft.com/office).
Судя по всему, Smart Tags - это очень перспективная технология, но для оценки ее реальных достоинств и изучения практических примеров ее применения требуется время. К тому же некоторые элементы технологии выглядят пока не очень простыми. В частности, это относится к механизму регистрации “распознавателей” и решению конфликтов при использовании нескольких разных программ обработки смарт-тегов.
Сейчас механизм реализован на уровне операционной системы: все приложения работают с единым набором “распознавателей”. Однако была бы крайне полезна возможность подобной интеллектуальной обработки разных групп терминов с помощью внутреннего механизма VBA конкретного приложения. Это не только упростило бы разработку “распознавателей”, но и позволило бы выполнять более гибкую настройку функциональности (на уровне конкретных документов). Но все равно для первой версии технология выглядит достаточно солидно, хотя всем известно, что промышленная работа с новым механизмом обычно начинается с появлением версии 2.0.
SharedPoint Team Services для создания групповых Web-сайтов
Весной нынешнего года Microsoft представила новую серверную технологию создания Web-порталов, получившую название SharePoint и реализованную в двух вариантах: SharePoint Portal Server и SharePoint Team Services. Технология появилась не на пустом месте: она базируется на IIS, Office Server Extensions, Digital DashBoard или тесно интегрируется с рядом других технологий.
SharePoint Portal Server - это самостоятельный программный продукт из состава серверов Microsoft, предназначенный для развертывания Web-порталов масштаба предприятия. Набор SharePoint Team Services (раньше он имел рабочее название Office Web Server) ориентирован на создание Web-серверов для обеспечения коллективной работы группы (до 75 человек) и сейчас поставляется (в том числе Office XP Professional Special Edition и Office XP Developer) только в составе FrontPage 2002. Предполагается, что эта технология войдет в состав будущих версий операционных систем Windows Server.
SharePoint Team Services не следует воспринимать просто как усеченный вариант серверного продукта: уступая последнему по производительности и функциональности, он имеет свои преимущества, так как учитывает особенности создания и поддержки Web-сайтов для рабочих групп. Например, он предлагает более простую и эффективную интеграцию с FrontPage 2002, может работать в среде настольной OC Windows 2000 Professional (но с установленным IIS 5.0), не требует наличия клиентских лицензий.
Фактически SharePoint Team Services (рис. 4) представляет собой расширенный вариант набора FrontPage Server Extensions 2002 и базируется на его архитектурных решениях. (Сама архитектура FrontPage Server Extensions 2002 не претерпела существенных изменений по сравнению с версией 2000.) Однако следует обратить внимание и на существенные отличия SharePoint Team Services.
Рис. 5. Новые средства визуального описания бизнес-процессов
1. В качестве хранилища данных помимо файловой системы можно использовать базы данных SQL Server или MSDE (последняя входит в состав поставки).
2. Программным интерфейсом может быть только ISAPI, а Web-сервером - MS IIS. Соответственно все это работает лишь на платформе Windows. (FrontPage Server Extentions поддерживает также CGI, FrontPage Attache и может работать на многих популярных UNIX-платформах).
3. Не поддерживается модель “создавай, а потом публикуй” - работа ведется в онлайновом режиме.
Дополнительные средства выпуска Office XP Developer
Вариант MS Office XP Developer в первую очередь представляет интерес для тех, кто делает достаточно серьезные бизнес-приложения, предназначенные для распространения (внутрифирменного или коммерческого). Как и раньше, он включает большой набор средств, объединенных в набор Developer Tools.
Отдельную группу составляют расширения среды разработки VBA:
- создание автономных VBA-проектов (библиотек ActiveX DLL) и специальных расширений COM AddIn для приложений Office;
- возможность использования дополнительных ActiveX-конструкторов помимо набора готовых таких конструкторов, а также полезных мастеров и утилит в составе пакета. Среди новинок следует отметить DashBoard Project для разработки компонентов Web Parts.
Кроме того, пакет включает целый ряд автономных приложений. Это средства поддержки групповой разработки Visual SourceSafe, а также специальные издания для разработчиков SQL Server 2000 и Exchange 2000 Server (только для проектирования и тестирования решений). Особо хотелось бы отметить два новых инструмента Microsoft для создания приложений управления бизнес-процессами (рис. 5) - WorkFlow Designer for SQL Server и WorkFlow Designer for Exchange 200 Server.
Рис. 4. Архитектура SharePoint Team Services
В Developer входят и модули поддержки для дистрибуции Access-приложений, средства создания справочных систем и подробная документация для разработчиков на компакт-дисках.*