Главная » Delphi » COM+ в Delphi

0

Теперь пришло время  поговорить о реализации технологии . Следует отметить, что  средства COM+ поддерживаются только  в версии Delphi  Client/Server. Компоненты  COM+   технически   возможно  применять   и   в   версиях  Standard  иProfessional, однако они не позволяют использовать все возможности разработки при

ложений .

Мастера COM+

Для  разработки компонентов COM+  в Delphi используется мастер   Transactional Data Module Wizard (мастер модулей транзакционных данных), доступ к которому можно  получить во вкладке  Multitier диалогового окна  New Items, а также  мастер Transactional Object Wizard (мастер транзакционных объектов), запускаемый со вкладки  ActiveX. Мастер  Transactional Data Module Wizard позволяет создавать серве ры  MIDAS, работающие в среде  COM+. Мастер  Transactional Object Wizard служит  в качестве отправной точки  для разработки транзакционных объектов COM+, и имен но о нем дальше и пойдет речь.  При  вызове такого  мастера на экране появится диало говое окно,  представленное на рис. 18.15.

Рис. 18.15. Мастер COM+ Transactional Object Wizard

Это диалоговое окно  аналогично окну мастера объектов автоматизации, который использовался при  разработке приложений Delphi  с применением средств  COM. По сравнению с мастером объектов автоматизации, в мастере Transactional Object Wizard появилась возможность выбора транзакционной модели, поддерживаемой компонен том COM+. Существуют следующие транзакционные модели:

•  Requires a Transaction (транзакция необходима) — компонент всегда создается внутри  контекста какой либо  транзакции. При  этом  он  наследует  транзакцию своего владельца (если такой существует) или создает  новую транзакцию.

•  Requires a New Transaction (необходима новая  транзакция) —  для компонента всегда создается новая транзакция.

•  Supports  Transactions  (транзакция  поддерживается) —   компонент  наследует транзакцию своего  владельца. Если владельца не существует,  то транзакция во обще не создается.

•    Does  Not  Support  Transactions  (транзакция  не  поддерживается) —  для  компо

нента  транзакция не создается.

•    Ignores Transactions (транзакция игнорируются) — компонент работает незави

симо от контекста транзакции.Информация о транзакционной модели  хранится вместе  с классом  компонента в библиотеке типов.

После  щелчка  на кнопке OK мастер  создаст  пустое  определение класса,  производ ного  от  класса  TMtsAutoObject. Это  определение будет открыто в редакторе Type Library Editor, где в него  можно  добавить свойства, методы  и интерфейсы компонен тов COM+. Процесс разработки на данном  этапе  идентичен процессу  разработки объ ектов  автоматизации в Delphi. Несмотря на то  что  объекты COM+,  созданные при помощи мастера Delphi, являются объектами автоматизации (т.е.  объектами COM,  в которых реализован интерфейс IDispatch), это  не является техническим требова нием  COM+. Средства COM также  предполагали работу  с интерфейсами IDispatch, входящими в состав  библиотек типов, однако  при  использовании объектов данного вида в COM+ можно  уделить больше  внимания функциям компонентов, не отвлекаясь на детали  их взаимодействия со средствами COM+. Кроме  того,  компоненты COM+ должны  находиться на  внутреннем  сервере COM  (DLL),  так  как  внешние серверы (EXE) компонентами COM+ не поддерживаются.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии