Пользовательский интерфейс для веб-приложений построен иначе, чем пользовательский интерфейс настольных приложений. Мне интересно узнать, в чем на самом деле основные различия в создании пользовательского интерфейса между двумя стилями приложений в следующих областях:
1. используемая технология
2. используемые методы
3. используемые средства управления
4. поведение при изменении экрана





Одна важная вещь, которую нельзя игнорировать в веб-дизайне, - это Кнопка назад. Тысячи людей пытались отключить или обойти это. Не пытайтесь обойти кнопку возврата! Вместо этого сделайте кнопку возврата частью своего дизайна.
Интересное читайте здесь: Веб-приложения против приложений MS Windows.
Единственное самое большое различие заключается в том, что в веб-приложении у вас очень ограниченное влияние на поведение мыши, а то, что у вас есть, противоречит установленному поведению рабочего стола. Например:
Настольные приложения, как правило, пишутся с использованием шаблона «в этом событии выполнить этот блок кода». Веб-приложения представляют собой более блочный режим: «сервер форматирует всю страницу, пользователь заполняет форму и нажимает кнопку, сервер обрабатывает всю форму, сервер форматирует другую страницу целиком».
AJAX слегка мутит воду, потому что браузер может запрашивать некоторые данные в фоновом режиме и обновлять части страницы. Однако основной принцип остается.
Легче заставить графический интерфейс рабочего стола реагировать на определенные движения и щелчки мыши и т. д. Для веб-приложений, с другой стороны, единственная связь с сервером - это запросы «получить» и «отправить», поэтому пользовательский интерфейс гораздо более неуклюжий.
Веб-приложения намного более портативны, и вам нужно только программное обеспечение на клиенте, совместимое с браузером. Эти преимущества системного управления являются причиной того, что люди мирится с немного худшим графическим интерфейсом.
Хотя ответ относится к 2008 году, самый большой недостаток настольных компьютеров, как вы упомянули, заключается в том, что «настольные приложения, как правило, пишутся с использованием« при этом событии выполняет этот блок кода ». Это приводит к тому, что бизнес-логика оказывается в клиенте.
Основное различие заключается в том, что Visual очень быстро строится на рабочем столе и нет необходимости тестировать с другим браузером. Я всегда находил прелесть для создания рабочего стола, потому что визуальная часть программного обеспечения просто привязывается к вашему контроллеру (который содержит вашу модель), и вы в пути!
Другое отличие - скорость загрузки. Вам не нужно передавать Javascript или CSS для отображения ... Вам не нужно zip или что-то еще, потому что они всегда доступны в исходном коде на рабочем столе.
Другое дело, что вы можете использовать оперативную память компьютера для выполнения сложных задач, и это, как правило, снижает потребность в нескольких компьютерах на стороне службы, потому что вы можете использовать все эти компьютеры для «фермы» большого процесса (при необходимости).
С другой стороны, развертывание сложнее (ну, у вас есть ClickOnce и автоматический инструмент, который может вам помочь), но он никогда не бывает таким прозрачным для Интернета. Итак, вам нужно больше планировать выпуск релиза, потому что вы не можете сделать «горячее исправление».
Возможно, вам не придется тестировать в разных браузерах, но у вас все еще есть несколько операционных систем для тестирования настольных приложений. XP, Vista, 32 бит, 64 бит и все на разных языках.
Тестировать разные браузеры проще простого. В Windows вы можете протестировать IE, Firefox и Chrome, и вы охватили большинство браузеров. Chrome использует тот же движок (Webkit), что и Safari.
По своему опыту я могу сказать вам, что тестирование браузера - это НАМНОГО труднее ... ваше веб-приложение все еще нужно тестировать во всех ОС .. И 32 бита на 64 бита - это 99% только 1 параметр, который нужно изменить при компиляции .. не большое дело.
Межкадровая связь затруднена в веб-браузере. Например, если один iframe влияет на другой iframe с помощью javascript. В первую очередь потому, что время загрузки может быть другим, поэтому кадру A может потребоваться ожидание цикла таймера для загрузки кадра B.
В веб-интерфейсе обмена сообщениями действительно необходимо учитывать цикл запроса / ответа. Трудно сделать что-то вроде «если запись изменится в базе данных, на экране пользователя появится всплывающее сообщение». Кроме того, если при нажатии кнопки необходимо обновить 5 различных фреймов, вы можете получить 5 отдельных запросов к серверу. На самом деле не нужно беспокоиться об этом в пользовательском интерфейсе рабочего стола.
Единственное, что я обнаружил больше всего, - это привязка данных. Концепция все та же, но с веб-приложениями вы всегда беспокоитесь о том, нужно ли повторно привязать указанный элемент управления для обновления данных на основе какого-либо другого щелчка по событию. Хорошая вещь в настольных приложениях заключается в том, что это не вызывает особого беспокойства, поскольку щелчок по другому событию или переход на какую-либо другую вкладку не приведет к аннулированию данных в элементе управления.
Большая разница в дизайне, которую многие не замечают, - это структура самого окна.
Моя любимая мозоль - это текстовые ссылки, которые выполняют частые действия. Если вы не ссылаетесь на отдельную страницу, не делайте это похожим на ссылку. Сделайте его элементом управления, изображением или что-нибудь. Ссылки для движущийся на сайтах, кнопки делать вещи. Большинство людей будут активно игнорировать синий подчеркнутый текст, когда они хотят что-то сделать, потому что они привыкли к кнопке «отправить форму» или чему-то подобному. Ссылки также довольно маленькие, и их сравнительно сложно нажимать для повторных действий, и для меня вонять - неполный дизайн / кодирование при широком использовании.
Многие веб-приложения, которые я видел, как правило, терпят неудачу, пытаются дублировать настольное приложение в окне браузера ... которое вставляет круглый стержень в квадратное отверстие. Это можно сделать, но это нет одно и то же, и их не следует рассматривать как таковые практически ни при каких обстоятельствах.
Частичное исключение - когда веб-приложение дублирует функцию настольного приложения (т. Е. Документов Google). Кроме того, в большинстве случаев макет по-прежнему должен отражать веб-страницу в большей степени, чем приложение, но элементы управления, вероятно, должны имитировать настольное приложение, чтобы помочь людям перейти.
Большинство людей используют программы на своем рабочем столе, чтобы что-то делать. Большинство людей используют свои браузеры, чтобы что-то видеть (читать, смотреть и т. д.). Конечно, есть кроссовер, но подумайте о повседневных привычках большинства людей и помните, что люди Другие будут использовать то, что вы создаете; это не только вы (и ваши клоны).
И хотя он повторяет другие, кнопка возврата - критический. Если вы его сломаете, пользователи захотят сломать вас. Переопределение контекстного меню или поведения также обычно является плохой идеей и в основном раздражает пользователей (а некоторые будут активно предотвращать javascript, который делает это, потому что он так их раздражает (в том числе и я)).
Вы можете переопределить щелчок правой кнопкой мыши в браузере. Google Docs делает это довольно хорошо, но позволяет Shift + Right Click вызывать меню браузера. Что делает переопределение в некоторой степени приемлемым. Но, насколько мне известно, Google Docs - единственный веб-сайт, который позволяет получить доступ к контекстному меню браузера.