-
Пишем приложение на VS, в приложении используются компоненты сторонних разработчиков, которые поставляются в исходниках и длл.
Для работы моего приложения необходим ряд этих самых dll, т.е. чтобы перенести приложение на другой комп за ним нужно тянуть все dll!!!
Нашел утилиту от microsoft которая может собрать все в 1 exe, но собирает все что внутри dll т.е. используешь ты у себя класс не используешь он будет у тебя в exe. В итоге exe получается 10 мб!!!
Отсюда вопросы:
1. Тоже самое и в Delphi .NET ?
2. Зачем так все усложнили, помоему это шаг назад?
3. Или я не правильно все понял???
-
действительно... шаг назад...
и почему это дотнет не работает без необходимых библиотек
и вообще нафига его ставить, почему он сразу не работает, это ж скачок НА ЗАД!
-
А в чем сложность распространять вместе с приложением и нужные DLL? Или у тебя нужные DLL - это .Net Framework? Ну тогда покажи юзерам ссылку где скачать, да и есть он сейчас у многих уже.
-
А для вашего приложения виндовс случайно не требуется? Или этот факт вас не удивляет? А ведь оно поболе 10 мб будет. Еще и денег стоит, к стати. (в этом плане меня особо умиляют разработчики под аксес, который "есть на всех компах")
PS
Пользуйтесь возможностью делать инсталляторы приложений и не насилуйте сами себя.
-
Требуются библиотеки дополнительных компонентов.
В общей сложности они занимают более 500 мб.
А если разработчики обновят версию компонентов, опять всем переставлять dll ?
Вот в Delphi 7 установил компоненты при наличии исхордников или dcu компилятор выбрал классы которые необходимо собрал в exe получился компактный exe, и ничего не требует.
-
Прочитайте про Setup Projects, ClickOnce deployment и т.д.
-
Прочитайте про Setup Projects, ClickOnce deployment и т.д.
-
> stas © (30.10.08 10:54) [4]
> Требуются библиотеки дополнительных компонентов.
> В общей сложности они занимают более 500 мб.
мдя.... вы уверены, что они все вам нужны? :)
Впрочем, если надо - значит резать компашки и раздавать. Себестоимость копеечная.
Короче, не майтесь с этом моментом, это не страшно. Просто научитесь делать хороший инсталлятор, умеющий корректно апдейтить продукт (что не очень просто ввиду "особой умности не к месту" виндового инсталлятора, надо изучить грабли (ну или понаступать на них), много косяков вылазит, надо обязательно тестировать тщательно апдейт).
К стати, флешки гиговые - 200 руб (у нас в городе). Тоже вполне себе носитель, копечный.
-
И к стати, волбшество в этом моменте с одной стороны расслабляет ("что надо - само соберет"), но для серьезной поддержки продукта - вредно очень так раслабляться, т.к. после пары-тройки апдейтов у клиента обязательно всплывут совершенно чудесатые косяки, причиной которых будет недообновление, и чтобы в них разобраться - надо будет точно знать какие именно файлы и каких версий должны оказаться у клиента для каждой версии продукта.
Так что очень советую тщательно с этим разобраться. Рассказываю по собственному опыту.
-
Читать инструкцию, по распространению конкретного приложения, если автор его ты, то ты должен знать, что куда и как. Восспользуйся штатным инсталятором.
А принципы работы .NET ты видимо не понял.
-
KSergey © (30.10.08 11:13) [7]
Тут вопрос вот в чем.
У нас предприятие, около 700 пользователей работают в системе. До недавнего времени система разрабатывалась на D7, и состот она из системных dll и модулей (exe).
Обновление системы проходит в автозагрузке (обновляется небольшая по объему папка только с содержанием системных dll и только различающихся), обновление производится с открытой на чтение папки на сервере, в которую разработчики складывают новые версии dll и модулей.
А каждый модуль обновляется перед его запуском.
В таком случае никого не волновало изменение версии компонент, версия изменилась собралась в exe, и нормально жили проекты с новой версией компонент и старой.
Теперь же придетсявсем юзерам расставить используемые библиотеки в vs и если вдруг понадобится в каком-то модуле изменить версию компонент, нужно будет перекомпилить все проекты и всем юзерам обновить dll этих компонент.
Это я расписал в моем понимании, надеюсь я ошибаюсь?
-
> stas © (30.10.08 13:15) [10]
> версию компонент, нужно будет перекомпилить все проекты
> и всем юзерам обновить dll этих компонент.
> Это я расписал в моем понимании, надеюсь я ошибаюсь?
В части "и всем юзерам обновить dll этих компонент." - нет, не ошибаетесь.
Но методы, безусловно, надо пересмотреть. Опять же используя уже разработанные именно для этого технологии Windows Installer + соответствующие Windows Domain Policy
Кроме того, в .NET обещано гарантированное отсутствие dll-hell, почитать Рихтера про .NET.
В общем у вас огромное поле для ознакомления с уже давно имеющимися (и весьма витиеватыми!) технологиями от MS, предназначенными ровно дял ваших задач и самим же MS в том числе успешно используемыми.
-
KSergey © (30.10.08 13:28) [11]
Спасибо буду разбираться.
-
чем был мотивирован выбор в пользу .NET при выборе платформы?
-
Eraser © (30.10.08 14:27) [13]
1. Требуется писать еще и web приложения, (ну здесь пока притензий не имею)
решили все писать в одной среде.
2. Все новые среды разработки пишуться под .NET, отставать не хочется
3. Ну естественно не знали что столкнемся с такими проблемами.
-
> Anatoly Podgoretsky © (30.10.08 11:42) [9]
> Читать инструкцию, по распространению конкретного приложения,
> если автор его ты, то ты должен знать, что куда и как.
> Восспользуйся штатным инсталятором.А принципы работы .NET
> ты видимо не понял.
Тоже так думаю.
Объясните пожалуйста почему именно так? чего в этом хорошего?
-
> Windows Installer
нафига?
в профиле настроил копировать dll, и не париться
> stas © (30.10.08 10:54) [4]
> Требуются библиотеки дополнительных компонентов.
> В общей сложности они занимают более 500 мб.
это чтож за компоненты такие???
и все 500 мб одной сборокой идут? выкинуть!
у меня devexpress, дистр занимает 100+ мегов, для приложения нужно dll`ей мегов на 20.
-
devexpress 8.xx
Можно выбирать конечно только те что используются, но неизвестно какой модуль появится завтра на этой машине, поэтому лучше сразу устанавливать все.
-
> stas © (13.11.08 11:27) [17]
> поэтому лучше сразу устанавливать все.
ну и устанавливай, раз лучше. А можно по референсам и по мере необходимости.
-
Petr V. Abramov © (13.11.08 11:43) [18]
Непонятно почему так сделано в vs. Почему не сделать так как в delphi ?
-
> stas © (13.11.08 11:48) [19]
а чем vs отличается от дельфи с рантайм-пакетами???
почему не вкомпилировать все в exe - а потому что поставил один раз фрейворк, и все им пользуются, а венда разруливает, кто на какие версии фреймворка ссылается
-
В обще, что за проблема, 500 мб влазит на CD
-
Anatoly Podgoretsky © (13.11.08 11:56) [21]
>stas © (30.10.08 13:15) [10]
-
Petr V. Abramov © (13.11.08 11:53) [20]
Ну, так в delphi я захотел вкопилил пакет в exe, причем не весь, а только используемые классы, не захотел - сделал отедльно.
Хочу обратить внимание, я не пытаюсь доказать что NET это фуфло, а дельфи это супер. Хочу разобраться почему именно так.
-
Под delphi в данном случае следует понимать delphi 7.
-
> stas (13.11.2008 11:48:19) [19]
Исторически так сложилось, что бы VBшники могли хвастаться размерами.
-
> stas © (13.11.08 12:10) [23]
> Хочу разобраться почему именно так.
идея в следующем: вот есть api для рисования окошек, соотв. функционал является частью системы, все довольны. Вот только разобраться с том апи могут только ЮрийЗотов да Игорь Шевченко. Тепепрь сделали оболочку над этит всем, такую, что в ней может разобраться среднего ума человек, и эта оболочка тоже является частью системы
-
> Petr V. Abramov (13.11.2008 12:15:26) [26]
А теперь и вася пупкин тоже захотел и ему дали эту возможность и идея погибла, стали появляться монстры криво сконструированые. Борланд тоже руку к этому приложил в его .NET
-
> А теперь и вася пупкин тоже захотел и ему дали эту возможность
> и идея погибла
формально да, а реально дельфя ввеля понятие рынок компонент, дельфовых было дофига от Васи с его доплатой, .Net-овские - все коммерческие.
-
У меня вот еще вопрос возник, могу ли я DLL, хотя бы собственной разработки помещать в любую папку указав к ней путь?
или они должны обязательно находится либо в папке с программой либо в стандартной для них папке?
-
> [29] stas © (03.12.08 11:17)
лучше в папку с программой или в одну из ее подпапок.
Если она используется более чем одним приложением, и есть уверенность, что не будет конфликта версий, можно зарегистрировать в GAC