Главная страница Visual 2000 · Общий список статей

MS Office 2000 для разработчиков: достижения и проблемы

Андрей Колесов

© 1999, Андрей Колесов
Авторский вариант. Статья опубликована c некоторыми сокращениями и незначительной литературной правкой в PC Week/RE № 44/99, с. 26. см. PC Week/RE Online.

MS Office 97 — новый этап развития офисных систем
MS Office 2000 обыкновенный и для разработчиков
Что нового в обычном MS Office
В среде VBA
Теперь об Office 2000 Developer
Резюме


MS Office 97 — новый этап развития офисных систем

Появление три года назад MS Office 97 стало знаменательным рубежом в развитии семейства офисных продуктов Microsoft: впервые пакет был представлен в качестве единой платформы для создания бизнес-приложений, ориентированных на решение специализированных задач пользователей (см. PC Week/RE N 25/97, c.33). Новое позиционирование MS Office подчеркивалось также появлением в нем специального выпуска для разработчиков — Developer Edition.

Поначалу мысль об использовании офисных приложений в качестве средства разработки казалась многим довольно странной, но спустя некоторое время уже воспринималась как вполне логичная. Свидетельством тому стало появление значительного числа коммерческих и внутрифирменных решений, реализованных на базе MS Office, а также использование Visual Basic for Applications (VBA) и принципов объектной модели MS Office в продуктах независимых разработчиков (см. PC Week/RE, N 40/99, с.3).

Итак, тезис о позиционировании MS Office 97 в качестве платформы разработки, был в целом принят программистами и пользователями. В то же время известно, что серьезное восприятие нового продукта рынком начинается только со "второй версии". Именно этим объясняется интерес разработчиков к MS Office 2000 и изучению его новшеств для программистов.

В начало статьи

MS Office 2000 обыкновенный и для разработчиков

В Office 2000 увеличилось количество отдельных приложений и расширилось число вариантов выпусков пакета (Standard, Small Business, Professional и Premium). Эти выпуски отличаются только составом приложений, функциональность каждой отдельной программы (например, Word) одинакова во всех вариантах. В России все эти продукты распространяются в русскоязычных версиях.

Особняком стоит выпуск Developer, который содержит вариант Premium (4 компакт-диска), а также дополнительные средства для разработчика (1 компакт-диск) и внушительную электронную документацию MSDN Library на трех дисках. В него входят только англоязычные программы и документы.

Сразу уточним: все выпуски Office 2000 включают VBA и ряд других средств программирования, которых будет вполне достаточно для большинства разработчиков. Расширения версии Developer реально понадобятся тем, кто занимается созданием профессиональных приложений. Более того, вполне возможно, что такие дополнения у них уже имеются или их можно приобрести другими способами.

В начало статьи

Что нового в обычном MS Office

Самое главное — расширилось число приложений, использующих единый механизм программирования и среду VBA: к Excel, PowerPoint и Word добавились Access, Outlook и FrontPage. Напомним, что в версии 97 программа Outlook имела объектную модель, которой можно было управлять только извне с помощью, например, VB или VBScript, а Access 97 использовала собственный вариант Basic и среды разработки.

Мы сейчас не будем подробно останавливаться на новшествах Access 2000, так как в отличие от других офисных приложений Access изначально был средством разработки и поэтому его функциональность нужно обсуждать отдельно. Отметим только, что специфический язык Access Basic сейчас заменен на универсальный VBA, среда которого используется для программирования макросов и модулей кода. Однако Access 2000 использует собственный набор форм и конструктор их формирования.

В Access 2000 включен новый вариант механизма доступа к данным Jet 4.0, который обеспечивает поддержку UNICODE, блокировку на уровне строк, поддержку технологии OLEDB, двустороннее тиражирование Jet/SQL Server 7 и ряд других функций. В то же время он может использовать новое средство MSDE (Microsoft Data Engine), которое по существу является настольной версией SQL-сервера и обеспечивает гибкий переход в случае необходимости к SQL Server 7.0.

В новой версии изменен формат файлов баз данных. Старые базы данных могут читаться и преобразовываться, но записываться они будут только в новом виде. Обратных конверторов из 2000 в 97 нет и, кажется, не предвидится.

Одно из ключевых новшеств Office 2000 — единая для всех приложений модель подключения программных расширений на основе технологии COM Add-In, которая должна серьезно помочь разработчикам в создании бизнес-приложений и универсальных дополнительных средств для MS Office.

Общим направлением офисных пакетов (с точки зрения традиционного пользователя) является их нацеленность на применение Internet и HTML-стандартов. В этой связи нужно отметить возможность использования интегрированного в среду приложений редактора сценариев (кроме Outlook), набор ActiveX-компонентов для публикации данных в Web, серверные расширения для управления онлайновыми дискуссиями, объект Data Access Page для отображения информации из баз данных в среде браузера, а также ряд других объектов и функций.

Новинкой является появление дополнительных средств защиты от вирусов. Одно из них предназначено непосредственно для конечного пользователя: использование механизма сертификации VBA-проектов, включенных в документ с помощью электронной подписи. Вариант, реализованный в Office 2000, очень полезен.

К сожалению, в русской версии этот механизм функционирует пока только на 50 процентов. Во-первых, из-за ошибок не работает утилита SelfCetr.exe, создающая сам сертификат. Ее исправленный вариант уже имеется, его можно получить на российском сервере Microsoft (www.microsoft.com/rus) или в ближайшем пакете обновлений. Во-вторых, имеются проблемы с заменой цифровой подписи при исправлении проекта.

В начало статьи

В среде VBA

В пользовательском интерфейсе среды VBA все осталось в целом без изменений, но внутри произошли серьезные перемены. Как утверждает Microsoft, в Office 2000 исчезла грань, разделявшая ранее VBA и обычный VB. Это означает, что в VBA 6 (Office 2000) появились не только новые функции VB 6, но и некоторые возможности, которые были в VB 5, но отсутствовали в VBA 5. В частности, появились набор новых функций обработки строк, объекты FileSystemObject и Dictionary, функция AddressOf (передача адреса подпрограммы в DLL-функции), возможность применения немодальных форм, переопределения размеров динамических массивов и пр.

Для доступа к базам данных можно теперь использовать технологию OLEDB/ADO — Office 2000 включает последнюю версию библиотеки ADO 2.1 (о ней см. PC Week/RE N 28/99, c. 27).

Тем не менее, тезис о тождественности VBA и VB является по крайней мере преждевременным. Microsoft не преодолела (скорее всего не захотела устранить) различия в организации среды разработки, в работе конструкторов форм, в совместимости форматов файлов с исходными модулями, в использование программных расширений и пр. (см. рисунок, а также ниже о VBA-мастерах). И это создает серьезные проблемы для разработчиков.

В начало статьи

Теперь об Office 2000 Developer

На наш взгляд, принципиальным новшеством является возможность создания автономного VBA-проекта: ранее программный код мог включаться только в состав документа или шаблона того или иного офисного приложения. Теперь разработчик может создавать как обычные ActiveX DLL, в том числе в том числе нечто подобное Web- и DHTML-приложениям, так и универсальные расширения COM Add-In для офисных пакетов. Кроме того, конструктор COM Add-In может использоваться в VB 5.0 и 6.0. Исходный код VBA-проектов хранится в виде двоичных файлов, которые, к сожалению, не читаются в VB.

Выпуск Developer содержит набор дополнительных элементов управления для работы с базами данных OLEDB/ADO. Разработчикам будет также полезен набор конструкторов Add-In, которые можно подключать через команду Add-In Manager. Среди них особенно хотелось бы выделить утилиту VBA Code Librarian, обеспечивающую работу с иерархической библиотекой исходных текстов (там могут быть не только программные коды). С программой поставляется довольно большая база данных CodeLib.mdb от Microsoft. Остальные расширения представляют собой специализированные мастера для VBA: Инструменты Package and Deployment Wizard, WinAPI Viewer, Source Code, Code Comment, Error Handler, Multi-code Import/Export и String Editor.

Однако здесь опять нужно подчеркнуть проблемы совместимости VBA и VB — оказалось, что мастера и утилиты VB не работают в среде VBA и наоборот.

Кроме того, выпуск Developer содержит несколько автономных приложений для разработчиков: Visual SourceSafe (поддержка групповой разработки), HTML Help Workshop (создание справочных систем в в новом стандартном формате Windows HTMLHelp), Answer Wizard Builder (интеграция запросов на естественном языке к электронной справке), MS Agent SDK (комплект программ для создания изображений, используемых в Office Assistants), Access Runtime (модули поддержки времени выполнения для дистрибуции Access-приложений), а также полный набор MSDE для разработчика.

В дополнение ко с\всему вышеперечисленному в состав версии Developer входят три книги и весьма объемная электронная справочная системы в виде MSDN Library. Эта документация, конечно, является очень полезной для разработчика, но...

К сожалению, тенденции развития системы документации в средствах разработки Microsoft вызывают очень большие опасения — их качество падает от одной версии к другой. Этот вопрос также нужно обсуждать отдельно, но все же тезисно можно отметить следующие негативные моменты:

1. В этом обилии информации очень трудно ориентироваться и найти то, что нужно. Создается впечатление, что в переплетениях связей запутались сами авторы. Довольно много ошибок.

2. Несмотря на рост мощности компьютера, быстродействие работы справочной системы неуклонно падает.

3. Объем информации увеличивается, но содержимое по конкретным темам сокращается. Именно поэтому крайне желательно сохранять документацию (и бумажную, и электронную) по всем предыдущим версиям пакетам.

4. Что самое удивительное — сокращается функциональность справки. Например, еще в Office 97 пользователь имел возможность создавать собственные закладки, дописывать свои комментарии к справке, копировать содержимое. В Office 2000 он лишен этих полезных функций.

Конечно, очень похвально намерение создать единую справочную систему по VBA и VB. Однако в условиях отмеченных выше (далеко не всех) примеров их несовместимости, такое объединение сейчас приводит к откровенной путанице. Например, весьма неприятным сюрпризом явилось то, что после установки MSDN Library Office 2000 Developer именно эта библиотека стала вызываться при обращении к справке в VB 6.0 (вместо MSDN Library Visual Studio 6.0), хотя такое обновление по разным причинам крайне нежелательно.

В начало статьи

Резюме

1. Office 2000 расширяет возможности разработки приложений по сравнению с Office 97. В первую очередь отметим универсальную модель расширений COM Add-In, механизм защиты от макровирусов и новую версию среды программирования VBA 6.0.

Однако целый ряд очевидных проблем пока не решен (скорее всего, по маркетинговым причинам Microsoft и не собирается их решать). Это касается различий в реализации расширений, ориентированных на конкретное приложение (например, логика настройки Word по-прежнему заметно отличается от Excel). Еще более серьезным вопросом является сохраняющаяся несовместимость VBA и VB по форматам исходных модулей, составу и функциям элементов управления, технологии подключения расширений и пр.

2. Дополнительные возможности версии Developer могут быть очень полезны для тех, кто занимается созданием профессиональных систем на базе MS Office. Однако следует иметь в виду, что многие из них, возможно, уже имеются у разработчиков, другие можно приобрести по другим каналам, а третьи — лучше взять не у Microsoft.

3. Качество справочной системы оставляется желать много лучшего. Интеграция справок по VBA и VB сегодня выглядит явно преждевременно на фоне сохраняющихся различий в двух системах программирования.

В начало статьи