2011-01-06 4 views
4

Каков ваш опыт использования веб-технологий (HTML, XML, CSS, JavaScript) для реализации части функциональных возможностей приложения GUI? За и против, пожалуйста.Веб-технологии в приложениях с графическим интерфейсом

Нет серверов, реляционных баз данных, AJAX или файлов cookie для управления сеансом или существующего веб-приложения, а скорее GUI-приложение, которое использует веб-виджеты (например, Qt WebKit) для визуализации и обработки значительных частей пользовательского интерфейса, пользуясь преимуществами рамки GUI для достижения еще более богатого взаимодействия и лучшей интеграции с настольными системами.

Я уже подтвердил, что подход возможен с использованием PyQt. Содержимое может быть отображено из файловой системы или из строк, а URL-запросы (изображения или клики) могут быть захвачены и обработаны обработчиками событий формы. CSS и JavaScript поддерживаются, возможно, с некоторыми ограничениями.

 # ... 
     self.webView.page().setLinkDelegationPolicy(
      QtWebKit.QWebPage.DelegateExternalLinks 
      ) 
     #... 

class TotiMainWindow(QtGui.QMainWindow): 
    def linkClicked(self, url): 
     pass # events arrive here 

Примечание: Этот вопрос отличается от this one и this one сделал раньше, между прочим, потому что не требуется использовать веб-технологии на GUI, но есть требование о том, что приложение должно работать без сети доступное соединение, и должно хорошо интегрироваться с рабочим столом по умолчанию на разных платформах, без предыдущих требований к инфраструктуре (без .NET, Java, браузеров или серверов баз данных).

Примечание: Я опубликовал другую версию этого вопроса в PMS, но нашел очень мало опыта в этом подходе.

Закрытие Примечание

Я только что нашел большую часть информации, которую я искал в серии blog posts by André Pareis.

ответ

2

Мы сделали именно это для проекта, когда Windows XP была новой.

Это дало моей команде несколько преимуществ:

  • Хороший вид пользовательского интерфейса с относительно небольшим усилием
  • Легко изменить стиль пользовательского интерфейса последовательным образом с использованием CSS
  • Относительно простой интеграции с C++ (вызов функции из пользовательского интерфейса и наоборот)

недостатков мы видели, были:

  • Некоторые не очень хорошие межсетевые экраны считаются доступом к внутренним ресурсам (например, другие HTML-страницы в пользовательском интерфейсе), чтобы быть веб-запрос
  • Добавление и доступ необходимых ресурсов может в некоторых случаях может быть немного громоздким
  • It был возможен набор свойств в Internet Explorer, который предотвратил бы запуск JS в приложении

Обратите внимание, что некоторые из программ Windows XP: s используют этот подход.

Это, вероятно, лучше всего работает с маленькими, более волшебными частями ui (которые наши ui состояли почти полностью из).

С тех пор я не занимался проектами ui, поэтому я не могу сказать, поддерживает ли этот подход ... Я знаю, что приложения на основе MFC позволят вам использовать диалоги на основе HTML.

+0

В приложении у меня есть документы со встроенными изображениями в качестве основной функции. Это было бы традиционное приложение с базами данных и генераторами форм, за исключением того, что в этом случае не будет сервера базы данных, а механизм шаблонов HTML будет генератором форм. Тесты пока показывают, что проблемы со встроенным веб-браузером (брандмауэрами, несовместимыми настройками) могут быть решены с помощью веб-виджета, который может отображать страницы независимо от любого другого браузера, происходящего на машине, и без открытия каких-либо сокетов. – Apalala

4

Я думаю, что самым большим преимуществом использования веб-разметки, такой как HTML/CSS и другие веб-технологии, является то, что приложения для настольных компьютеров вполне могут пронумеровать свои дни.

Как мы говорим, инженеры Google работают на Chromium OS, которая в основном состоит из одного графического интерфейса приложения ... браузер ...

Теперь, когда ничто никогда не может на самом деле из этого, есть явно растущая тенденция в количестве приложений, доступных через веб-браузер, доступных в любом месте. Мне кажется, что это будущее разработки приложений.

Используя эти технологии, это становится одной из немногих головных болей, с которыми вам приходится иметь дело, когда или если вы определяете, что ваше приложение должно быть доступно в виде веб-приложения.

Обновление: Несколько лет назад мы разработали Agent Desktop для нашего центра обработки вызовов, который по существу является локальным приложением, которое открывает сокеты для интеграции с телефонной системой. Пользовательский интерфейс, используемый агентами, построен с использованием HTML, CSS и JavaScript, и этот опыт ошеломляет. Когда мы выпустили наше последнее обновление в 2010 году с профессиональной переработкой CSS, наши агенты были очень впечатлены не только тем, насколько легко было взаимодействовать, но и как легко было использовать.

В будущем мы переносим этот 100% в браузер, но на данный момент это должно быть локальное приложение из-за интеграции COM с телефонной системой.

+0

Согласен. Я не думаю, что это оригинальная идея. Вот почему я требую опыта и рекомендаций в соответствии с требованиями. Кто-то из PMS упомянул, что в его опыте было то, что пользователи будут разочарованы веб-подобным поведением в графическом приложении, но мой собственный опыт заключается в том, что пользователи настолько привыкли к Интернету и на площадках, что они находят громоздкими стандарты пользовательского интерфейса в традиционные графические интерфейсы. – Apalala

+0

Просто, чтобы добавить к этому обсуждению ... Я думаю, что вы что-то говорите, когда говорите ... «пользователи так привыкли к Интернету и к площадкам, что они находят громоздкие стандарты пользовательского интерфейса в традиционных графических интерфейсах».Проблема в том, что люди стали использовать опыт, который на 100% способен адаптироваться к поставленной задаче, тогда как традиционное взаимодействие на основе форм только доходит до сих пор и не удовлетворяет пользователей тем способом, которым обладает сеть. .. ... если вы не работаете в мире OSX ...;) – jondavidjohn

1

В аналогичной ситуации в 2005 году я создал автономный webapp, используя XForms, CSS, JavaScript, XML и XML Schema для в автономном режиме поиск и проверка данных.С хорошим XForms -> HTML + JS-трансформатором (Chiba) он выполнил задание без исправлений ошибок после начальной версии. Он использовался в течение 6-12 месяцев (IIRC) около десятка инженеров для проекта, собирающего тестовые данные в туннеле Большого адронного коллайдера. Самым большим сюрпризом для этого проекта было то, насколько вы получаете бесплатно, когда отправляетесь на веб-платформу, даже для автономного использования. Настоятельно рекомендуется.

0

Основная проблема заключается в том, что она снижает скорость разработки или качество вашего пользовательского интерфейса. Много. Если вы не используете Seaside, гораздо быстрее разработать настольное приложение.

0

Существует довольно много приложений, построенных на платформе Mozilla. Это не 100% веб-технология, так как вместо HTML вы используете XML на основе XUL, но остальное - действительно веб-стек (JavaScript, CSS). Самым успешным из них является OpenKomodo и коммерческий старший брат Komodo IDE.

С другой стороны, насколько Qt идет, новейшая версия 4.7 вы можете построить графический интерфейс с использованием языка QML. Не позволяйте названию вводить вас в заблуждение, это не разметка, это фактически JavaScript с расширениями, специфичными для приложения.

+0

Наверху на Firefox потребуется предыдущая установка базового программного обеспечения (в соответствии с требованиями), и, как и другие, упомянутые выше, сделает приложение восприимчивым к настройки извне приложения. Платформа для внедрения веб-технологий в графическом интерфейсе не является проблемой, поскольку QtWebKit уже делает это. IOW, подход возможен. То, что я ищу, это опыт/рекомендации по дизайну HMI. – Apalala

+0

Komodo * не * построен поверх Firefox. Он построен поверх платформы Mozilla, используется как полностью автономное приложение. – vartec