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

Microsoft Office 97 — инструмент для разработчиков бизнес-приложений

А.Колесов, О.Павлова

© 1997, Андрей Колесов, Ольга Павлова
Авторский вариант. Статья была опубликована c незначительной литературной правкой в еженедельнике PC Week/RE (№ 25/97, с.33) PC Week/RE Online

Офисные пакеты от версии к версии
VBA — путь развития
VBA 5.0 в Office 97 и продуктах третьих фирм
Новые технологии для разработчиков
Разработка приложений в Office 97
Завершая краткий обзор...
ПРИЛОЖЕНИЕ: Office 97: отличие редакций Professional и Developer


Офисные пакеты от версии к версии

Офисные пакеты от версии к версии постоянно наращивают свою функциональную мощность. Но все же складывается впечатление, что магистральным направлением их развития в последние годы является расширение возможностей создания на их основе бизнес-приложений, ориентированных на решение специализированных задач пользователей. И хотя по-прежнему основной объем применения офисных пакетов приходится на конечных пользователей, они все в большей мере становятся самостоятельным инструментом разработчиков.

Еще в начале 90-х годов объединение различных офисных программ в единый комплект носило чисто механический характер. Выгода для пользователя заключалась в основном в экономии средств ("все в одной коробке, но дешевле, чем по-отдельности") и некоторой унификации интерфейса от одного разработчика. Теперь же мы имеем не просто глубоко интегрированные между собой программы с большим числом общих компонентов, но связанные между собой единые средства создания на их основе новых бизнес-приложений.

О серьезном позиционировании пакетов семейства MS Office в качестве средств разработки Microsoft объявила еще в 1994 г., выпустив версию Office 4.0, функциональные возможности которой были существенно расширены в Office 95. По сведениям Microsoft сейчас в мире насчитывается более 1 млн. программистов, создающих бизнес-приложения на основе ее офисных пакетов, и можно уверенно говорить, что данная область деятельности превратилась в самостоятельное направление профессиональной разработки.

Появление в начале 1997 г. версии Office 97 позволяет говорить о принципиально новом этапе использования офисных систем в качестве средств разработки. В основном это определяется тем, что именно сейчас Microsoft смогла закончить в целом интеграцию средств программирования отдельных пакетов в единую среду разработки на базе Visual Basic for Application (VBA), одновременно существенно расширив объектные модели отдельных приложений комплекта.

Поэтому хотя как и раньше издание Office 97 Professional включает все необходимое для создания деловых приложений, вполне закономерным выглядит выпуск в рамках Office 97 специальной редакции для разработчиков Developer Edition, которая обладает целым рядом расширенных возможностей (см. врезку и таблицу).

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

VBA — путь развития

Средства программирования в офисных пакетах появились довольно давно. Однако традиционно они имели чисто внутреннее назначение и были предназначены в основном для создания макрокоманд, позволявших автоматизировать специализированные процедуры обработки документов конечным пользователем. Более того, часто сам код макрокоманд был недоступен конечному пользователю, который обычно пользовался режимом "записи макрокоманды". И хотя чаще всего в качестве основы таких внутренних средств программирования использовался синтаксис языка Бейсик, проблема их унификации между собой была не очень актуальна.

Ситуация изменилась на рубеже 93-94 гг. С одной стороны, необходимость развития "программируемых" возможностей прикладных программ (это относится не только к офисным системам, но и широкому кругу специализированных пакетов) потребовали существенного усложнения среды программирования. В данной ситуации путь "изобретения собственного велосипеда" был бесперспективным. С другой стороны, развитие технологии OLE Automation потребовало унификации разных средств программирования, которые превращались из внутреннего инструмента в механизм взаимодействия приложений между собой.

Именно в этой ситуации в конце 1993 г. корпорация Microsoft объявила о намерении создать универсальную систему программирования для прикладных программ на основе своего средства разработки Visual Basic, успех и перспективы развития которого стали к тому времени очевидными. При подготовке данного материала, роясь в своем архиве, мы нашли в журнале Visual Basic Projgammer's Journal за декабрь 1993 г. первую статью, в которой упоминалось название VBA. А на полях — такой комментарий тех же времен, сделанный карандашом моим коллегой-разработчиком: "Это означает, что VB становится стратегическим средством разработки Microsoft и они гарантируют, что никогда не бросят его развитие и ему не грозит участь Turbo Basic." (А.К: в конце 80-х годов Borland прекратил развитие этой системы, развивавшейся ранее очень успешно.)

Однако реализация идеи единого инструмента программирования оказалась не такой простой. Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других приложениях — Word 6.0 и Access 2.0 — были собственные варианты Basic. Более того, VBA 1.0 довольно сильно отличался (причем имея ряд существенных преимуществ) от используемой тогда универсальной системы VB 3.0.

Реальное сближение между VB и VBA произошло осенью 1995 г., когда были выпущены VB 4.0 и Office 95. В составе последнего VBA 2.0 был уже включен в Access 95, однако Word тогда по-прежнему имел собственный WordBasic, а каждое приложение пакета использовало собственную среду программирования.

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

VBA 5.0 в Office 97 и продуктах третьих фирм

Новая версия VBA 5.0 реализует тот же самый языковый механизм и среду разработки, что и система VB 5.0, фактически являясь отдельной редакцией Application Edition, предназначенной специально для включения в прикладные программы. Он входит в состав отдельной компоненты в Office 97, редакции Professional и Developer. Более того, Microsoft продвигает VBA в качестве стандарта отрасли для управления программируемыми приложениями, объявив о возможности его лицензирования. Это нашло поддержку со стороны многих компаний-разработчиков (в частности таких известных, как Autodesk, Adobe, SAP), и сегодня уже сотни программных продуктов третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology".

Из российских фирм-разработчиков пока еще никто не лицензировал VBA, но, наверное, это вопрос времени, так как многие из них уже давно используют внутренние средства программирования в прикладных программах, выполненных также в стиле "Visual Basic" (например, фирма "1С" в своих последних продуктах серии "1С:Предприятие").

VBA 5.0 может работать не только как среда разработки, но также как в качестве сервера, так и в качестве контейнера ActiveX Automation (в последнем случае — в том числе и в качестве элементов управления AxtiveX).

В Office 97 единый языковый механизм VBA используют все основные приложения Office 97: Word, Excel, PowerPoint и Access (за исключением Outlook, который использует VBScript, но это гораздо ближе к VB, чем прежний WordBasic). Отдельной компонентой VBA является интегрированная среда разработчика Visual Basic Editor (VBE), в которой выполняется написание кода и создание диалоговых окон и форм. VBE используется в Excel, Word и PowerPoint. Access использует собственную среду, так как разработка приложений в нем связана с его спецификой работы с базами данных.

По сути VBE является отдельным приложением, которое после установки Office 97 становится доступным для всех приложений данного компьютера и может запускаться в том числе и из главного меню Windows 95. При написании кода в качестве готовых программных компонентов могут использоваться BAS-файлы, созданные в VB, VBE или Access.

Сохраняя общность интерфейса с VB 5.0, VBE имеет и ряд важных особенностей, связанных с его спецификой работы в комплексе с приложениями. Именно поэтому в качестве дизайнера форм он использует еще один автономный программный компонент VBA — Microsoft Form 2.0 Object Library, который позволяет создавать диалоговые окна и панели любой сложности и включать их в офисные приложения. Логика создания интерфейса в MS Forms 2.0 та же, что и в обычном VB, при этом новый дизайнер форм использует собственный набор элементов управления, который может быть дополнен любыми другими элементами ActiveX.

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

Новые технологии для разработчиков

Ключевой идеей создания платформы разработки на базе приложений (речь идет не только о пакете Office 97) является реализация каждого программного продукта в виде некоторого набора объектов, доступных как изнутри, так и извне через механизм ActiveX Automation. В частности, именно таким образом осуществляется расширение стандартного языка VB специфическими функциями различных приложений.

Еще в Office 95 объектные модели отдельных приложений не имели никакого сходства друг с другом, к тому же Excel 95 включал сотни объектов, а Word 95 — только один. Принципиальным новшеством Office 97 является то, что теперь с точки зрения программирования все его приложения и компоненты, в том числе Outlook, Office Art, все Office Command Bar, средства поддержки WWW и даже Office Assistant (новая версия справочной системы), могут рассматриваться как огромный набор - более пятисот — унифицированных объектов. При этом свыше 50% из них являются общими для всех приложений.

Важным моментом является включение к состав Office 97 дополнительных средств работы с базами данных в виде объектной модели Data Access Objects (DAO), которая поддерживает новые возможности механизма Microsoft Jet Database 3.5. Это является очень хорошей альтернативой используемым ранее для доступа к БД приложениям на базе Access.

С помощью DAO 3.5 теперь можно реплицировать БД в Internet, непосредственно управлять базами данных вместо работы с папками, в которых они находятся, а также создавать частичные точные копии, использующие фильтры для синхронизации подмножеств записей. Программа Microsoft Replication Manager позволяет создавать точные копии баз данных, отправлять их другим пользователям и обмениваться модификациями данных и структуры БД между этими копиями. Кроме того, DAO 3.5 включает режим прямой связи с источником ODBC-данных (без загрузки Jet Database Engine в память), который может эффективно применяться при работе в среде "клиент/сервер".

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

Разработка приложений в Office 97

Довольно условно можно выделить два вида разработки бизнес-приложений с использованием Office 97:

1) разработка специализированных программных комплексов, в которых используются объекты пакета;

2) разработка приложений, представляющих фактически модифицированный вариант работы в среде определенного офисного продукта.

Принципы реализации первого варианта приложений уже хорошо известны, хотя в Office 97 эти возможности существенно увеличились за счет расширенного набора объектов.

Что касается второго варианта, то здесь также имеются две категории приложений. С одной стороны, это приложения, связанные с модификацией пользовательского интерфейса продукта, установленного на конкретном компьютере. С другой, — это разработка специализированных приложений (например создание системы заполнения персональных карточек на базе Word), которые могут переноситься на любые другие рабочие места, т.е. могут являться полноценными коммерческими продуктами. Нововведения Office 97 в основном расширяют возможности именно второй категории программ.

В отличие от автономных исполняемых файлов, типичных для VB-приложений, приложения на базе Office запакованы в различные "контейнеры", связанные с конкретным продуктом: шаблоны, рабочие книги и add-ins (дополнительные средства расширения) для Excel; шаблоны, документы и add-ins для Word; add-ins для PowerPoint; базы данных, мастера и add-ins для Access.

Ходя все продукты могут хранить код в индивидуальных документах (например в рабочих книгах Excel), зачастую создаваемые приложения требуют специального представления для их повторного использования. Это осуществляется с помощью шаблонов и add-ins.

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

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

Завершая краткий обзор...

Следует отметить, что хотя Microsoft включила много новых свойств в Office, тем не менее остался целый ряд функций, которые было бы полезно внести туда. Например, было бы хорошо унифицировать работу в Access с остальными приложениями комплекта. Было бы хорошо также иметь модули поддержки для других Office приложений, а не только для Access. Сегодня приложения, созданные на базе документов Word или рабочих книг Excel, требуют обязательного наличия соответствующих программ у пользователя.

Не помешало бы и обеспечение работы программ просмотра офисных документов для различных платформ, а не только Windows 95/NT. И наконец, традиционное пожелание: крайне желательно, чтобы Office использовал меньше дискового пространства и ресурсов Windows.

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

ПРИЛОЖЕНИЕ: Office 97: отличие редакций Professional и Developer

Редакция Professional включает все необходимое для разработки бизнес-приложений. Однако в Office 97 Developer Edition (ODE) имеется несколько дополнительных инструментов, книг документации и других ресурсов, которые могут оказаться весьма полезными. Часть из них входит в другие продукты Microsoft (например в состав комплекта Access Developer Toolkit или VB 5.0 Professional). Однако некоторые материалы, такие как Office 97 Object Model Reference Guide и Microsoft Office 97/VBA Programmer's Guige, можно получить в виде книг только в ODE.

Следует иметь в виду, что ODE будет распространяться исключительно в английском варианте (локализованной версии не будет). Его стоимость по прейскуранту фирмы "Диалог.СФТ" равна 849 долл. Вариант Upgrade можно приобрести за 573 долл. (от Office 95 Pro) или за 317 долл. (от Office 97 Pro). Любопытный момент — для отечественных пользователей дешевле купить русскую версию Office 97 Pro, а потом в случае необходимости доплатить за ODE. Для английских версий такой вариант не окажется оптимальным — английские версии почти на 300 долл. дороже локализованных.

Компоненты

Редакции MS Office 97

 

Professional

Developer

Программируемые компоненты

Приложения - Excel,Word,PowerPoint, Access, Outlook

+

+

Свыше 500 программируемых объектов

+

+

Средства программирования

VBA

+

+

Microsoft Forms 2.0

+

+

Visual Basic Editor

+

+

Средства Jet Database Engine 3.5

Репликации в Internet (синхронизация данных)

+

+

Data Access Objects (объектная модель доступа к данным)

+

+

ODBCDirect (новый режим работы в среде "клиент/сервер"

+

+

Диспетчер точного копирования (Replication Manager)

-

+

Поддержка частичных репликаций

-

+

Технология ActiveX

Элементы управления ActiveX, поддерживаемые в документах и формах

+

+

Новые 32-разрядные элементы управления ActiveX, в т.ч. для Internet

-

+

Дополнительные средства разработчика

Модули поддержки для дистрибуции приложений Access и Graph

-

+

Setup Wizard (мастер создания дистрибутивов)

-

+

Средства интеграции Access с программами управления версиями

-

+

Просмотр функций Win32 API

-

+

Windows 95 Help Compiler (создание Справочной системы)

-

+

Документация и техническая информация

Office 97 Object Model Reference Guide

-

+

Microsoft Office 97/VBA Programmer's Guide

-

+

Building Appliactions with Microsoft Access 97

-

+

Статьи, описания, примеры кода (в электронном виде)

-

+

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