GuiServer на Github Форум по GuiServer O GuiServer в Заметках Cкачать GuiServer (29.12.2021) Windows 32-bit Ubuntu 18.04 64-bit Designer: Windows unicode External, библиотека для Go, на Github External: Руководство Etutor: Проект на Github Mailagent: Проект на Github Бинарники |
GuiServerGuiServer - это инструмент, дающий возможность относительно легко реализовать GUI фреймворки для разных языков программирования. Программа играет роль, извините за тавтологию, GUI - сервера, сервиса для предоставления клиентам графического интерфейса. Клиентом является программа на произвольном языке программирования, для которого написана сравнительно небольшая библиотека, обеспечивающая запуск процесса GuiServer, присоединение к нему и обмен информацией в соответствии с заданным протоколом. Связь клиента с GUI-сервером может осуществляться разными способами, в настоящее время доступны два варианта: с помощью tcp/ip соединения или через обычные файлы. В первом случае GuiServer при запуске создает tcp/ip сокет и начинает слушать его, перейдя в режим ожидания. После установления соединения с клиентом он начинает принимать от него команды, в соответствии с которыми создает те или иные элементы графического интерфейса. Сразу создается и другое соединение с клиентом, по которому GuiServer отправляет ему информацию при наступлении определенных событий - закрытие окна, нажатие кнопки и т.д. Во втором случае вместо двух сокетов создаются два файла (по умолчанию - в системном каталоге для временных файлов) - и весь процесс взаимодействия происходит путем записи/чтения из этих файлов. Я начал писать GuiServer, чтобы сделать GUI фреймворк для языка Go, которым в последнее время понемногу занимаюсь. Этот фреймворк называется External, его можно найти у меня на Github. Попутно делаю аналогичную библиотеку и для Harbour - так удобнее отлаживаться. Но сразу пришло понимание, что такой же GUI фреймворк можно сделать с минимальными затратами и для Python, для Java, C, и даже для Perl и PHP. |
Клиент и сервер могут быть запущены на разных компьютерах в сети, что открывает путь для довольно интересных вариантов использования этой технологии.
Написан GuiServer на Harbour + HwGUI, и это удачный выбор не только потому, что мне проще и удобнее пользоваться именно этими инструментами. Такая реализация
- обеспечивает кроссплатформенность. GuiServer может быть собран под Windows, Linux/Unix и, возможно, под Mac OS;
- обеспечивает то, что называется "native look and feel" - естественный внешний вид для ОС, на которой он используется - благодаря тому, что HwGUI под Windows использует WinAPI, а под LInux/Unix - GTK2.
- предоставляет в ваше распоряжение мощный встроенный язык - сам Harbour. Вы можете передавать на сервер фрагменты кода любого размера для исполнения. Это позволяет, в частности, реализовать часть обработчиков событий непосредственно в процессе GuiServer и не отвлекать на мелкие детали основной процесс.
- позволяет использовать созданные Дизайнером (утилита HwGUI) экранные формы. Эти формы хранятся в XML формате и могут использоваться без изменений в любой ОС, в которой работает GuiServer.
- предоставляет возможности печати от HwGUI, в том числе - с помощью заранее подготовленных Дизайнером форм отчетов, которые, как и экранные формы, хранятся в XML формате и могут использоваться без изменений в любой ОС.
Приложения, использующие GuiServer
- ETutor - интерактивное руководство по Golang.
- MailAgent - проверка новой почты на ваших почтовых ящиках.
Ваше имя:
Адрес электронной почты:
(не предназначено к показу)
  |