Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.012 c
1-89235
BillyJeans
2003-10-14 13:59
2003.10.27
Маленький вопросик по ListView...


1-89323
AlexanderSK
2003-10-16 17:51
2003.10.27
Обработк всех исключений приложения


14-89552
wHammer
2003-10-08 09:53
2003.10.27
Небольшая задачка для любителей!


1-89258
Duce
2003-10-14 18:15
2003.10.27
метод protected в наследнике определить как public?


1-89312
Chlavik
2003-10-16 19:14
2003.10.27
Своё, что то типа DoubleBuffered





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский