Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 08:59   #1
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
Вопрос Загрузка DLL из локальной сети (+ и -)

У нас в конторе принято динамическую библиотеку с общими для всех проектов функциями хранить на локальном сетевом ресурсе, и загружать её оттуда в программу (вызывать функции). То бишь в программе пишут:
Код:
hdll := LoadLibrary('\\server\share\lib1.dll');
Что есть в этом хорошего и что плохого?

У нас говорят что в этом только плюсы, так как всегда актуальная версия библиотеки во всех приложениях.
Но как-то сомневаюсь я.
Возник спор на этой почве.
Кто что думает?
astecenko вне форума Ответить с цитированием
Старый 18.08.2011, 10:27   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Не будет сети - не будет работать приложение. Лично я бы не использовал такую схему. На мой взгляд проще оранизовать обновление составных частей программы, как это делают остальные приложения.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 18.08.2011, 10:45   #3
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Это понятно, у нас файл-серверный метод доступа к БД, базы Paradox и DBase, доступ через BDE. Так что если не будет сети то в принципе ничего работать не будет.
А другие минусы есть?
astecenko вне форума Ответить с цитированием
Старый 18.08.2011, 11:50   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Идея не очень, имхо.

По мере усложнения проекта, обновление библиотеки и клиентов будет превращаться в АДъ:

- чтобы обновить ДЛЛ нужно прибить всех клиентов

- если один из старых клиентов окажется несовместимым с новой версией ДЛЛ, им уже нельзя будет пользоваться пока не обновят клиента или пока не зальют совместимую ДЛЛ (= убить всех работающих клиентов).

- при загруженной сети, есть шанс, что loadlibrary или ваш клиент обломается. Особенно, если ДЛЛ большая и в ней много страниц, которые периодически могут быть выгружены/подгружены. Погугли network share ERROR_SWAPERROR, некоторые сталкивались с такой проблемой.

Лучше, имхо, при старте клиента смотреть, есть ли новая версия ДЛЛ на сервере, если есть, делать бэкап старой, скачивать новую к себе, пробовать запуститься, если неудача, восстановливать старую версию.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Socket: Подключение клиента из глобальной сети к серверу, расположенному в локальной сети Дамир Общие вопросы .NET 4 01.12.2010 12:12
Интернет в локальной сети StartMis Компьютерное железо 1 21.07.2010 16:53
Настройка локальной сети Наденька Работа с сетью в Delphi 2 31.07.2009 17:09
Эмулятор локальной сети andrey4623 Софт 4 20.08.2007 19:58