Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизМакрос для исходника Найти похожие ветки
← →
MVova (2003-10-14 12:05) [0]Всем привет.
Есть сервер и клиент. При подключении клиента сервер проверяет версию клиента и если она устарела, не разрешает подключиться. Для этого есть приблизительный код:
if VerCli < 10 then ....
Можно сделать так, чтоб в исходнике сервера не менять ручками каждый раз 10 11 12 .... а написать некий макрос, который при компиляции выполняется, читает версию клиента, и результат подставляется в исходный код.
← →
Reindeer Moss Eater (2003-10-14 12:09) [1]Это называется поддержка настроек программы
← →
MVova (2003-10-14 12:11) [2]
> Reindeer Moss Eater © (14.10.03 12:09) [1]
Хочется перекинуть это на Delphi.
← →
Reindeer Moss Eater (2003-10-14 12:11) [3]При подключении клиента сервер проверяет версию клиента и если она устарела, не разрешает подключиться
Дело конечно хозяйское, но правильнее поддерживать все версии клиентов.
← →
Reindeer Moss Eater (2003-10-14 12:12) [4]Хочется перекинуть это на Delphi.
Что мешает?
← →
MVova (2003-10-14 12:15) [5]
> Reindeer Moss Eater © (14.10.03 12:11) [3]
Не всегда это возможно. И на скорость работы может влиять.
> Reindeer Moss Eater © (14.10.03 12:12) [4]
Как это делать?
Можно написать отдельную програмку, которая это будет делать, и запускать перед последней компиляцией. Но если есть какойто встроенный механизм....
← →
Юрий Федоров (2003-10-14 12:17) [6]>>Можно написать отдельную програмку
Думаю, это единственный вариант. Кстати, ей можно поручить и процесс компиляции - путем запуска Dcc32
← →
Reindeer Moss Eater (2003-10-14 12:19) [7]if VerCli < 10 then ....
А вто это самое "десять" нельзя хранить где-нибудь в файле,реестре, etc???
← →
MVova (2003-10-14 12:21) [8]
> Юрий Федоров © (14.10.03 12:17) [6]
> путем запуска Dcc32
Для этого я использую TestComplete, все визуально и красиво :)
← →
MVova (2003-10-14 12:23) [9]
> Reindeer Moss Eater © (14.10.03 12:19) [7]
10 это версия файла клиента (примерно), пусть можно хранить где угодно. Как заставить компилятор считать ето 10 не изи исходника а из файла,реестра, etc?
← →
Reindeer Moss Eater (2003-10-14 12:26) [10]> Reindeer Moss Eater © (14.10.03 12:11) [3]
Не всегда это возможно. И на скорость работы может влиять.
Вообще-то это возможно всегда. И на скорость повлиять напрямую не может.
Весь секрет в том, что бы последний сервер знал все предыдущие версии клиентов и продолжал уметь с ними работать.
← →
MVova (2003-10-14 12:29) [11]
> Reindeer Moss Eater © (14.10.03 12:26) [10]
Нужно оценивать затраченные ресурсы и востребованность.
Это отдельная тема.
← →
Reindeer Moss Eater (2003-10-14 12:32) [12]Нужно оценивать затраченные ресурсы и востребованность.
Ресурсы на поддержку старых клиентов уже были затрачены.
Ресурсы на поддержку клиентов новых тратить придется.
Остается добавить всего несколько if"ов и не писать новые процедуры затирая старые.
← →
MVova (2003-10-14 12:41) [13]
> Reindeer Moss Eater © (14.10.03 12:32) [12]
> Остается добавить всего несколько if"ов и не писать новые процедуры затирая старые.
Если было б все так просто. А если транспортные классы (клиент и сервер обмениваются параметрами через упаковку класса в variant) разные? Технически и такое можно поддерживать, но простыми if-ами не обойдется. Надо держать разные версии классов, обработку их.....
Теория и практика не всегда идут вместе.
← →
Reindeer Moss Eater (2003-10-14 12:46) [14]Надо держать разные версии классов, обработку их.....
Так ВСЕ ЭТО на момент выпуска нового сервера УЖЕ реализовано.
Надо просто не убивать содеянное.
← →
MVova (2003-10-14 12:57) [15]
> Reindeer Moss Eater © (14.10.03 12:46) [14]
Надо просто не убивать содеянное.
Оно не убивается, оно меняется. И по этому надо делать дополнительную обработку - дополнительные затраты, "грабли"...
В данном случае не критична поддержка всех старых версий.
← →
Reindeer Moss Eater (2003-10-14 12:59) [16]Оно не убивается, оно меняется.
Если текст новой процедуры пишется поверх старого, то старая процедура убивается.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c