Как запустить ClarionNet

CWICWEB, ClarioNET и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Привет, Всем!

Коллеги, кто ставил ClarioNet, не могли бы вы в двух словах описать как этого зверя заставить работать?

- Поставил локально на своей машине WinXP IIS 5.1
- Переустановил Clarion 5.5 с интернет коннектом и аппликашн брокером.
- Скачал с сайта ClarioNet
cnet_14.exe (это я так понял клиентская часть)
cnsdm_14.exe (это вроде как серверная, 10.4 метра весит сие чудо, из них
8.5 метра - 54 страничная документация PDF, кхе-кхе)

Ну дык вот, инстальнул и то и другое, почитал эту самую 54 страничную документацию, там примерно так описан процесс инсталляции:
Мы тут вам все свалили в один каталог, потому как некогда нам тут ерундой заниматься, копируй далее эти файлы врукопашную, этот туда, этот сюда, этот сам догадайся куда. Дошел я в этом интереснейшем занятии до файла C55NETX.DLL, а нету его, не проинсталлировался. Где брать? Сайт Capesoft-ов на поиск этого файла (это вроде как их творение) молчит.

Короче, как по быстрому все настроить, чтоб крутилось на одной машине?
Помогите, устал я от такого сервиса чета.

Тэкс, IIS вроде лишним оказался, убрал его.

Дай думаю пример испытаю, открываю в C55EE-F example cndemo.app, при попытке скомпилить сообщает "Unknown Variable %AppTemplateFamily"

Че за ерунда? Оно и дальше так все работает?

Запустил я вроде эту хрень, лучше бы доку и не читал.

ГОСПОДИ-И-И-И, КАКОЕ УБОЖЕСТВО

Удачи!
__________________________________
Владимир Якимченко (IСQ 16 993 194)
Написал: ClaList(2)
Гость

Сообщение Гость »

А ви таки чего хотели? Небольшой самодельный браузер для удалённой программы...

---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439

А теперь делись.
В чем, почему и т.п.

"Не дай другому наступить на ТВОИ грабли."

Igor Gubin <igor@quantor.com>

1. Документация в 54 страницы у нормальных программистов не может весить 8,5 мег в дистрибутиве.

2. Документация левая, я прочел ее 2-3 процента и столкнулся с массой ошибок.

3. Примера описано в доке как Quick не существует, существующий пример cndemo.app не компилируется.

4. Приложение connect55.exe, не сохраняет вводимые в него данные, хотя судя по абсолютно убогому интерфейсу должен, при перезапуске приходится вводить все снова.

5. Апликашн брокер как-то по дебильному считает количество подключений к нему, после закрытия тестового приложения по ClarioNet, более не позволяет его запустить, приходится перезапускать апликашн брокер, тоже кстати абсолютно убогое приложение.

6. Тестовое приложение handcode.exe, элементарное из состава примеров, которое удалось скомпилить, при запуске через ClarioNet не ресайзится, хотя делает попытки к этому (ресайзится немного и потом как бы отрывается от мышки).
Это по большому счету и не грабли, это просто first look, я никогда не пользовался Clarion-овскими интернет-приладами. Ладно ерунда, щас протру монитор и клаву и буду уже поспокойней относиться к этом ClarioNet-у. Просто я то думал, что это вещь, сниму-ка я розовые очки да надену маску сварщика.

7. Посмотрите на эти рисунки (форма из демки, которую я таки скомпилил, форма без ресайза)

WithoutClarioNet.gif - это форма редактирования приложения, запущенного без ClarioNet
WithtClarioNet.gif - та же форма, того же exe-шника, запущенного через ClarioNet

Эта проблема будет у всех, кто использует в WINDOWS крупные шрифты.

Особо хочется обратить ваше внимание на покоцанный земной шарик (это сигнализация получения данных), который наехал на [X] в правом верхнем уголке окна. Для меня это серьезный показатель уровня программиста, как он расчитывал позицию этого шарика? почему отталкивался не от позиции крайней левой кнопки окна? какими средствами он его рисовал, почему так криво?

Удачи!
__________________________________
Владимир Якимченко

Че кипишуешь, все работает, по крайней мере у меня после недели траха, все взлетело и сейчас проблем нет.

Тебе нужен connect? так и скажи вышлю, причем с сохранением настроек последнего запуска. И вообще честно говоря, те вещи, о которых ты писал у меня вообще отсутствует, правда версия ClarioNet 1.13. Тестовые приложения вроде запускались на раз. Правда я APP компилить не пробовал, меня больше интересовал HandCode для начала.

С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Эта проблема будет у всех, кто использует в WINDOWS крупные шрифты.
Вот ЭТО точно показатель уровня программиста.
Если СЕГОДНЯ программа не способна гарантировать нормальный интерфейс при различных настройках дисплеев - это диагноз. Причем ОКОНЧАТЕЛЬНЫЙ.

Igor Gubin

(Добавление)

11. ClarioNet не поддерживает весь массив элементов некоторых свойств, таких как PROP:IconList. Назначаю {PROP:IconList,
150} не работает, назначаю {PROP:IconList, 15} работает.

12. ClarioNet похоже не умеет работать с ресурсами, тоже характерный показатель уровня. То есть все иконки, которые вы залинковали в exe-шник будьте добры бросить так же в ноги этому exe, иначе вместо иконок увидите красный значок с восклицательным знаком.

Удачи!
__________________________________
Владимир Якимченко

Быстрая разработка. Ресурс из EXE у тебя система с помощью Load[Icon!Bitmap!и т.д] выдернет, и покажет, а тут же приходится самим велосипедистам выдергивать и показывать. Видать, лень стало.

--
Best regards,
Maxim Yemelyanov

Его не здесь показывать надо, а выдергивать, оформлять файлом, пересылать на клиента и показывать там. Можно, конечно выдергивать в рантайм иконку из экзешкика, но кажется об этом в доке было прописано.

WBR, Nick Tsigouro. MailTo:Nick@arsis.ru

Как я понимаю, сабж сам является веб-сервером? Тогда достаточно на запрос /foo.gif выдернуть этот гиф из екзешника, где он сидит с виде, например, bmр, сформировать из него (в памяти) гифку и отдать клиенту в сокет. Как отдает обычный веб-сервер.
Или можно картинку прямо в bmp и отдать, но траффика жалко.
И не надо связываться с файлами, это двойная работа.

--
Best regards,
Maxim Yemelyanov

(Добавление)

9. Устанавливаю ClarioNet версии 1.4, в установившемся шаблоне написано Version 1.3

По проблеме некомпиляции примера cndemo.app ClarioNet частично реабилитирован, я его испытывал на версии C55EE-F, символ который он хотел %AppTemplateFamily появился в C55 G, это, кстати, оказывается стандартный символ имени основной цепочки шаблонов 'ABC' или 'CLARION'.

Удачи!
__________________________________
Владимир Якимченко
Написал: ClaList(2)
Гость

Сообщение Гость »

10. Знакомьтесь, это Application Server из C55EE G, уж не знаю чей.

Удачи!
__________________________________
Владимир Якимченко
Написал: ClaList(2)
Гость

Сообщение Гость »

8. Давайте разберемся, а зачем собственно человечеству понадобился ClarioNet? По всей видимости не ради самого ClarioNet-a, а для того, чтоб можно было БЫСТРО, с МИНИМАЛЬНЫМИ напрягами дать некоей проге волшебное свойство управляться удаленно. Ок?

А теперь посмотрим на кусочек кода из примера handcode.

Код: Выделить всё

    ACCEPT
      IF ClarioNET:TakeEvent(ClarioNETWindow)                           !--- 
ClarioNET ---
        POST(EVENT:CloseWindow)                                         !--- 
ClarioNET ---
      END                                                               !--- 
ClarioNET ---

      CASE EVENT()
      OF EVENT:OpenWindow
        ClarioNET:OpenWindow(ClarioNETWindow)                           !--- 
ClarioNET ---
      OF EVENT:CloseWindow
        ClarioNET:CloseWindow(ClarioNETWindow)                          !--- 
ClarioNET ---
      END
И так далее. Ни и спашивается зачем собственно дополнительная обработка EVENT:OpenWindow и EVENT:CloseWindow возложена на программиста, когда ClarioNET:TakeEvent(ClarioNETWindow) получает ВСЕ события ACCEPT цикла? Мне представляется это непродуманным проектированием.

Удачи!
__________________________________
Владимир Якимченко

Не понял.
То что помечено !--- .... надо вставлять руками, или вставляется при генерации?
------------------------------------------------------------
Igor Gubin

Отформатировалось несколько не удачно. Более читаемый вид, здесь приведен весь ACCEPT цикл из примера handcode:

Код: Выделить всё

    ACCEPT
      IF ClarioNET:TakeEvent(ClarioNETWindow)  ! ClarioNET
        POST(EVENT:CloseWindow)                     ! ClarioNET
      END                                                           ! ClarioNET

      CASE EVENT()                                            ! ClarioNET
      OF EVENT:OpenWindow                               ! ClarioNET
        ClarioNET:OpenWindow(ClarioNETWindow) ! ClarioNET
      OF EVENT:CloseWindow                              ! ClarioNET
        ClarioNET:CloseWindow(ClarioNETWindow) ! ClarioNET
      END

      CASE ACCEPTED()
      OF ?OK
        UPDATE
        IF RECORDS(Example)
          PUT(Example)
        ELSE
          ADD(Example)
        END
        BREAK

      OF ?Cancel
        BREAK

      OF ?Print
        DoPrint

      END
    END
Все, что откомментировано ! ClarioNET, требуется исключительно для поддержки ClarioNet.

Это ж пример рукописного проекта, тут все руками. Для APP, там есть шаблон, там этого врукопашную, конечно, писать не надо.

Удачи!
__________________________________
Владимир Якимченко

Ну по идее все разумно (с точки зрения процедурного подхода).
После открытия окна выполняются дополнительные операции связанные с ClarioNET и аналогично перед его закрытием. С точки зрения демонстрации все вполне корректно и очень понятно.
А отправка EVENT:CloseWindow по обработке ClarioNET:TakeEvent(ClarioNETWindow) обеспечивает одну "нитку" выполнения при закрытии окна.

Igor Gubin

И где же тут разум?

Код: Выделить всё

     CASE EVENT()                                            ! ClarioNET
     OF EVENT:OpenWindow                               ! ClarioNET
       ClarioNET:OpenWindow(ClarioNETWindow) ! ClarioNET
     OF EVENT:CloseWindow                              ! ClarioNET
       ClarioNET:CloseWindow(ClarioNETWindow) ! ClarioNET
    END
Этот блок кода, который надо автоматически лепить в каждый ACCEPT, и шаблон это тоже делает, должен бы находиться в ClarioNET:TakeEvent, IMHO, это очевидно.

Удачи!
__________________________________
Владимир Якимченко
И где же тут разум?
В том, что сначала выполняется функция открытия окна локальная, а затем
удаленная.
Этот блок кода, который надо автоматически лепить в каждый ACCEPT, и шаблон это тоже делает, должен бы находиться в ClarioNET:TakeEvent, IMHO, это очевидно.
Ну не совсем. Судя по всему ClarioNET:TakeEvent отрабатывает события удаленного окна.
Ну тут мы с тобой опять можем спорить до бесконечности.
Предлагаю сойтись на том, что оба подхода имеют право на жизнь.
Я думаю ИЗНАЧАЛЬНАЯ причина в том, чтобы МИНИМАЛЬНО изменять APP при переводе на ClarioNET (c учетом существующих точек вставки и т.п.)

------------------------------------------------------------
Igor Gubin
В том, что сначала выполняется функция открытия окна локальная, а затем удаленная.
Не понял. Это все в одном ACCEPT цикле! Выполняется прога на стороне сервера, какая нафиг локальная и удаленная.
Ну не совсем. Судя по всему ClarioNET:TakeEvent отрабатывает события удаленного окна.
Да какая разница какие события какого окна он обрабатывает, любой "автоматический оптимизатор кода" (есть такие? :))
первым делом бы засунул этот блок в ClarioNET:TakeEvent, при этом НИЧЕГО В ЛОГИКЕ НЕ ИЗМЕНИТСЯ.
Ну тут мы с тобой опять можем спорить до бесконечности.
Предлагаю сойтись на том, что оба подхода имеют право на жизнь.
Какие подходы? "Ошибочный" и "не очень"? Имеют право на жизнь, по определению.
Я думаю ИЗНАЧАЛЬНАЯ причина в том, чтобы МИНИМАЛЬНО изменять APP при переводе на ClarioNET (c учетом существующих точек вставки и т.п.)
Парадокс, я ж о том и твержу, для того чтоб МИНИМАЛЬНО изменять APP, надо максимально функционал связанный с ClarioNet запихивать в ClarioNet, а не размазывать по прикладу.

Удачи!
__________________________________
Владимир Якимченко

Вот тебе connect для начала. Кто мне его присылал - не помню, по моему кто-то из Арсиса. Я его малость доработал, на предмет сохранения параметров.
Надеюсь автор не будет возражать....

Кстати, обрати внимание, у меня на версии 1.3 работает все замечательно, может всеж попробуешь более младшую версию?

Опять же - никаких проблем с крупными шрифтами нет

С уважением, Ставич Олег

Спасибо! Это действительно более правильный connect, дык и отошли его автору ClarioNet, тыщщщи людей тебе спасибо скажут
:))
Кстати, обрати внимание, у меня на версии 1.3 работает все замечательно, может всеж попробуешь более младшую версию?
Мне нужна именно последняя :)) Протестировать совместимость надо.

Удачи!
__________________________________
Владимир Якимченко
Написал: ClaList(2)
Гость

Сообщение Гость »

Как я понимаю, сабж сам является веб-сервером? Тогда достаточно на запрос ...
Нет. Для организации обмена он через AppServer пользует IIS.
... /foo.gif выдернуть этот гиф из екзешника, где он сидит с виде, например, bmр, сформировать из него (в памяти) гифку и отдать клиенту в сокет. Как отдает обычный веб-сервер.
Нет. Там совсем другая технология. Клиенту передается инфа о типе контрола и всех его атрибутах. А клиент с помощью CREATE создает на своем окне соотв. контрол и через ?Control{PROP:...} = ... управляет его поведением. Поэтому
Для ?Image{Prop:Text} = ... нужен файл на клиенте. Короче. ?Image{Prop:Text}
= '~File.ico' не поддерживается. Только ?Image{Prop:Text} = 'File.ico'.
Или можно картинку прямо в bmp и отдать, но траффика жалко.
И не надо связываться с файлами, это двойная работа.
Какая бы ни была, передача файлов это составная часть продукта. В частности так работают репорты. WMF-ы создаются на сервере и передаются на клиента для распечатки.

WBR, Nick Tsigouro
Этот блок кода, который надо автоматически лепить в каждый ACCEPT, и шаблон это тоже делает, должен бы находиться в ClarioNET:TakeEvent, IMHO, это очевидно.
Вероятно это сделано для того, что-бы можно было, при необходимости, выполнить некий свой код ПЕРЕД обработкой соответсвующего события ClarioNET-ом. Т.е. имеем подход, вполне вписывающийся в шаблонную
разработку приложений.
Другое дело, что это можно было оформить несколько по другому, что-бы не писать лишний код если не нужны свои вставки.

=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)
Гость

Сообщение Гость »

Вот тебе connect для начала. Кто мне его присылал - не помню, по моему кто-то из Арсиса. Я его малость доработал, на предмет сохранения параметров.
Надеюсь автор не будет возражать....
Как что-то стоящее значит Арсис?? Даа? ;)

Best regards,
Andrew Listiev
Work mailto:andrewl@inbox.lv
Home mailto:andrewl@inbox.lv

Ну вот, автор отозвался, чесссное слово никого не хотел обидеть, просто не помню от кого получил "человеческий" connect. Так автор не возражает?

С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com
Написал: ClaList(2)
Гость

Сообщение Гость »

Да нет конечно же ;)

Best regards,
Andrew Listiev
Написал: ClaList(2)
Гость

Сообщение Гость »

Hello Vladimir,

Зачем заморачиваться с ClarioNet, когда есть Windows Terminal Server.
Я был просто потрясен, когда попробовал все это дело в работе. Есть, правда, ограничения на 90 дней, а дальше надо покупать(!?) лицензии. Но судя по конфам у микрософт есть фича: если используешь Win2000AS в качестве сервера, а Win2000Pro - в качестве рабочих станций, то все катит и без лицензирования. В Win2003 Server эту фичу прикрыли...

--
Best regards,
morkovin mailto:morkovin@interdacom.ru
Волгоград

А чего же народ заморачивается с ClarioNet? По незнанию? Я так понимаю, что Windows Terminal Server реализует то же самое? То есть позволяет работать с конкретным приложением (а не просто с удаленным десктопом), причем много пользователей могут работать с одним прикладом? Причем рисование окон на удаленной стороне происходит не в графике как в том же Remote Administrator, а нормальными виндовыми средствами?

Так чоль? Так зачем тогда огород городить?

Удачи!
__________________________________
Владимир Якимченко (IСQ 16 993 194)
Зачем заморачиваться с ClarioNet, когда есть Windows Terminal Server.
Попробуй сверху на него поставить Citrix Metaframe. Еще больше понравиться.
Я был просто потрясен, когда попробовал все это дело в работе. Есть, правда, ограничения на 90 дней, а дальше надо покупать(!?) лицензии.
Это, на самом деле, не проблема. Лицензии можно добавить. Рецепт довольно быстро находиться через google.

Hope to hear from you soon.
/Alexey

В догонку. Проходила информация, что в цитриксе лицензируется количество одновременных подключений, а в MS - каждое рабочее место. В некоторых ситуациях можно экономить.

С уважением,
Вячеслав Черников support@finsoft.ryazan.ru

Мои 2 коп.:
Юзаем TS достаточно плотно, включая веб-доступ.
Хорошее решение.
Надежно, безопасно, настраиваемо, шустро.

Обход 90 дней есть, но это гемор, т.к. нужно сбрасывать помимо сервера (базу лицензий) еще и ветку в реестрах клиентов.
Можно встроить в приложение автоматический сброс на клиенте, но так можно легко срубить чужую инфу ... шуметь будут.

Насчет W2k_AS+W2k_Prof - не знаю, сомневаюсь что MS сделает такой подарок.
Дома стояла, но я всегда юзал в remote admin режиме.

Пишите, если что.

Regards,
Vasiliy Goncharenko.

Если перед установкой терминал-сервера (MS) сдвинуть системную дату вперед, а после установки назад, то проблема с триальной версией отпадает.
Если же работали без этого, то можно поправить. Где-то у меня лежит описание. Давно уже было, но вроде особо не напрягало.

С уважением,
Вячеслав Черников
Написал: ClaList(2)
Гость

Сообщение Гость »

Регистрация терминал сервера W2K или снятие ограничения службы лицензирования в
90 дней

1) NT 5.02 B-2195 [TerminalServer] (C) by *HW*

Remove expiration and limit checks! (RA mode)
ICAAPI.DLL
00004B84: 17 00 ; Connections licensed
00004CC7: 7C EB ; Connections allowed
00004DAA: 74 EB ; Expirationless

2) Установка w2k и терминальных служб (как и лицензирования)... проводим на
машине в которой системное время установлено на дату вашего 40 летия... :-)

После установки сервака... верните время на суровые будни и не обламывайтесь

3) Для этого вам нужно зайти на https://activate.microsoft.com заполнить анкету
любой лабудой (Но! введенные Имя, Фамилия, Организация должны быть в точности
далее введены в свойства сервера), в итоге вы получите код для активизации
сервера лицензий (чтобы после 90 дней у вас все еще работал сервер лицензий),
далее вам будет предложено зарегистрировать ваши лицензии - заполняете
необходимое количество и вот самый интересный момент! у вас запросят номер
заявки (Enrollment Agreement Number), в любом иностранном поисковике набираете
"Enrollment Agreement Number" и получаете номер, вуаля, вам сгенерять код
ключевого пакета лицензий! - ЭТО И ЕСТЬ ГЕНЕРАТОР ЛИЦЕНЗИЙ, ЛЮБЕЗНО
ПРЕДОСТАВЛЕННЫЙ САМИМ MICROSOFT'ОМ!!!
Для начала вот вам Enrollment Agreement Number 6565792;5296992
Примечание. Чтобы все прошло успешно, вам нужно знать:
a) 25-значный серийный номер (пять раз по пять цифробукв) Windows 2000 server на
основании которого генериться код продукта xxxxx-xxx-xxxxxxx-xxxxx;
b) На основании кода продукта генериться 35-значный код сервера лицензий (семь
раз по пять цифробукв);
c) На основании кода сервера лицензий, Фамилии, Имени, Организации и 7-значного
Enrollment Agreement Number генериться 35-значный код ключевого пакета лицензий
(семь раз по пять цифробукв).

4) А что делать если вы когдато установили сервер и сказали что лицензии на
каждой клиенской машине, а сейчас установили правильно. Сообщение действительно
будет выдаваться и нужно тогда просто залесть в реестр и удалить на клиенте
ключи Store, HardwareID в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing,
ДОС тут конечно до фени, так как сервер уже переустановили в качестве "сервера с
например 20 лицензиями". Надеюсь теперь по поводу доса вопрос отпадет навсегда.
Ответить