Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по ТРПО №1-6.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
318 Кб
Скачать
☆

Лабораторная работа № 6. Использование технологий оlе, сом и АсtivеХ

Цель работы: научиться создавать формальные модели и на их основе определять спецификации разрабатываемого программного обеспечения.

Лабораторная работа рассчитана на 4 академических часа.

Подготовка к лабораторной работе

1. Ознакомиться с лекционным материалом по теме «Использование технологий ОLЕ, СОМ и АctivХ» учебной дисциплины «Технология разработки программного обеспечения».

2. Изучить соответствующие разделы в изданиях [1—3, 10, 11].

3. Ознакомиться с разд. 6.2 настоящего учебного пособия.

Теоретическая часть. От ОLЕ к АсtivеХ

В данной лабораторной работе рассматривается использование технологии ОLЕ (Оbject Linking and Embedding — связывание и внедрение объектов), которую можно определить как объектно-ориентированный протокол совместного доступа к данным и программному коду из разных процессов. ОЬЕ позволяет программистам создавать приложения для работы с составными документами, представляющими собой динамические связанные структуры, отдельные части которых могут разрабатываться в различных программах.

АсtiveХ и ОLЕ фирмы Мicrosoft — еще один шаг к более совершенным, т. е. более надежным и эффективным, программам.

В основе АсtivеХ и ОLЕ лежит очень простая идея, но, как оказалось, она позволяет существенно повысить эффективность программирования.

Первоначально ОЬЕ была задумана как технология интеграции программных продуктов, входящих в комплект Мicrosoft Оffice. Предшественницей ОLЕ является реализованная в Windows технология динамического обмена данными DDE (Dynamic Data Exchange), до сих пор широко применяемая в данной среде. Однако многие разработчики не без оснований считают, что DDЕ трудно использовать, поскольку это технология низкого уровня.

В качестве технологии более высокого уровня была реализована ОLЕ 1.0 ОLЕ 1. Она расширила возможности протокола ОLЕ и, используя его как базовый механизм коммуникаций, позволила активизировать встроенный объект в документе, т. е. получить составной документ. Таким образом, ОLЕ 1.0 унаследовала многие проблемы асинхронного протокола. Эта технология имела множество недостатков, а ее компоновка была слишком сложна для пользователей среднего уровня. Кроме того, установленные связи легко нарушались, например, в результате изменения маршрута доступа к файлу связанного объекта.

С помощью ОLЕ 1 пользователь мог, например, объединить электронную таблицу, созданную Мicrosoft Ехсеl, с текстовым документом «производства» Мicrosoft Office. Идея состояла в том, чтобы документно-ориентированная (document-centric) модель работы с компьютером позволила бы пользователю больше думать об информации и меньше о приложениях, ее обрабатывающих. Как следует из слов «связывание и внедрение», составные документы можно создать, либо связав два разных документа, либо полностью внедрив один документ в другой.

ОLЕ 1, как и большинство первых версий программных продуктов, была несовершенна. Архитекторам следующей версии предстояло улучшить первоначальный проект. Вскоре они поняли, что составные документы лишь частный случай более общей проблемы: как разные программные компоненты должны предоставлять друг другу сервисы? Для решения этой проблемы архитекторы ОLЕ создали группу технологий, область применения которых гораздо шире составных документов. Основу ОLЕ 2 составляет важнейшая из этих технологий Модель многокомпонентных объектов (Сomponent: Оbject Моdеl — СОМ). Новая версия ОLЕ не только обеспечивает поддержку составных документов лучше, чем первая, но и, несомненно, идет куда дальше простого объединения документов, созданных в разных приложениях. ОLЕ 2 позволяет по-новому взглянуть на взаимодействие любых типов программ.

В начале 1996 г. Мicrosoft ввела в оборот новый термин — АctivеХ. Сначала он относился к технологиям, связанным с Интернетом, и приложениям, выросшим из него, вроде WWW (World Wide Web). Поскольку большинство разработок Мicrosoft в данной области было основано на СОМ, то и АctiveХ была непосредственно связана с ОLЕ. Однако очень скоро новый термин стал захватывать территории, традиционно принадлежавшие ОLЕ, и вот теперь все вернулось на круги своя: ОLЕ, как встарь, обозначает только технологию создания составных документов связыванием и внедрением, а разнообразные технологии на основе СОМ, ранее объединенные под именем ОLЕ, собраны под знаменем АctivеХ. А некоторые технологии, название которых содержало слово «ОLЕ», даже перекрестили — теперь это технологии АctivеХ.

Понятие СОМ

Все технологии ОLЕ и АctivеХ, описанные ниже, построены на основании, обеспеченном СОМ. Итак, что же такое СОМ? Чтобы ответить на этот вопрос, зададимся сначала другим: «Каким образом одна часть программного обеспечения должна получать доступ к сервисам, предоставляемым другой частью?» На сегодняшний день ответ зависит от того, что представляют собой эти части.

Приложения, например, скомпонованные с библиотекой, могут пользоваться ее сервисами, вызывая функции из этой библиотеки.

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

Например, приложение использует сервисы операционной системы или сервисы программного обеспечения, выполняемого на другой машине.

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

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

В СОМ любая часть программного обеспечения реализует свои сервисы как один или несколько объектов СОМ (не следует путать объекты СОМ с объектами в языках программирования типа С++; несмотря на то что у них есть общие черты, это разные понятия; далее будет описано соотношение объектов СОМ и объектов других видов.). Каждый такой объект поддерживает один или несколько интерфейсов, состоящих из методов. Метод — это функция или процедура, которая выполняет некоторое действие и может быть вызвана программным обеспечением, использующим данный объект (клиентом объекта). Методы, составляющие каждый из интерфейсов, обычно определенным образом взаимосвязаны. Клиенты могут получить доступ к сервисам объекта СОМ только через вызовы методов интерфейсов объекта, у них нет непосредственного доступа к данным объекта.

Большинство объектов СОМ поддерживают более одного интерфейса. Сам объект всегда реализуется внутри некоторого сервера. Сервер может быть либо динамически подключаемой библиотекой (DLL), подгружаемой во время работы приложения, либо отдельным самостоятельным процессом.

Чтобы вызывать методы интерфейса объекта СОМ, клиент должен получить указатель на этот интерфейс. Обычно

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

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

Благодаря СОМ, клиентам нет нужды учитывать данные отличия — доступ ко всему осуществляется единообразно. Для доступа к сервисам, предоставляемым любыми типами программного обеспечения, используется одна общая модель.

Мicrosoft применяет СОМ в большинстве продуктов; она используется для спецификации расширений Мicrosoft Windows и Microsoft Windows NT, а также для определения стандартных интерфейсов к различным типам сервисов. Выгоды применения СОМ в разработке всех типов программного обеспечения несомненны.

функций, а не через методы интерфейса СОМ.) Затем библиотека СОМ запускает сервер, реализующий объекты данного класса. Кроме того, библиотека возвращает клиенту указатель требуемого интерфейса вновь созданного экземпляра объекта. Далее клиент может запросить указатели на другие необходимые ему интерфейсы непосредственно у самого объекта.

Получив указатель на нужный ему интерфейс выполняющегося объекта, клиент может

Разработку ОLЕ-контейнеров и серверов проще всего вести в среде VisualС++ при помощи специальных мастеров (например, AppWizard), а также библиотеки МFС.

Порядок выполнения работы

  1. Открыть Microsoft Visual Studio 2010/2012/2013

  2. Создать проект приложения Windows Forms на языке Visual C#

  3. Открыть обозреватель решений

  4. Если текущий пакет свернут в дереве, то развернуть

  5. Добавить ссылки на COM библиотеку Microsoft Excel X.X Object Library

  6. Открыть дизайнер основной формы

  7. Открыть панель элементов и внутри окна вызвать контекстное меню -> Выбрать элементы…

  8. В открывшемся диалоговом окне перейти на вкладку COM-компоненты и выбрать Windows Media Player. После выполнения этой операции в панели элементов должен появится пункт Windows Media Player.

  9. Выберите компонент Windows Media Player и разместите его на форме. При размещении компонента Visual Studio сама добавит необходимые ссылки на все зависимые компоненты.

  10. Задайте свойства элемента управления Windows Media Player:

    1. URL – Путь до видеофайла.

    2. uiMode – поэкспериментируйте со значением свойства (возможные значения: null, mini, full, invisible)

  11. Разместите две кнопки с надписями «Начать» и «Остановить»

  1. Добавьте обработчики событий нажатия на кнопки с соответствующим кодом:

//Обработчик 1

axWindowsMediaPlayer1.Ctlcontrols.play();

//Обработчик 2

axWindowsMediaPlayer1.Ctlcontrols.stop();

  1. Запустите на выполнению программу. Посмотри как она работает.

  2. Закройте программу.

  3. Откройте дизайнер формы. Добавьте кнопку с надписью: «Открыть Excel»

  4. Откройте исходный код.

  5. Добавьте использование пространства имен Microsoft.Office.Interop.Excel

  6. Добавьте обработчик события нажатия к недавно созданной кнопке:

//Создаем экземпляр Excel

Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

//Добавляем путсую рабочую книгу

Workbook wb = excelApp.Workbooks.Add();

//Создаем пустой лист

Worksheet sh = wb.Sheets.Add();

//Передаем фокус на новосозданный лист

sh.Activate();

//Выводим надпись Hello world в ячеку A1

sh.Range["A1"].Value = "Hello World";

//Показываем окно Excel'я

excelApp.Visible = true;

  1. Запустите программу на выполнение. Протестируйте.

Защита отчета по лабораторной работе

Отчет по лабораторной работе должен состоять из:

1. Листингов программ.

2. Результатов работы.

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

Контрольные вопросы

1. Охарактеризуйте технологии ОLЕ, СОМ и АctivеХ.

2. В чем заключаются преимущества и недостатки OLE

3. В чем заключаются преимущества и недостатки СОМ?

4. Опишите развитие от OLE до Acive X

5. Как связаны VisualC++ и OLE?

25