Разработка под веб

Флейм. Только просьба - не материться! :)

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

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

Может, кому интересно будет. Недавно сделал демонстрационное подключение своего веб модуля.

finsoftrz.ru/gurman

Логины 111, 222, 333. Пароль у всех одинаковый mag. Можно делать заказы, только их забирать никто не будет. Фотки подобраны через google search в автоматическом режиме, поэтому могут быть несоответствия у некоторых товаров.

Если в двух словах, веб модуль - это часть учетной системы ФинСофт:КупецЪ для подключения внешних пользователями (оптовых покупателей и менеджеров по продажам). Написано на php. Имеет возможности параметрической настройки через конфигурационный файл. Необходимая для работы информация размещается на веб хостинге в формате файлов sqlite и сразу готова к использованию. То есть это решение "из коробки", практически не требующее затрат на развертывание и поддержку. Все, что нужно, это стандартный юниксовый хостинг стоимостью порядка 2 тыс руб в год. Вот тут старое описание, как это в целом работает со стороны учетной системы. Сейчас заметно подразвилось, но общая идеология осталась.

https://olegon.ru/showthread.php?t=18436
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Разработка под веб

Сообщение kreator »

А как технически информация из десктопной версии уходит на сайт? Почему SQLite, а не MySQL, например?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

Имеется ввиду, из учетной системы? Номенклатура, остатки, некоторые реквизиты покупателей, индивидуальные цены, информация о приходах, актуальные акции, информация о дефиците и т.п. На вскидку, с десяток таблиц.
Sqlite по причине работаем без администрирования. Сформировали в учетной системе файлики, перенесли их на хостинг, скрипт сразу с ними работает. Никаких лишних телодвижений. Сломать тоже практически нечего. Если совсем все потерять на хостинге, то автоматически восстанавливается из учетной системы, включая информацию о разрешенных подключениях и историю заказов. Самое долгое в этом процессе заново залить изображения товаров, если их много (десятки тысяч).
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

Кстати, знаете, в чем основной затык будет для клариониста, когда он начнет писать под веб? Я как-то не сразу это прочуствовал. Когда мы пишем под винду, то проектирование интерфейса всегда происходит в рамках окон. Мы размещаем контролы в окне, смотрим результат на предпросмотре в виде окна. В вебе понятия окон как такового нет. Мы проектируем функциональные части интерфейса (таблицы, наборы кнопок, меню и т.п.) только на своем уровне. Ничего не предполагая, как эта функциональная часть будет соотнесена относительно других функциональных частей или всей веб страницы. За это отвечает тот контейнер (div), в который это помещаем. Вот он уже определяет, как впишется наша функциональная часть в общую разметку веб страницы. Не знаю, понятно ли написал. Кажется все просто, но требует скорректировать привычные подходы.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Разработка под веб

Сообщение kreator »

finsoftrz писал(а): 30 Май 2020, 16:18 Имеется ввиду, из учетной системы? Номенклатура, остатки, некоторые реквизиты покупателей, индивидуальные цены, информация о приходах, актуальные акции, информация о дефиците и т.п. На вскидку, с десяток таблиц.
Ну да, это имею ввиду. Как технически перегружаете tps в SQLite? На десктопе, потом переносите сформированный на десктопе файл SQLite?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

kreator писал(а): 30 Май 2020, 15:26 А как технически информация из десктопной версии уходит на сайт? Почему SQLite, а не MySQL, например?
Не так прочитал. Технически обмен по ftp протоколу. Утилита робот выполняет обмен по расписанию (обычно раз в 5 минут). Эта же утилита выполняет отправку почты (подтверждение получения заказа, рассылки и прочее). Еще есть запуск служебных php скриптов по расписанию.
Еще одна утилита Информатор отвечает за оповещение подьзователей учетной системы. Обеспечивается автоматический контроль работы канала. Фиксируется время последнего сеанса связи, если превышен порог, то пользователи оповещаются о проблеме.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

kreator писал(а): 30 Май 2020, 17:51
finsoftrz писал(а): 30 Май 2020, 16:18 Имеется ввиду, из учетной системы? Номенклатура, остатки, некоторые реквизиты покупателей, индивидуальные цены, информация о приходах, актуальные акции, информация о дефиците и т.п. На вскидку, с десяток таблиц.
Ну да, это имею ввиду. Как технически перегружаете tps в SQLite? На десктопе, потом переносите сформированный на десктопе файл SQLite?
В целом, да. Точнее только не перегружается, а формируется файл sqlite в том виде, каком используется на сайте. С помощью класса работы с sqlite. А дальше по ftp. Заказы и регистрационные файлы в обычном текстовом формате.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Разработка под веб

Сообщение kreator »

Если не секрет, чем файл SQLite формируется?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

Я написал, класс для работы с sqlite из клариона. Это обертка для сишной библиотеки sqlite3.dll. Класс опенсорсный, автор Ричард Тейлор. Был в свободном доступе.
C6/C11, ШВС, tps/btrieve.
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Разработка под веб

Сообщение Developer »

Непосредственный доступ WEB сайта к реальной базе предоставлять рисковано?

Как лучше организовать бесшовное взаимодействие базы WEB сервера и локальной производственной базы?
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Разработка под веб

Сообщение kreator »

Developer писал(а): 02 Июнь 2020, 0:45 Непосредственный доступ WEB сайта к реальной базе предоставлять рисковано?

Как лучше организовать бесшовное взаимодействие базы WEB сервера и локальной производственной базы?
Всё зависит от условий. Необязательно веб (или кросс) приложение размещается в публичной части интернета. Сейчас такие требования, потому что нет уверенности в платформе "Десктоп Винда". Это моё мнение. Ну и плюсов от трёхзвенки тоже хватает.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Разработка под веб

Сообщение gopstop2007 »

finsoftrz писал(а): 30 Май 2020, 13:48 Может, кому интересно будет. Недавно сделал демонстрационное подключение своего веб модуля.
Что то за основу взяли(готовое) или с нуля ручками писали?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

gopstop2007 писал(а): 02 Июнь 2020, 7:04
finsoftrz писал(а): 30 Май 2020, 13:48 Может, кому интересно будет. Недавно сделал демонстрационное подключение своего веб модуля.
Что то за основу взяли(готовое) или с нуля ручками писали?
Ручками, но не совсем с нуля.

История была такова. Где-то в 2011 году один из клиентов оптовиков решил сделать интернет магазин. Поскольку я тогда даже не представлял, как писать под веб, пошли обычным путем. Заказали разработку сайта в веб студии. Настроили выгрузку товаров для них в csv файлах. Заказы отправлялись на электронную почту. На сайте была своя админка, где добавлялись пользователи, прикреплялись изображения товаров и т.п.

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

Дальше, когда у нас уже оформилась общая технология, я решил посмотреть, как устроен сайт. Тут, видимо, повезло. Сайт писал достаточно грамотный и адекватный программист, используя нативные средства (html, css, php, javascript). Еще несколько функций из старой jquery для работы с деревом групп товарной номенклатуры. В общем, текст сайта был достаточно понятным. Я взял оттуда общий подход и стили для оформления. Сам скрипт сайта был практически полностью переписан. База данных mysql заменена на sqlite. Админка убрана, все необходимое поступало из учетной системы. Дальше все это уже пошло в эксплуатацию и активно развивалось. Работать можно было двумя "клиентами" на выбор (обычное настольное приложение и веб), имеющими практически одинаковую функциональность. В 2014 году было еще разработано нативное приложение для андроида, но оно не прижилось. Оказалось, что работать со смартфонов пользователям не очень удобно, а на планшетах и настольных компьютерах хорошо работал обычный сайт.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Разработка под веб

Сообщение finsoftrz »

Developer писал(а): 02 Июнь 2020, 0:45 Непосредственный доступ WEB сайта к реальной базе предоставлять рисковано?

Как лучше организовать бесшовное взаимодействие базы WEB сервера и локальной производственной базы?
Я бы в первую очередь подумал, а зачем нужен веб доступ к базе учетной системы? Технически есть разные варианты. На мой взгляд, кайф от веба есть только при использовании дешевого юниксового хостинга, который стандартно поддерживается провайдером. Там все уже установлено. Просто копируем файлики по ftp, и все работает. А для разработки достаточно текстового редактора. Критору. Противопоставлять веб и декстоп с точки зрения учетных систем, это как сравнивать теплое и мягкое. Разные технологии для разных целей. А вот если не пытаться заставить мышь родить гору, то дополнять вебом декстопное приложение вполне разумно.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Разработка под веб

Сообщение kreator »

finsoftrz писал(а): 02 Июнь 2020, 8:12 Критору. Противопоставлять веб и декстоп с точки зрения учетных систем, это как сравнивать теплое и мягкое. Разные технологии для разных целей. А вот если не пытаться заставить мышь родить гору, то дополнять вебом декстопное приложение вполне разумно.
Мы сейчас сидим только из-за того, что зашли давно. Очень большой программный комплекс. Аналогов поискать ещё. А новое ПО без веб-морды даже не рассматривается. В условиях тендеров - трёхзвенка и веб-морда. Года три-четыре назад на совещаниях нас костерили за отсутствие вот этих самых технологий. В наше оправдание приводили примеры - конструкторское ПО ведь на десктопе и ничего! Прошло три года и конструкторское ПО переезжает в Веб.
We are hard at work… for you. :)
Ответить