Я разработал много приложений с графическим интерфейсом для платформы Windows в начале своей профессиональной карьеры и видел, как появилось несколько сред с графическим интерфейсом, им были посвящены целые журналы, а затем они исчезли. МФЦ является знаковым.
Получив задание написать еще одно приложение с графическим интерфейсом, я начал изучать кроссплатформенные среды, такие как Qt и WxWindows. Я обнаружил те же крутые кривые обучения, которые я знал раньше, и инструменты не очень помогают в создании функционального и элегантного пользовательского интерфейса, потому что они неуклюжи и сложны.
Но люди постоянно создают красивые и функциональные пользовательские интерфейсы в Интернете (посмотрите на этот сайт!). Стандарты, библиотеки и инструменты, безусловно, есть.
Моя мысль и мой вопрос: почему бы не написать графический интерфейс, в котором большая часть пользовательского интерфейса обрабатывается встроенным браузером? Я уже знаю, что виджеты Qt поддерживают большую часть CSS и JavaScript, а программистов с хорошими знаниями в области веб-разработки относительно легко найти, ..., так что...
Вы делали что-то подобное раньше? Каков ваш опыт/совет?
Виджет браузера, скорее всего, будет поддерживать часть функций основных браузеров, но этого будет достаточно для создания богатого пользовательского интерфейса с использованием веб-технологий. Есть дополнительное преимущество огромных упрощений, возможных, когда веб-материалам не нужно общаться с сервером для обслуживания запросов пользовательского интерфейса.
Моя идея состоит не в том, чтобы встроить полноценный браузер (упс!). Это позволяет использовать веб-технологии в программировании графического интерфейса.
[Редактировать]
Я не принял ответ, потому что пока что это предложения о том, чтобы сделать что-то еще, а не о предыдущем опыте выполнения того, что я предлагаю. Они даже не являются мнениями или предположениями о подводных камнях или преимуществах предложенного способа, чего я и ожидал, учитывая маловероятность того, что я открою новые возможности, используя виджет браузера для обеспечения части интерфейса графического интерфейса. Подумайте о HTML, CSS и ограниченном JavaScript, без Интернета, без .Net или Java (или Air, Flex/Flash), без реляционной базы данных; только исполняемые файлы, библиотеки и шаблоны, которые можно установить, скопировав их, и сохранить в домашнем каталоге пользователя с помощью файловой системы.
Они взяты из ответов до сих пор:
На самом деле я когда-то участвовал в работе над веб-приложением, которое мы в конечном итоге почти закончили продавать как стандартное «настольное приложение». По какой-то причине отдел маркетинга вбил себе в голову, что один из наших основных клиентов хотел, чтобы продукт «выглядел как приложение с графическим интерфейсом», поэтому мы создали небольшое приложение для Windows, которое просто содержит элемент управления IE ActiveX и указывает на наше веб-приложение. (скрывая тот факт, что это на самом деле браузер). Настолько эффективно, что для неопытного глаза это выглядело как стандартное приложение с графическим интерфейсом.
Конечно, это не совсем то, о чем вы спрашиваете (мы все еще указывали на веб-приложение, а не размещали все это локально), но это достаточно близко. Было бы тривиально — за исключением некоторых используемых удаленных веб-сервисов — настроить это так, чтобы все это располагалось на локальном компьютере.
Но вот самая большая проблема: внешний вид и ощущения. Особенно чувствовать.
Люди ожидают определенного поведения от приложений с богатым графическим интерфейсом (перетаскивание, нативные окна и диалоги и т. д.). Чрезвычайно сложно получить действительно естественный внешний вид веб-интерфейса. Просто существует другой поток пользователей в том, что ожидается, когда вы открываете веб-приложение в браузере (например, Gmail), в отличие от того, когда вы используете приложение с богатым графическим интерфейсом (например, Outlook). По моему опыту, попытка уравнять эти два понятия напрашивается на неприятности. Если вы выпустите «приложение с графическим интерфейсом», которое действует как веб-приложение, вы, вероятно, будете наводнены жалобами на удобство использования и LAF.
TL; DR — веб-приложения и приложения с графическим интерфейсом имеют разный внешний вид и в некоторой степени другую культуру пользователей. Хотя технически возможно сделать что-то подобное, по моему опыту, я бы не пошел туда (снова). В лучшем случае вы, вероятно, получите ужасное сочетание сценариев на стороне клиента, которые будет сложнее изучить, использовать и поддерживать, чем делать все это как обычное приложение с графическим интерфейсом. И люди БУДУТ жаловаться на вещи, которые «не совсем подходят» для родного приложения с графическим интерфейсом. Заманчиво думать, что они не будут, но они будут.