Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

2000 г

Полезные компоненты и утилиты для пользователей Delphi, С++Builder и IB Database: продукты компании BatSoft

Наталия Елманова
Компьютер Пресс - CD, 1999, N 2
© Copyright N.Elmanova & ComputerPress Magazine.

Данная статья посвящена двум продуктам продуктам рижской компании BatSoft - библиотеке OverPLAY для Delphi и C++Builder, полезной при разработке модульных многофункциональных приложений, и утилите OverDig, позволяющей управлять серверными объектами IB Database.

Библиотека OverPLAY 3.0 для создания модульных приложений

Библиотека компонентов и классов Delphi/C++Builder OverPLAY 3.0 разработана рижской компанией BatSoft - одним из ведущих партнеров Inprise на территории бывшего СССР и одним из ведущих компаний-разработчиков Латвии. В настоящее время существуют версии этой библиотеки для Delphi 4 и C++Builder 3. Trial-версию этой библиотеки можно найти на web-сайте компании BatSoft www.batsoft.com.

Назначение библиотеки OverPLAY 3.0

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

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

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

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

Компоненты библиотеки OverPLAY 3.0

Библиотека OverPLAY 3.0 содержит четыре невизуальных компонента:TAppServer, TDLLServer, TTaskServer и TTaskClient.

Рис. 1. Компоненты библиотеки OverPLAY

Компонент TTaskServer предназначен для объявления задачи в библиотеке-модуле или исполняемом файле. Он может находиться на главной форме приложения или на скрытой форме, содержащейся в DLL. Так как модуль может содержать несколько задач, таких компонентов на форме также может быть несколько.

Компонент TAppServer помещается в исполняемый файл в одном экземпляре. Свойства этого компонента содержат всю необходимую информацию о зарегистрированных (то есть известных в данный момент исполняемому файлу) компонентах TTaskServer и TTaskClient из всех загруженных модулей.

Компонент TDLLServer предназначен для объявления динамически загружаемой библиотеки модулем, подлежащим регистрации. Он обычно помещается на скрытую форму, содержащуюся в DLL.

Компонент TTaskClient позволяет обращаться к свойствам и методам компонента TTaskServer, обеспечивая интерфейс к нему в других модулях.

Создание модульных приложений с помощью OverPLAY

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

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

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

Рис. 2. Главная форма исполняемого файла, использующего компоненты OverPLAY

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

Рис. 3. Скрытая форма дополнительно загружаемого модуля

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

Рис. 4. Приложение, использующее дополнительно загружаемые модули, на этапе выполнения

Рис. 5. Список зарегистрированных дополнительных модулей и содержащихся в них задач

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

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

Утилита OverDig 2.0 для управления серверными объектами IB Database

Утилита OverDig, также разработанная компанией BatSoft, представляет собой инструмент, облегчающий управление объектами сервера IB Database, такими как триггеры, хранимые процедуры, представления, домены, исключения, генераторы. Эта утилита может быть весьма полезна разработчикам приложений, использующих этот сервер в качестве встроенной СУБД в составе своих приложений. Trial-версию этой утилиты можно найти на web-сайте компании BatSoft www.batsoft.com.

Просмотр и редактирование данных и серверных объектов

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

Рис. 6. Просмотр и редактирование серверных объектов и табличных данных в OverPlay

Возможно также копирование данных из таблицы в буфер обмена как в виде отдельных ячеек, так и в виде целой таблицы (в последнем случае пользователь может выбрать формат для копирования данных):

Рис. 7. Копирование табличных данных в буфер обмена

Возможен также просмотр содержимого memo-полей в отдельных окнах.

Утилита OverDig содержит несколько различных редакторов серверных объектов. Редакторы триггеров и хранимых процедур способны выделять другим цветом или шрифтом синтаксические конструкции (так же как и редакторы кода Delphi и C++Builder).

Рис. 8. Редактор хранимых процедур

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

Эксперты для генерации SQL-запросов

OverDig содержит несколько встроенных экспертов, облегчающих генерацию текстов SQL-запросов (Select... , Select into..., For Select into.... , Insert ... ,Update... ). Например, для генерации запроса INSERT можно выбрать из списка таблицу, внести значения нужных полей и получить текст запроса.

Рис. 9. Эксперт для генерации SQL-предложения INSERT

Рис. 10. Результат работы эксперта для генерации SQL-предложения INSERT Для генерации запроса SELECT также можно выбрать имя таблицы, полей, включаемых в запрос, и полей, включаемых в условия запроса.

Рис. 11. Эксперт для генерации SQL-предложения SELECT

Рис. 12. Результат работы эксперта для генерации SQL-предложения SELECT

Отметим, что можно сгенерировать и выполнить вместе несколько SQL-запросов (что выгодно отличает эти эксперты от SQL Builder или других генераторов запросов). Сгенерированные с помощью экспертов запросы можно помещать в редактор DDL-сценариев, позволяющий редактировать несколько SQL-предложений или файлов с ними, а также выполнять их.

Репозитарий объектов

OverDig позволяет создать репозитарий объектов, в котором с целью повторного использования хранятся исходные тексты DDL-предложений для их генерации. Репозитарий представляет собой таблицу формата Paradox, в memo-полях которой хранятся DDL-сценарии.

Рис. 13. Репозитарий объектов

Шифрование текстов триггеров и хранимых процедур

OverDig позволяет зашифровать тексты триггеров и хранимых процедур так, чтобы они были недоступны другим пользователям, что нередко бывает удобно при поставке IB Database вместе с базой данный в качестве встроенного сервера в составе готовой информационной системы. Зашифрованные объекты хранятся в базе данных вместо исходных объектов, и их исходный текст доступен после ввода пароля.

Рис. 14. Шифорвание текстов серверных объектов

Хранение информации о выполненных действиях

Информация о выполненных во время сеанса работы действиях может быть сохранена в log-файлах. Log-файлы представляют собой таблицы формата Paradox; при необходимости log-файлов может быть несколько.

Рис. 15. Просмотр log-файла

Таким образом, OverDig представляет собой весьма удобный инструмент для управления серверной частью информационных систем на основе IB Database и является неплохим дополнением к утилитам администрирования IB Database, входящим в состав ее клиентской части.

Координаты компании BatSoft:
BatSoft Ltd.
Peldu 26/28, LV-1050,
Riga, Latvia
Тел. (+371) 7228649
Факс (+371) 7227859
E-mail info@batsoft.com;
http://www.batsoft.com.

 

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...