Какой набор вэб-технологий подойдёт для клиентского приложения работы с базой данных?
Вопрос в заголовке сформулирован коряво. Попробую раскрыть суть здесь.
Итак, есть база данных на postgresql с бизнес-логикой. Есть клиентское приложение написанное под win32, которое реализует пользовательский интерфейс к этой базе данных.
Хочется научится писать такие клиентские приложения под вэб. Но нет понимания как связаны технологии между собой, с чего начать, и чем ограничиться.
То есть сильно упрощая задачу хотелось бы написать вэб-клиент, который реализует что-нибудь совсем примитивное. Например справочник товаров с пятью полями (чтобы было несколько типов): наименование, брэнд из списка, видимый/невидимый, цена, дата добавления. С целью научится выбирать/добавлять/удалять/изменять данные из вэб формы. Всё это хочется разделить правами на уровне пользователя базы данных, то есть уметь авторизовываться из веб-клиента. В том числе это будет важно, для определения авторства действий.
Ну и дальше начинается каша в голове. В конце-концов хотелось бы наверное прийти к node-webkit и приложению на нём, в этом же есть смысл? Но какие промежуточные шаги надо сделать, не понимаю вообще. Базовые знания HTML/CSS есть, JS видимо предстоит выучить в каком-нибудь виде. Но это ведь только фронтэнд (так это правильно называется?).
Скажите пожалуйста, чего ещё не хватает и как оно друг с другом связано в схеме взаимодействия?
Самый простой (чтобы быстро начать делать приложение) стек технологий: PHP + HTML + JS (в вашем случае можно и без JS).
Простой, тупиковый вариант, который сложно будет развивать:
PHP подключается к базе, берет оттуда нужные данные и генерирует HTML с формой. После заполнения этой формы, данные из нее отправляются в виде POST (или GET) запроса обратно PHP скрипту, и он обновляет их в базе.
Вариант получше, модульный:
1) Есть RPC (вызов удаленных процедур) API (программный интерфейс)..
Простыми словами - набор файлов php, каждый из которых выполняет необходимую процедуру
Каждый файл (php) отвечает за какую-то одну операцию. Например: «получить ID записей из таблицы за последнюю неделю», «получить записи из таблицы по их ID», «авторизоваться».
2) Есть HTML файл в котором хранится представление данных (грубо говоря форма, в которую надо загрузить данные)
3) Есть JS - скрипт. С помощью AJAX он общается с API.
Такая система хороша своей модульностью. Ее легко поддерживать и доробатывать.
Следующий уровень — делать полноценный REST API, но это уже совсем другая история %)
Спасибо за ответ.
Стало легче, но совсем чуть-чуть.
Про API и скрипты на PHP (но ведь можно и другой серверный язык, да?) даже всё встало на места. В моём случае получается будет куча одинаковых процедур для каждого действия в БД, так?
Сложности не пугают, поэтому, если REST API это самый прогрессивный путь на текущий момент, надо изучать его. Но REST это же общее обозначение, какие-то примеры касаемые сформулированной задачи есть где посмотреть (английский не пугает).
QuickJoey: Про REST за последний месяц было пара статей на Хабре. Делать REST имеет смысл, если API будет публичным (т.е. если ваше приложение будет давать публичный доступ к данным). REST это круто, но не панацея.
Про скриптовой язык - да может быть и другой, на ваш вкус.
В вашем случае будет одна процедура на одно действие. Самая большая сложность - сделать качественную и удобную архитектуру API. А дальше обычно все идет по накатанной. Для каждого логичного действия - отдельный файл. Можно объединять процедуры.
Можно логин/разлогин сделать вместе, можно отдельными методами API.
А 1С - немодно? Есть минусы конечно и придется сервер 1С настроить на постгресс (раньше было что для линукса лицуха до 10 клиентов была бесплатно), но Плюс, что все-ж накидывать визуальные компоненты на форму легче чем в nodejs из консоли
Еще вариант VB.NET ну то есть Вижуал Студия Microsoft. там можно все что в 1с и плюс еще много чего
не то чтобы немодно, просто непонятно зачем он мне нужен. у меня уже есть какая-то среда разработки "накидай-компоненты-на-форму", приложение под win32 тоже. хотелось независимости от платфромы, и заодно выучить что-то полезное и перспективное.