arrow Monday, 01 December 2008  
Главное меню
Главная
Новости
Статьи
Комментарии
Файлы
Ресурсы
Ленты новостей
Форум разработчиков
Фотогалерея кларионистов
Пользователи
Общение
Ссылки
Поиск
Контакты
Карта сайта
Ссылки
Softvelocity
Clarion Magazine
Кларион в России
SealSoft Company
IngaSoft Plus
Авторизация (CB)
Счетчик



who's online
IP-драйвер: мнение #2 Версия для печати Отправить на e-mail
Написал Андрей Попов   
08.08.2007
Автор: Сергей Редькин
 
Хотелось поделиться своими впечатлениями по работе драйвера. Поскольку проекты реально работают у клиентов и возимся мы с ним довольно долго и плотно, то есть и подводные камни, на которые мы наткнулись. Темплеты ABC, но не стандартные, а доработанные и перекочевавшие из CW4. Темплеты и классы адаптируются за 1 час...
При работе по 100 мбит сети никаких существенных замедлений не замечено. При многопользовательской работе получаем выигрыш на порядок, т.к. на TPS-файлах при работе с двух станций есть замедление в 10-20 раз. Работа через инет по ADSL тоже довольно шустрая. Через GPRS или 3G смотрится очень тоскливо. Броузник (одна страница) открывается 1-2мин. Но это понятно ping 0.5-1сек для GPRS и 0.25-0.4 для 3G. Но работать при необходимости все равно можно.
 
Несомненное преимущество, что с одну APP можно использовать, как для TPS, так и для IP. Для этого в глобальных настройках следует включить (отключить один флажок), а в рукописном коде использовать условную компиляцию. В простейшем случае она не нужна, т.к. код одинаковый. В дальнейшем при оптимизации часть кода перебирается в хранимые процедуры на сервере.
 
Если в списках используются функции фильтрации, то их надо продублировать на сервере. Единственная неприятность, что надо использовать не классы, а операторы языка для работы с файлами. Одна серверная DLL может работать с разными наборами данных. Для этого достаточно написать хранимку, в которой указывается путь к данным. При этом возможно запретить выход за пределы каталога.
 
Что касается глюков и не оптимальной работы.
1. В доке продекларировано, что хранимка возвращает строку. На самом деле возвращается CSTRING. Например, невозможно возвратить группу, в которой используется LONG. Обходится путем преобразования LONG в STRING.
2. Для VIEW не работает PROP:IPRequestCount (позволяет передать группу записей за раз). Как обойти и почему не работает пока не исследовали - просто не используем.
3. Не работает RECORDS(File), RECORDS(Key). Вернее работает один раз после открытия или после SET - NEXT. Выход - хранимка на сервере или SET - NEXT.
4. При чтении VIEW реально тянутся все Record, участвующие во VIEW, а не описанные поля. Запись не сжатая, поэтому траффик повышается.
5. В драйвере DOS тоже аналогичный глюк - GET(File,Pointer,Len) с сервера реально тянут количество байт рекорда. Поскольку драйвер используется при пересылке файлов и буфер в оригинальных классах длиной 64К, то класс пересылки следует доработать, учитывая эту особенность.
 
Сергей Редькин
SPR AT_NO_SPAM enigmasoft.com.ua
ЧП "Энигма Софт"

комментариев
Written by StillZero on 2007-08-08 06:26:19
еще одно мнение о ip-драйвере.. 
я обратил внимание, что здесь не нравится ABC, а в этом письме  
 
>Единственная неприятность, что надо использовать не классы, а операторы языка для работы с файлами. 
 
..другое, фраза  
>проекты реально работают у клиентов и возимся мы с ним довольно долго и плотно 
не служит хорошей рекламой :)

Only registered users can write comments.
Please login or register.

Powered by AkoComment 2.0!

Последнее обновление ( 08.08.2007 )
 
< Пред.   След. >

вверх страницы