![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вынос модуля данных в DLL
AlekVolsk © (2011-05-13 16:54:00)Есть желание воспроизвести примерно следующее.
В одной dll - модуль данных с доступам к различным БД (одного формата), используемых одновременно. Во всех остальных dll - различные самостоятельные независимые друг от друга модули программы, каждый из которых содержит от 20 до 100 форм (не считая диалогов и прочего функционала, используемого сразу в нескольких модулях, вынесенного в отдельную dll), где имеются только TDataSource, ссылающиеся на TDataSet в dll с модулем данных.
По сути сейчас в каждой dll - свой модуль данных, задача - вывести его в отдельную dll.
Пока даже браться боюсь, хотя мысль мусолю ухе более года, да только не знаю с какой стороны начать. Жажду мыслей.
Дмитрий Белькевич (2011-05-14 13:11:00) [21]Если сильно нужно, скрипты можно пожать и покриптовать. Если юзерам настолько нужно, что будут расшифровывать скрипты, то, думаю, такие продвинутые и дллки дизасемблируют.
_Юрий (2011-05-14 10:00:00) [22]
> Не сталкивался ни разу, пока для меня - темный лес
я думал, проект только начинается. Начинать такое писать нуля на делфи сейчас было бы неосмотрительно.
> Кому-то определенные модули просто не нужны, а каждый весит
> от 1,5 метров, общее кол-во модулей - 34.
По современным условиям, это копейки.Не стоит обращать внимания.
с BPL связываться на мой взгляд не стоит, на практике получится, что при обновлении все равно придется пересобирать все bpl, во избежание таинственных падений типа "точка входа не найдена".
На мой взгяд, правильный ответ - монолитный exe с правильной внутренней архитектурой (те же логические слои, но в коде). Ну будет он весить 30 метров, и ничего страшного.
sniknik (2011-05-14 01:20:00) [23]> Кому-то определенные модули просто не нужны
ну так пусть не пользуются. в чем проблема? т.е. нужной частью пользуются, не нужную игнорируют... вот сколько процентов из программы Word ты сам используешь, если вдруг что то пишешь? и, что микрософт озаботился тем что тебе не все нужно, и поэтому необходимо разбить Word на модули... ??? (кстати "весит" почти 12 мегабайт, один файл)
> а каждый весит от 1,5 метров, общее кол-во модулей - 34
а слить все в 1 exe то и 3-х метров не будет... т.к.
> В каждом модуле свой TDataModule ...
лучше бы озаботился наследованием кода, т.е. слить все, сделать общего предка где 1 раз будет прописан код сейчас повторяющийся везде...
и
интересная у вас безопасность... скрипты не положено, а база в с прогой в
одной папке, т.е. в открытом для пользователей виде (даже зашифровать не спасет, ну, не так как нормальный вариант с базой на сервере в недоступном месте).
AlekVolsk (2011-05-14 00:15:00) [24]
> исключение - really Профи, но у них таких вопросов возникнуть не должно
Однако возникли. Проект пишется и развивается уже 8 лет. Поначалу это был один exe'шник, затем он разросся, стал собирать с runtime-пакетами. В определенный момент возникла необходимость поддерживать несколько параллельных версий для различных контор, решил делать универсальный один на всех. Разбил на dll'ки, в каждой отдельный модуль (общий функционаз, вынесенный отдельно, не всчет), в exe выводится только авторизация и список модулей, доступных пользователю сог-но выставленных админом прав. Модули как самостоятельные, так и зависимые от других. В каких-то конторах нужны одни модули, в каких-то - другие, везде есть общие модули.
В среднем в каждой конторе работают одновременно 150-200 пользователей, у всех различные права доступа. Кому-то определенные модули просто не нужны, а каждый весит от 1,5 метров, общее кол-во модулей - 34. В каждом модуле свой TDataModule, 70% содержимого которого повторяется практически везде. Эти 70% повторяющегося содержимого - примерно половина от всего объема модуля.
Была идея создать что-то аналогичное 1С: скриптовый движок и набор скриптов, определяющщий логику работы каждого модуля, в т.ч. интерфесное построение. Безопасники отмели как класс - не положено-сс...
Трехзвенка не очень актуальна - кроме админов, все работают через rdp, и прога и база буквально в одной папке.
> Начни со стороны смены технологии в сторону веба
Не сталкивался ни разу, пока для меня - темный лес
Anatoly Podgoretsky (2011-05-13 21:59:00) [25]> AlekVolsk (13.05.2011 16:54:00) [0]
Начни с изучения BPL
_Юрий (2011-05-13 19:12:00) [26]
> да только не знаю с какой стороны начать
Начни со стороны смены технологии в сторону веба
sniknik (2011-05-13 18:47:00) [27]> исключение - really Профи,
у них и мыслей таких нет. что за идиотизм разделять 1 логику общения с базой на 2 (программа -> dll), без всяких на то оснований... ну понимаю была бы нужда какая, можно было бы потерпеть неудобства/усложнение, но вот просто так, "от нечего делать?".
трехзвенку сделай, хотя и она если без оснований глупость.
OW (2011-05-13 17:18:00) [28]
> Жажду мыслей.
мысль один: думать о bpl, а не dll. Ни разу у нас ничего хорошего не получилось с dll.
мысль один и еще один: не думать о разделении вообще. Два раза у нас получилось хуже, нежели было все а одном exe.
исключение - really Профи,
но у них таких вопросов возникнуть не должно :)