Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

Макрос для исходника   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
14-89482
Zhouck
2003-10-03 15:57
2003.10.27
Кратчайшее расстояние. На кубе


1-89334
Brutus
2003-10-16 14:14
2003.10.27
Как запустить программу


6-89417
riland
2003-09-02 11:52
2003.10.27
Как определить логин подключившегося юзера?


14-89564
Knight
2003-10-07 23:08
2003.10.27
Ну вот прочитал...


3-89146
Vadim S
2003-10-07 12:40
2003.10.27
200 как отключить авто оптимизацию запроса?