В мире клариона есть популярная библиотека, которая называется NetTalk Web Server (NTWS). С большой долей вероятности, она скоро появится и у меня в пуле инструментов разработки. В основе NTWS лежит положение, что в качестве веб сервера может выступать обычное win32 приложение. Условно говоря, в одном exe собирается веб сервер и прикладная бизнес-логика. NTWS разрабатывается с 2005 года и в настоящее время работает устойчиво на множестве серверов в реальном мире. Разработкой занимается южноафриканская фирма CapeSoft.
Главный смысл NTWS это использовать имеющиеся наработки в области настольных приложений и выносить определенный функционал в виде веб приложений. Настольные и веб приложения могут работать с одними и теми же базами данных параллельно. Кроме этого, в веб приложении могут использоваться те же самые библиотеки (кроме тех, которые выводят сообщения на экран), что и в настольном приложении, а также общие бланки печатных форм. Интерфейсная часть, конечно, для веб приложения разрабатывается отдельно. Важно, что сохраняется привычная методология разработки с применением автоматической генерации кода, для бизнес-логики используется компилируемый язык со строгой типизацией данных и верификацией ошибок. Ни при разработке, ни при эксплуатации не требуется устанавливать дополнительное ПО, соответственно, практически не требуется специальное администрирование при умеренном количестве пользователей, как и в настольных системах. Только открыть/пробросить порт.
Структурно NTWS состоит из коммуникационного слоя (библиотеки классов) и NTWS Template Framework. Написано все полностью на кларионе. Библиотека классов поставляется в виде готовой dll, которая требует лицензирования на разработчика (разовый платеж, обновления продаются со скидкой), сервера можно развертывать без ограничений. Шаблоны (фреймворк) открыты, можно адаптировать и расширять на свое усмотрение, максимально автоматизируя процесс разработки под свои нужды. Для создания простых типовых веб приложений знание вебовских языков не обязательно (в том числе html и css). К ним можно прибегать по мере необходимости, при углубленной разработке. Со стороны веб браузера используется jquery (jQuery UI). В проекте на NTWS можно подключать модули на javascript и php. Последний, конечно, в этом случае придется установить.
С точки зрения нагрузки, NTWS спроектирован на возможность одновременной работы нескольких тысяч пользователей, как и мэйнстримные веб сервера.
В реальном мире некоторые разработчики используют NTWS для бизнес-логики, а интерфейсную часть делают отдельно на javascript. Например, есть подобный проект на связке NTWS и ExtJS, который создавался лет 10 назад, когда ExtJS был бесплатным. Пару месяцев назад на ClarionLive был вебинар с выступлением CEO одной американской компании, разрабатывающей ERP систему. Они также интерфейсную часть пишут отдельно на javascript (занимаются несколько программистов). В выступлении было много интересной информации про опыт развертывания облачной ERP системы. В частности, про схему балансировки нагрузки с помощью пула портов и на нескольких физических компьютерах, установке обновлений и т.п. Были также озвучены цифры о предпочтении клиентов - около 60% готовы использовать облачную версию системы, 40% предпочитают настольный вариант по соображениям приватности.
Для NTWS есть хорошая документация, книга, сотни примеров использования, тренинговые курсы, еженедельно проводятся вебинары на английском и испанском языках, имеется закрытый форум для официальных пользователей и группа в скайпе.
Для конкретики приведу несколько скриншотов, поясняющий работу данной технологии.
Так выглядит типовое веб приложение на NTWS. Накладна с табличной частью. Все, конечно, русифицируется. Про дизайн говорить не приходится, просто стандартные схемы с меню, таблицами данных и формами редактирования. Если нужен более презентабельный интерфейс, то надо уже задействовать вставки фрагментов кода на вебовских языках. Поскольку основная рубка за использование имеющихся наработок и скорость сборки работающих веб приложений, на первых порах можно особо не заморачиваться.
Так выглядит типовое окно работающего веб сервера. Оно содержит диагностические сообщения и статистику работы. Окно это можно перепроектировать на свое усмотрение, это обычный диалог win32.
Так выглядит данное веб приложение в среде разработки. Видно, что оно состоит из типовых процедур для создания меню, таблиц просмотра данных, форм редактирования, бизнес логики и т.п. На веб странице можно комбинировать эти процедуры. Например, выводить связанные таблицы данных или таблицу внутри формы редактирования и т.п. Специальные процедуры для оформления заголовка и подвала веб страниц.
На этом скриншоте показана настройка просмотра списка накладных. Видно, что все делается параметрически, без написания ручного кода. К ручному коду прибегаем только тогда, когда без этого не обойтись. В шаблонах NTWS нет оконного дизайнера. Я не думаю, что это замедляет разработку, для веб приложений часто без него обходятся.