Microsoft Office 97 - инструмент для разработчиков бизнес-приложений
Офисные пакеты от версии к версии постоянно наращивают свою функциональную мощность. Но все же складывается впечатление, что в последние годы магистральным направлением развития этих пакетов стало расширение возможностей для создания на их основе бизнес-приложений, ориентированных на решение специализированных задач. И хотя по-прежнему большинство офисных пакетов находит применение непосредственно у конечных пользователей, они все больше становятся самостоятельным инструментом разработчиков.
Еще в начале 90-х годов объединение различных офисных программ в единый комплект носило чисто механический характер. Выгода от использования такого комплекта главным образом заключалась в экономии средств (“все в одной коробке, но дешевле, чем по отдельности”) и некоторой унификации интерфейса (от одного разработчика). Теперь же мы имеем не просто глубоко интегрированные программы со множеством общих компонентов, но связанные между собой средства создания на их основе новых бизнес-приложений.
О серьезном позиционировании пакетов семейства MS Office в качестве средств разработки Microsoft объявила еще в 1994 г., выпустив версию Office 4.0, функциональные возможности которой были существенно расширены в Office 95. По сведениям Microsoft, сейчас в мире насчитывается более 1 млн. программистов, создающих бизнес-приложения на основе ее офисных пакетов. Это позволяет говорить, что данная область деятельности превратилась в самостоятельное направление профессиональной разработки.
Появление версии Office 97 свидетельствует о принципиально новом этапе использования офисных систем в качестве средств разработки. В основном это связано с тем, что именно сейчас Microsoft смогла завершить в целом объединение средств программирования отдельных пакетов в единую среду разработки на базе Visual Basic for Application (VBA), одновременно существенно расширив объектные модели отдельных приложений комплекта.
Поэтому, хотя издание Office 97 Professional, как и раньше, включает в себя все необходимое для создания деловых приложений, вполне закономерно появление в рамках Office 97 специальной редакции для разработчиков Developer Edition, которая обладает целым рядом расширенных возможностей.
VBA - путь развития
Средства программирования в офисных пакетах появились довольно давно. Однако традиционно они предназначались в основном для создания макрокоманд, позволявших автоматизировать специализированные процедуры обработки документов. Более того, часто сам код макрокоманд был недоступен конечному пользователю, который обычно применял режим “записи макрокоманды”. И хотя чаще всего основой таких внутренних средств программирования являлся синтаксис языка Бейсик, проблема их унификации не была очень актуальной.
Ситуация изменилась на рубеже 1993 - 1994 гг. С одной стороны, необходимость развития “программируемых” возможностей прикладных программ (это относится не только к офисным системам, но и к широкому кругу специализированных пакетов) потребовала существенного усложнения среды программирования. В данном случае путь “изобретения собственного велосипеда” был бесперспективным. С другой стороны, развитие технологии 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 (новая версия справочной системы) могут рассматриваться как огромный набор - свыше пятисот - унифицированных объектов. При этом более половины этих объектов стали общими для всех приложений.
Важным моментом является включение в состав 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 дороже локализованных.