Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Организационный вопрос для проекта EXE и DLL  [new]
yemets63
Member

Откуда: Самара
Сообщений: 1015
Всем привет.

есть проект, или даже проекты. они все лежат на одной базе, всему проекту уже почти 20.
за год достаточно легко перекатил на XE10, так как использовалось в основном все самописное или ну очень стандартное типа RX, EH и ODAC.
но основной EXE файл достаточно большой, и грузить память процессами тоже не хочется.

сам проект содержит в себе , редактор документов, типа Word, редактор типа Excel , почтовый клиент, учет данных - четыре разных направления (можно сказать четыре проекта), большие НСИ (справочники контрагентов - для всех проектов) и другие справочники, некоторые для конкретных проектов, а некоторые общие. Общих НСИ не мало.

В целом организовано всё хорошо, просто большой файл. Теперь вопрос, могу ли я сделать так:
Я хочу разнести проект на несколько файлов, выделить один стартовый EXE и кучу DLL отвечающих за свои проекты (обзову так),
примерно:
Основной файл - EXE, который при необходимости подтягивает одну или две или три DLL, которые имеют в себе не просто обработчики но и визуальные формы (гриды, поля и все такое).
Важно, может ли DLL иметь версию при компиляции? Build???
На сколько возможно и проблематично перетаскивать какие нибудь переменные по открытым активным DLL-кам.
Как себя поведут компоненты ClientDataSet открытые в одной DLL для использования в другой.

Что по советуете и можно ли организовать так, как я описал.

Спасибо
19 сен 18, 23:53    [21680169]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46387

yemets63
Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.

Posted via ActualForum NNTP Server 1.5

20 сен 18, 00:16    [21680179]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 2750
yemets63
Я хочу разнести проект на несколько файлов

Что по советуете и можно ли организовать так, как я описал.

Спасибо

Я советую Вам срочно уволиться, пока Ваше руководство не узнало, что Вы страдаете от безделья на рабочем месте до такой степени, что у Вас начали появляться странные желания. Таки шутка. А теперь серьезно.

Хотеть Вы можете чего угодно. Хоть переписать проект на другой ЯП. Кто за это заплатит? Владелец фирмы, которая делает этот проект? Вы из личных сбережений на черный день?
Если Вам на голову кирпич упадет в середине процесса переделывания проекта - кто еще в фирме сможет подхватить упавшее знамя и довести переделку до победного конца?
Чем мотивируется необходимость такой переделки? В чем весь цимес? Медленная компиляция, потребление оперативной памяти до такого уровня, что начинается ее нехватка и своп, в чем первопричина? Или Вы решили за счет работодателя пополнить резюме строчкой "переписал 20-летний проект на новый лад, разбив на отдельные куски"?
20 сен 18, 00:24    [21680181]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
asviridenkov
Member

Откуда:
Сообщений: 3843
Dimitry Sibiryakov
yemets63
Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.


+1
20 сен 18, 00:49    [21680186]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Котовасия
Member

Откуда:
Сообщений: 1187
Было, много раз. Например: http://www.sql.ru/forum/1211085-1/monofayl?hl=????????


Это сезонное.
20 сен 18, 01:02    [21680188]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
yemets63
но основной EXE файл достаточно большой

Сколько ?
20 сен 18, 01:33    [21680194]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27659
yemets63,

dll имеет смысл если в ней выделен функционал, который используется несколькими разными exe.
Или, если exe один, но предполагается заменять (или подменять) часть функционала не меняя весь exe (типа плагины).
Кроме этих двух случаев другого смысла городить exe + dll нет, совершенно.
20 сен 18, 01:55    [21680197]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 6713
А почему сразу dll? На dpl проект можно распилить довольно легко.
20 сен 18, 02:10    [21680205]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 6713
kdv
yemets63,

dll имеет смысл если в ней выделен функционал, который используется несколькими разными exe.
Или, если exe один, но предполагается заменять (или подменять) часть функционала не меняя весь exe (типа плагины).
Кроме этих двух случаев другого смысла городить exe + dll нет, совершенно.
Ну и когда изпользуется визуальное наследование, базовый класс нужно вынести в одтельный пакет. Неужели у ТС его нет? )))
20 сен 18, 02:13    [21680209]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
stanilar
Member

Откуда: Спб
Сообщений: 762
yemets63
DLL


И это при том, что дельфя спроектирована так, что можно получить все вкусности от DLL, не плодя сами DLL.
Понять это можно далеко не сразу, а после опыта поддержки разных проектов, где по советам ушлых С++ прогеров проекты таки разделены на эти самые DLL или bpl.
20 сен 18, 03:17    [21680220]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
tunknown
Member

Откуда:
Сообщений: 577
yemets63
Что по советуете и можно ли организовать так, как я описал.Спасибо
Можно, но первый шаг к этому другой. Нужно добиться минимальной связности между модулями исходников оставляя их единым .exe. Такой рефакторинг можно делать не в ущерб основной работе и он более инкрементален и, следовательно, безопасен.
20 сен 18, 09:50    [21680336]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Василий 2
Member

Откуда:
Сообщений: 309
Плюсую, бесполезное занятие, несущее только кучу геморроя. Передавать в DLL формы и датасеты... это кошмарно. Память винда и так выделяет разумно. Если не нравится жирный бинарник, сожми его upx-ом.
20 сен 18, 10:09    [21680364]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6127
Василий 2
Если не нравится жирный бинарник, сожми его upx-ом.


А вот это плохой совет.
1) Приложение начинает есть больше памяти
2) на сжатые приложения часто нервно реагируют разные антивири
20 сен 18, 10:25    [21680388]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
L_argo
Member

Откуда:
Сообщений: 446
DarkMaster
2) на сжатые приложения часто нервно реагируют разные антивири
+500

Помницца после очередного обновления винды решил спаковать ЕХЕ. Спаковал и ..... ЕХЕ файл тупо исчез.
Не сразу понял, что его грохнул встроенный виндовый антивирь. :)
До обновления все было хорошо.
Даже на почту получить такой файл (в зип-архиве) винда уже не давала.
20 сен 18, 11:28    [21680519]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1554
yemets63, разделение на DLL ради экономии памяти это практически не реализуемая задача.
Основной объём откомпилированного кода это не Ваша крутейшая программа хоть бы она и 20 лет писалась, а код всяких используемых библиотек компонентов (подозреваю что их там зоопарк как и в большинстве подобных проектов). И этот код будет прикомпилироваться к вашей каждой отдельной DLL в результате она будет лишь не много меньше основного exe, в сумме будет существенное увеличение размера. Если в dll отказаться от всех, вообще всех подключаемых юнитов, то практический толк от неё какой? Ну вынесешь решение квадратного уравнения в отдельную библиотеку, и это на 10 килобайт сэкономит оперативку пользователя который не использует данную функциональность, зато 100 килобайт лишних отъест у пользователя, который использует.
20 сен 18, 12:15    [21680607]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
ma1tus
Member

Откуда:
Сообщений: 599
yemets63
но основной EXE файл достаточно большой, и грузить память процессами тоже не хочется.
yemets63
В целом организовано всё хорошо, просто большой файл.

yemets63
Что по
https://www.gunsmoker.ru/2011/04/windows-spin-off.html#n10
https://www.gunsmoker.ru/2010/12/blog-post.html
20 сен 18, 12:26    [21680620]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1554
yemets63
... Что по советуете и можно ли организовать так, как я описал
Организовать можно, но сложно.
Советую разобраться с существующим кодом: посмотреть, что дублируется вынести копиасты в одельные модули, использовать наследование форм, слить все TImageList в одну общую коллекцию, избавится от неиспользуемых юнитов и малоиспользуемых компонентов, не забывать отключать отладочную информацию при компиляции "релизных" приложений, сделать несколько exe заточенных под разные нужды (они уже внутри себя должны использовать общие модули).
20 сен 18, 12:30    [21680631]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1172
yemets63,

То есть проблема в боязни большого файла?
А не проще будет перестать бояться?
20 сен 18, 14:46    [21680869]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Автор так и не ответил насколько его файл большой
20 сен 18, 14:50    [21680874]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
У 11-го оракла 102 мегабайта exeшник, и ничего, не жужжат.
20 сен 18, 16:26    [21681072]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
bk0010
Member

Откуда:
Сообщений: 4697
yemets63
Я хочу разнести проект на несколько файлов, выделить один стартовый EXE и кучу DLL отвечающих за свои проекты (обзову так),
Не делайте это, пока без этого можно обойтись.
20 сен 18, 18:14    [21681261]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
MaratIsk
Member

Откуда: Astana, Kazakhstan
Сообщений: 2432
Dimitry Sibiryakov
yemets63
Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.


+100500
20 сен 18, 19:02    [21681306]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
чччД__
Guest
yemets63,

не слушай их, они просто не умеют на дельфи создавать длл-ки, конечно же разделяй все на ехе и длл, а если не разделять, то приложение будет зря потреблять память и грузиться долше будет, и через интернет дольше обновления рассылать если сто, а когда одним куском то шиш разберешь откуда ноги растут а если раздельно - то все структурировано и понятно, и легко править и отлаживать приложение когда все по раздельности, и можно комплекс кодить на разных языках программирования а не только на Дельфи, и еще можно работать командой когда каждый свой кусок делает а когда все в одном то нельзя, короче твой выбор верный.
20 сен 18, 19:23    [21681318]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
defecator
Member

Откуда:
Сообщений: 38969
чччД__
yemets63,

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

хочу ещё дополнить от себя, что программа с сотней DLL смотрится гораздо круче,
чем когда всё в одном EXE !
20 сен 18, 21:12    [21681383]     Ответить | Цитировать Сообщить модератору
 Re: Организационный вопрос для проекта EXE и DLL  [new]
Гирлионайльдо
Member

Откуда:
Сообщений: 318
Главное уметь правильно грузить библиотеки!

Тут один, научился загружать из Dll классы.
20 сен 18, 21:39    [21681415]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить