Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

26. История развития объектных моделей.

История развития насчитывает ряд этапов.

1.Разработчики Microsoft предложили создавать все свои приложения на основе компонентной модели (СОМ-Component Object Model–модель объектных компонент), независимую от языка программирования, на котором писался код компонента. Спецификация СОМ определяла «правилаповедения» для программного объекта в оперативной памяти компьютера и протокол взаимодействия объекта с окружающей программной средой. С появлением СОМ был заложен фундамент многократно используемых компонент, которые могли участвовать во многих проектах, не меняя своего кода.

2. Следующим этапом совершенствования объектной модели было появление на свет технологии OLE (Object Linkingand Embedding–связывание и внедрение объектов).

Она позволяла взаимодействовать с любыми программами, которые внедрялись в Ваше приложение в качестве объектов, например, WordArt, MPlayer и пр.

Посредством OLE можно было помещать в текстовый процессор (приложение-приемник, контейнер) изображение из графической программы (приложения-источника), и редактировать его, не покидая текстовый процессор. При внедрении объекта все данные копировались в контейнер. При связывании в контейнер записывалась только информация о приложении-источнике, из которого был взят вставляемый объект.

Приложения-приемники стали именоваться COM-клиентами, OLE-клиентами, контроллерами автоматизации, а приложения-источники–COM-серверами, серверами автоматизации.

Так, текстовый процессор, будучи еще и COM-сервером предоставлял другим приложениям доступ к документу, абзацу, закладке с помощью своих объектов. OLE-технология обладала еще и средством автоматизации (Automation), с помощью которого стало возможным устанавливать свойства, применять методы и обрабатывать события как внедренных в документ объектов, так и программно управлять объектами других приложений, находящихся на диске.

Иными словами, приложения MS Office стали программируемыми (управляемыми) с помощью внутреннего макроязыка Visual Basic for Applications (VBA), либо с помощью других внешних языков(приложенийVB, Delphi, VC).

ЯзыкVBA позволял создавать приложения непосредственно внутри документов Office. Управление же компонентами Office из других приложений стало возможным с помощью автоматизации.

3. В 1996 году Microsoft начала распространение технологии OLE на Internet-приложения. Теперь то, что ранее именовалосьOLE-объект, стало называться объектом ActiveX, а OLE Automation–ActiveX Automation. В результате чего управляющие элементы ActiveX стали выполняться не только в среде Windows, но и в Internet.

При этом спецификация COM была доработана и расширена «правилами поведения» между программными объектами и средой взаимодействия Internet. Ей дали новое имя –DCOM (DistributedСОМ).

27. Компонентные приложения. Особенности компонент.

В ранних версиях языков программирования исполняемая часть приложения часто состояла из монолитного двоичного файла(Turbo Pascal, Turbo Си). При этом разработчикам приложения приходилось вносить изменения и перекомпилировать свои приложения. И они начали искать способы продления периода существования уже созданных приложений. Решением этой проблемы явилось разбиение монолитного приложения на отдельные части или компоненты. По мере совершенствования технологии старые компоненты приложения стали заменяться более эффективными, новыми компонентами. Из существующих компонент можно было быстро построить новое компонентное приложение, подобное строительным блокам. Компонент подобен мини-приложению и предоставляет некоторые функциональные возможности. Он поставляется виде упакованной (скомпилированной и скомпонованной) порции двоичного кода, который полностью готов к соединению с другим двоичным кодом (компонентом) в режиме выполнения. Компоненты обеспечиваются COM-серверами, представленными физическими файлами .exe, .dll или .ocx на диске и содержат классы, на основе которых создаются объекты. COM-серверы могут быть построены из одного или нескольких компонент. При создании компонента программист свободен в выборе языка (Visual C++, Delphi, VisualBasic). Для разработчиков приложений, использующих компонент, внутренняя его организация недоступна. Они лишь взаимодействуют с компонентом через один или несколько интерфейсов.

Интерфейс компонента–это средства (свойства, методы, события), с помощью которых COM-клиент общается с COM-сервером. Для программного управления объектом COM (сервером автоматизации) надо выполнить следующие действия. •Создать объектную переменнуюв OLE-клиенте, используя режим раннего или позднего связывания.

  1. •Использовать эту переменную для доступа к объектам, находящимся в приложениях – источниках (OLE-сервере).

  2. •По завершении работы с объектом присвоить переменной значение Nothing, освобождая память, отводимую под переменную.

Чтобы компонент Public-класса стал доступным для OLE-клиентов, он должен зарегистрироваться в операционной системе, модифицируя раздел HKEY_CLASSES_ROOT системного реестра Windows, внося туда информацию относительно себя. (Просмотреть информацию в системном реестре можно из приложения regedit.exe. Эта информация включает: программный идентификатор (ProgID), представляющий описательное имя компонента, идентификатор класса (ClsID) и расположение библиотеки типов.Идентификатор класса содержит 128-битовые числа, которые генерируются с использованием специального алгоритма Microsoft, гарантирующего уникальность. Идентификаторы (ProgID, ClsID) нужны для того, чтобы операционная система смогла определить, в каком каталоге расположен файл сервера автоматизации (библиотека типов), и запустить его на выполнение. ОкноприложенияRegedit.exe Вся информация об объектах, необходимая контроллерам автоматизации, содержится в библиотеках типов (COM-серверах). Напомню, что библиотеки типов хранятся в специальном бинарном формате виде файлов с расширениями *.olb, *.tlb, *.exe, *.dll, *.осх. Содержимое библиотек типов можно просматривать (определять ProgID и ClsID) с помощью утилит OleView и Ole2vw32, входящих в пакет Visual Basic. При компиляции приложения-клиента идентификаторы классов и интерфейсы компонентов COM-сервера включаются в исполняемый файл. В период же выполнения приложение-клиент использует информацию из реестра для вызова компонента COM-сервера.