Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть ли готовые движки приложений на Builder? Open source, поддержка плагинов 
:(
    Опции темы
ZVano
Дата 13.4.2011, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



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

НО! Перед написанием своего "велосипеда" хочу спросить у общественности: 
* Может уже есть готовое решение?
* Если да, то какое?


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

Менеджер плагинов реализует публичный интерфейс "Менеджер плагинов".
Каждый плагин реализует общий интерфейс "Плагин". 
Общий интерфейс содержит описание метода инициализации, в который передается ссылка на менеджер плагинов. Таким образом плагин знает, как обратиться к менеджеру.
Каждый плагин предоставляет публичный интерфейс ("Плагин А", "Плагин Б") и реализует свой публичный интерфейс.



Иными словами алгоритм приблизительно такой:
0. Грузится оболочка.
Оболочка загружает менеджер плагинов.
Оболочка грузит обязательные плагины
* Локализатор
* Менеджер меню
**Строит главное меню
* Плагин-источник подключения к БД.
** Коннект к БД
1. При клике на пункт меню
1.1 Что-то из системы определяет какой плагин обслуживает этот пункт.
Идет запрос к менеджеру плагинов.  
1.2 
Менеджер плагинов:
* грузит плагин (BPL, если не загружена) (допустим, плагин А). 
* вызывает инициализацию
* вызывает метод, который должен отработать действие.
1.3 Плагин А получает управление.
Плагин определяет какое действие запрошено и выполняет соответствующий код внутри себя.
1.4 Коду может потребоваться еще какой-либо плагин (Плагин Б).
В таком случае код запрашивает у менеджера плагинов нужный ему плагин.
Получает ссылку на объект базового плагина.
Приводит его к интерфейсу целевого плагина (Интерфейс плагина Б).
Вызывает метод.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
borisbn
Дата 13.4.2011, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(ZVano @  13.4.2011,  19:05 Найти цитируемый пост)
Работая в одной конторе я увидел готовый движек для создания приложений на Delphi с расширением функциональности за счет плагинов.

написанный в этой фирме или просто готовый OpenSource'ный? если второе - дай ссыль, плиз.

Цитата(ZVano @  13.4.2011,  19:05 Найти цитируемый пост)
Теперь работаю в другом месте, программирую на Builder-е и хочется чего то подобного.

Исходники дельфи легко вставляются в проект билдера. да и какая разница на каком языке писать плагины (если, конечно, оболочка не заточена на дельфи-плагины)


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ZVano
Дата 14.4.2011, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: 1
Всего: 4



Цитата(borisbn @  13.4.2011,  22:03 Найти цитируемый пост)
написанный в этой фирме или просто готовый OpenSource'ный?

Написаный на фирме. Исходников нет т.к. это собственность фирмы. А собственность работодателя я ценю очень высоко т.к. он мне зарплату платит (платил).

Добавлено:
Построена система была на базе jvcl (JEDI Visual Component Library). 
Плагины - наследники JvPlugin.
URL: http://jvcl.sourceforge.net/
Лицензия: Mozilla Public Licence ("MPL") version 1.1.
SVN: https://jvcl.svn.sourceforge.net/svnroot/jvcl

Это сообщение отредактировал(а) ZVano - 14.4.2011, 09:21


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.