Форум » [x]Harbour » Перевод на Harbor http webserver... » Ответить

Перевод на Harbor http webserver...

Aleksandr_D: Друзья, подскажите в каком направлении рыть ... Есть программа, переведена на Harbour. Работает в терминальном режиме. Заказчики просят перевести программы на GUI интерфейс. Появилась идея перевести на графический интерфейс (GUI) но в следующей архитектуре: Клиентская часть: содержит графический интерфейс написанный на C# (C шарп). Клиентская часть формирует запросы на сервер, получает ответы (JSON) и с ними работает. Серверная часть: планируется написать на Harbour. Работает по протоколу IP (Http). «Слушает» порт получает, обрабатывает запросы от клиентской части, возвращает данные (JSON). Какие будут мысли? Может у кого, то есть ссылки на подобный материал? Ссылка: Harbor http webserver https://medium.com/harbour-magazine/restful-server-with-harbour-575e59335cf7

Ответов - 26, стр: 1 2 All

SergKis: В чем фишка исп. C#, используя вэб-броузер вместо, можно работать с разных устройств (м.тел, смартфон, планшет, ...) разных фирм. Такая архитектура у нас работает (с модифицированным под себя http://www.dbtopas.lt/hrb/uhttpd-0.3.zip), но это небольшая часть (типа "личный кабинет" соединенный с cms joomla) к задаче "Квартплата", которая GUI на hmg + letodb + ftp сервера

SergKis: PS Для вэб-броузер таблиц можно исп., к примеру, http://w2ui.com/web/demos/#!grid/grid-1 (примеров много) Приличный вид, ведение, поиски, resize, итоги и др. штуки

Aleksandr_D: Сергей, спасибо за ответы! "В чем фишка исп. C#" - Для сокращения сроков реализации выделяют в помощь сотрудника специалиста по C# "используя вэб-броузер вместо, можно работать с разных устройств" - использовать вэб-броузер не получиться. Программа банковская и безопасники не разрешают использовать такую архитектуру.


SergKis: Aleksandr_D пишет Harbor http webserver Это используется, т.к. базы dbf ?

Aleksandr_D: Да, именно так. Решение обусловлено тем, что хочется разделить интерфейсную часть от обработчиков (сервер приложений) и базы данных. В последствии планируется "поэтапный" переход на другую СУБД.

SergKis: По мне, архитектура получается работоспособная, но в целом "хрен редьки не слаще", т.к. на стороне клиента будут не sql запросы, а на стороне сервера не их реализация (еще надо посмотреть как потоки http сервера потянут нагрузку). В нашем варианте на ~3000 квартир 50% исп. личный кабинет, из них 50% это PC, оставшиеся это смартфоны и т.д. При этом из 50 зарезервированных потоков мах используется 5, т.е. всего вполне хватает. использование нами http сервера обусловлено очень быстрой скоростью реакции, т.е. ввели, нажали Enter и тут же на экране уже данные с расчетом и др. поле ввода, Apache, NodeJs с cgi тоже быстро, но не так, как хотелось бы. Еще на clipper с прослойкой VO 2.0\2.7 базу переносил в mysql и firebird и VO работало с sql командами. Трудностей переноса практически не было. Была сделана процедура создания таблиц от структуры dbf + создание процедур сервера для append, replace, delete операций (если это для таблицы надо, конечно). Тогда GUI может быть любой с клиентской dll sql сервера и работать в "правильных" командах. Еще вариант с LetoDbf ( https://github.com/elchs/LetoDBf ). Работают set relation нормально. - можно подсунуть в терминалку и перейти работать на команды из leto_std.ch, типа sql вариант - сделать dll и подсунуть C# (не пробовал)

SergKis: PS освежить терминалку GUI элементами можно исп. contrib\gtwvw

Aleksandr_D: Спасибо за информацию! «Еще вариант с LetoDbf ( https://github.com/elchs/LetoDBf ). Работают set relation нормально. - можно подсунуть в терминалку и перейти работать на команды из leto_std.ch, типа sql вариант» - этот вариант в стадии финальной отладки. «освежить терминалку GUI элементами можно исп. contrib\gtwvw» - мне кажется такой это промежуточные вариант не нужен. По ссылке: Harbor http webserver https://medium.com/harbour-magazine/restful-server-with-harbour-575e59335cf7 Скачал исходники Harbor http webserver. При сборке требует библиотеку HBSSL.LIB При попытке собрать библиотеку ….\HARBOUR\contrib\hbssl\ ошибки: HBMK2 hbssl.hbp hbmk2: Building sub-project (level 2): hbssls.hbp hbmk2[hbssls]: Warning: Missing dependency: openssl HBMK2 hbssls.hbp hbmk2[hbssls]: Warning: Missing dependency: openssl Что делаю не так? А где можно скачать библиотеку HBSSL.LIB для Harbour 3.2.0dev (r1811161533) ?

SergKis: Что то было в разных местах форума и тут http://clipper.borda.ru/?1-4-0-00000822-000-0-0-1363865750

Dima: Aleksandr_D пишет: hbmk2[hbssls]: Warning: Missing dependency: openssl качнуть его надо http://slproweb.com/products/Win32OpenSSL.html ЗЫ Под Mingw32 могу дать если надо

Aleksandr_D: Спасибо! Помогло отчасти. Установил Win32 OpenSSL v1.0.2t Библиотеку HARBOUR\contrib\hbssl собирал с использованием батника: SET HB_WITH_OPENSSL=C:\OpenSSL-Win32\include\ HBMK2.EXE hbssl.hbp При компиляции были предупреждения: bssl\x509.objWarning: 'hbssl' not found in library Warning: 'ssl_hbcon' not found in library Warning: 'ssl_hb' not found in library Warning: 'ssl_inet' not found in library Warning: 'ssl_sock' not found in library Warning: 'bio' not found in library Warning: 'err' not found in library Warning: 'evp' not found in library Warning: 'evpciph' not found in library Warning: 'evpenc' not found in library Warning: 'evpmd' not found in library Warning: 'evppkey' not found in library Warning: 'pem' not found in library Warning: 'rand' not found in library Warning: 'ssl' not found in library Warning: 'sslciph' not found in library Warning: 'sslctx' not found in library Warning: 'sslsess' not found in library Warning: 'x509' not found in library Библиотеки собрались: hbssl.lib ssleay32.lib libeay32.lib hbssls.lib Скопировал библиотеки в HARBOUR\contrib\hbssl\tests\test.prg При сборке test.prg Появляется большое количество Unresolved external. Собирал и HBMK2 … И с использованием *. Hbp в котором указывал библиотеки. Error: Unresolved external '_SSL_use_certificate_ASN1' referenced from D:\HARBOU R\CONTRIB\HBSSL\TESTS\HBSSL.LIB|ssl Error: Unresolved external '_SSL_use_PrivateKey' referenced from D:\HARBOUR\CONT RIB\HBSSL\TESTS\HBSSL.LIB|ssl Error: Unresolved external '_SSL_ctrl' referenced from D:\HARBOUR\CONTRIB\HBSSL\ TESTS\HBSSL.LIB|ssl Error: Unresolved external '_SSL_set_msg_callback' referenced from D:\HARBOUR\CO NTRIB\HBSSL\TESTS\HBSSL.LIB|ssl Error: Unresolved external '_RAND_seed' referenced from D:\HARBOUR\CONTRIB\HBSSL \TESTS\HBSSL.LIB|rand Error: Unresolved external '_RAND_add' referenced from D:\HARBOUR\CONTRIB\HBSSL\ TESTS\HBSSL.LIB|rand Error: Unresolved external '_RAND_poll' referenced from D:\HARBOUR\CONTRIB\HBSSL \TESTS\HBSSL.LIB|rand Error: Unresolved external '_RAND_status' referenced from D:\HARBOUR\CONTRIB\HBS SL\TESTS\HBSSL.LIB|rand Error: Unresolved external '_RAND_event' referenced from D:\HARBOUR\CONTRIB\HBSS L\TESTS\HBSSL.LIB|rand Error: Unresolved external '_RAND_screen' referenced from D:\HARBOUR\CONTRIB\HBS SL\TESTS\HBSSL.LIB|rand Error: Unresolved external '_SSL_CIPHER_description' referenced from D:\HARBOUR\ CONTRIB\HBSSL\TESTS\HBSSL.LIB|sslciph hbmk2: Error: Running linker. 2

Dima: Harbour хоть свежий ? Win32 OpenSSL v1.1 надо было тянуть если Harbour свежий

Aleksandr_D: "Harbour хоть свежий ? " - Harbour 3.2.0dev (r1811161533) сборка от 03.12.2018

Dima: на OpenSSL 1.1 переход был сделан 2018-11-16 16:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) Так что надо смотреть что за версия Harbour у вас

Aleksandr_D: У меня сборка для bcc 5.5.1. которую мне предоставил Александр Кресин (Вот здесь: https://drive.google.com/open?id=1ytUnU-K2THjfzs2ESGEdrW7Y-yskoydt )

Dima: Aleksandr_D Попробуй таким батником (пути поправь если надо) Собираться должно без ошибок , если они есть , что то пошло не так. Батник сложи в ....contrib\hbssl\ set path=C:\bcc55\bin\ SET HB_WITH_OPENSSL=C:\OpenSSL-Win32\include c:\hb32\bin\hbmk2 hbssl.hbp

Aleksandr_D: Батник set path=C:\Borland\BCC55\Bin SET HB_WITH_OPENSSL=C:\OpenSSL-Win32\include D:\HARBOUR\bin\HBMK2 hbssl.hbp Те же ошибки/warning Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation hbmk2: Created import library: ssleay32.lib <= C:\OpenSSL-Win32\ssleay32.dll hbmk2: Creating static library... hbssl.lib TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation /P128 hbssl.lib -+ .hbmk\win\bcc\hbssl\hbssl.obj -+ .hbmk\win\bcc\hbssl\ssl_hb con.obj -+ .hbmk\win\bcc\hbssl\ssl_hb.obj -+ .hbmk\win\bcc\hbssl\ssl_inet.obj -+ .hbmk\win\bcc\hbssl\ssl_sock.obj -+ .hbmk\win\bcc\hbssl\bio.obj -+ .hbmk\win\bc c\hbssl\err.obj -+ .hbmk\win\bcc\hbssl\evp.obj -+ .hbmk\win\bcc\hbssl\evpciph.ob j -+ .hbmk\win\bcc\hbssl\evpenc.obj -+ .hbmk\win\bcc\hbssl\evpmd.obj -+ .hbmk\wi n\bcc\hbssl\evppkey.obj -+ .hbmk\win\bcc\hbssl\pem.obj -+ .hbmk\win\bcc\hbssl\ra nd.obj -+ .hbmk\win\bcc\hbssl\ssl.obj -+ .hbmk\win\bcc\hbssl\sslciph.obj -+ .hbm k\win\bcc\hbssl\sslctx.obj -+ .hbmk\win\bcc\hbssl\sslsess.obj -+ .hbmk\win\bcc\h bssl\x509.objWarning: 'hbssl' not found in library Warning: 'ssl_hbcon' not found in library Warning: 'ssl_hb' not found in library Warning: 'ssl_inet' not found in library Warning: 'ssl_sock' not found in library Warning: 'bio' not found in library Warning: 'err' not found in library Warning: 'evp' not found in library Warning: 'evpciph' not found in library Warning: 'evpenc' not found in library Warning: 'evpmd' not found in library Warning: 'evppkey' not found in library Warning: 'pem' not found in library Warning: 'rand' not found in library Warning: 'ssl' not found in library Warning: 'sslciph' not found in library Warning: 'sslctx' not found in library Warning: 'sslsess' not found in library Warning: 'x509' not found in library

gfilatov2002: Aleksandr_D пишет: Библиотеки собрались: hbssl.lib ssleay32.lib libeay32.lib hbssls.lib Рекомендую пересобрать библиотеки ssleay32.lib libeay32.lib с помощью борландовской утилиты implib: if exist ssleay32.dll implib -a ssleay32.lib ssleay32.dll if exist libeay32.dll implib -a libeay32.lib libeay32.dll Aleksandr_D пишет: Те же ошибки/warning Это должно помочь решить проблему

Aleksandr_D: gfilatov2002 Батник set path=C:\Borland\BCC55\Bin SET HB_WITH_OPENSSL=C:\OpenSSL-Win32\include D:\HARBOUR\bin\HBMK2 hbssl.hbp if exist ssleay32.dll implib -a ssleay32.lib ssleay32.dll if exist libeay32.dll implib -a libeay32.lib libeay32.dll Результат такой же. Если отдельно запустить батник implib -a ssleay32.lib ssleay32.dll implib -a libeay32.lib libeay32.dll То размер библиотек уменьшается и становиться = 1024. Или я не правильно исполняю строки : if exist ssleay32.dll implib -a ssleay32.lib ssleay32.dll if exist libeay32.dll implib -a libeay32.lib libeay32.dll

Dima: DLL сложи в папку где батник живет



полная версия страницы