Преимущества веб-приложений над настольными приложениями [закрыто]

79

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

Я фанат настольных приложений, потому что они более удобны для пользователя. На мой взгляд, они более отзывчивы, имеют лучший пользовательский интерфейс, более настраиваемы и имеют лучшую поддержку клавиатуры. Я просто не могу представить себя использующим веб-версии Visual Studio или OpenOffice. Кроме того, у меня сложилось впечатление, что настольные приложения для тонких клиентов проще реализовать, чем их аналоги из веб-приложений.

Возможно, я упускаю из виду некоторые качества веб-приложений, а может быть, я ошибаюсь в отношении упомянутых выше недостатков. Поэтому у меня вопрос: есть ли кто-нибудь, кто видит преимущества веб-приложений перед настольными?

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

Обновление: под «веб-приложением» я подразумеваю комбинацию HTML / CSS / JavaScript , а не многофункциональные интернет-приложения, такие как Silverlight. Они очень похожи на настольные приложения, главное отличие состоит в том, что они запускаются в песочнице.

Дмитрий К.
источник

Ответы:

63
  1. Веб-приложения не требуют развертывания на каждом клиентском компьютере.

  2. Не нужно принудительно проверять версию на клиентском компьютере.

  3. Обновления проще.

  4. Делает исправление ошибок проще.

  5. Нет проверки прав администратора .

  6. Может получить доступ из любой точки мира .

  7. Независимая от платформы .

  8. Поддержка и обслуживание стали проще.

  9. Адаптивность в мобильных приложениях .

рахул
источник
3
«Облегчает исправление ошибок»: что вы имеете в виду? Думаю, настольное приложение для тонкого клиента можно обновить не менее легко.
Dimitri C.
65
Независимо от платформы, но иногда зависит от браузера :)
Canavar 02
19
«Доступен откуда угодно». - Это при условии, что вы подключены к Интернету ... Я думаю, что это один из огромных недостатков веб-приложений. С настольными приложениями, когда они установлены на вашем компьютере, вы можете получить к ним доступ в любое время , когда ваш компьютер будет с вами. Не так с веб-приложениями. И мы еще даже не упомянули скорость соединения ...
Стив Харрисон,
7
To 1 .: Это не обузой во времена Интернета и удобных установщиков To 3 .: Проблема может быть легко решена для настольных приложений (проверить, спросить пользователя, установить), если они подключены к Интернету. К 4.: Зависит от ошибки ... Если вы создали высококлассное веб-приложение, поддерживающее стандарты рабочего стола, такие как drag'n drop и другие, с помощью java-скрипта, исправление может быть очень неприятным. Кому 7 .: НЕТ! Зависимость от платформы еще больше: «Браузер на ОС»
Кай Хуппманн 02
4
@Canavar, если это внутреннее приложение для веб-приложения, вы обычно можете гарантировать, что ИТ-отдел контролирует версию браузера +. Благодаря JS-библиотекам кодирование для нескольких браузеров не так уж и сложно. Кодирование CSS для всего, что было раньше IE6, в любом случае не так уж и сложно, если вы достаточно хороший веб-дизайнер / разработчик.
Крис Макки,
56

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

Конечно, у каждого варианта есть свои плюсы и минусы, но вы должны оценить и их. Что для вас важнее: удобство использования или независимость от платформы? Мы ставим пользовательский опыт выше многих вещей. Да, мы приносим жертвы, но это часть жизни.

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

У нас есть как в нашей компании, так и наши клиенты в любой день предпочитают настольное приложение веб-приложению. Они вполне готовы смириться с любыми недостатками настольных приложений.

Я не перечисляю в своем ответе преимущества веб-приложения, как это делали другие. У веб-приложений и настольных приложений есть свои плюсы и минусы. Сделайте и то, и другое! Позвольте вашему покупателю выбирать. Вернись ко мне по статистике. ;-)

Мальтрап
источник
7
Я думаю, что это хорошая идея, хотя многие компании не одобрили бы ее только потому, что она потребляет больше человеко-часов +1
Марк Таулер
1
Если настольные приложения по своей сути лучше, как вы объясните, что многие люди пересылают свою почту из Outlook / Exchange в Gmail?
Joeri Sebrechts 02
3
@Joeri Суть этого ответа в том, что обе технологии имеют свое место. Электронная почта Exchange - хороший пример. На работе я читаю свою обменную почту с помощью Outlook, а везде использую веб-клиент OWA.
Филип Нган,
1
Перенесемся в 2019 год !! Тем не менее, это действительно так. Но плохая сторона технологии - это то, что все пространство заполнено веб-разработчиками, у которых никогда не было опыта разработки каких-либо настольных приложений, и единственное, что они сделали, это преобразовали старое устаревшее настольное приложение в веб-приложение. Я начну на каком% веб-приложений есть перетаскивание или контекстные меню? Сколько веб-сайтов имеют встроенный кеш, который может оставаться на клиентском компьютере для перезапуска? попытаться скопировать и вставить сетку данных с одной страницы на другую? сочетания клавиш для управления? Более того, основы пользовательского опыта отсутствуют в сети по прошествии 20 лет !!!
digitally_inspired
После появления одностраничного приложения (SPA) взаимодействие с веб-пользователем изменилось. Это очень похоже на настольное приложение сегодня.
Том
27

Я изрядно поработал над написанием многофункциональных настольных приложений и веб-сайтов.

Как правило, писать код для настольного приложения проще, доступно больше элементов управления, у вас гораздо больший контроль над работой приложения.

Написание веб-приложений действительно требует от вас понимания HTML, CSS и Javascript, а также ограничений (или ошибок, связанных с IE) браузеров. Вы должны беспокоиться о состоянии и сохранении его, а доступные вам механизмы ограничены.

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

Недавно мы добились некоторого успеха со смешанной стратегией (webtop), написав основную систему как веб-сайт, но затем предоставив клиентское приложение для опытных пользователей, которым нужно больше функций. Здесь можно разместить элемент управления браузера (в Windows вы можете легко встроить IE, в OS X вы можете сделать то же самое с сафари) или использовать API. Подобно тому, как Twitter предоставляет вам веб-версию, но опытные пользователи могут использовать TweetDeck или что-то еще.

Дэйв Глассбороу
источник
1
Очень интересный ответ. Большое спасибо.
Dimitri C.
1
«обновление настольных приложений сложно и болезненно»: я поддерживаю установщик для одного из наших основных приложений. Сделать обновления возможными для скачков больших версий действительно очень сложно. Однако это потому, что он обновляет наше полное приложение. Я думаю, что когда нам нужно просто обновить тонкий клиент, это будет довольно просто.
Dimitri C.
1
Конечно, это зависит от типа настольного приложения. Вчера я потратил слишком много времени, пытаясь устранить ошибку обновления базы данных, которая затронула лишь несколько клиентов ...
Дэйв Глассбороу
21
  • Все пользователи всегда используют самую последнюю версию
  • Нет пиратства
  • Доступен везде, где находятся ваши пользователи
  • Кросс-платформа
  • Для пользователей установка не требуется
  • Вы можете легко измерить, что делают ваши пользователи (сколько из них используют функцию XX и т. Д.)
  • При необходимости вы можете упростить сотрудничество между пользователями, поскольку все данные централизованы.
труппо
источник
16
«пользователи всегда используют последнюю версию»: наше настольное приложение обновляется автоматически.
Dimitri C.
12
«Нет пиратства»: настольное приложение тонкого клиента можно свободно копировать, если серверный компонент не распространяется.
Dimitri C.
14
«Кроссплатформенность»: настольные приложения Java также являются кроссплатформенными.
Dimitri C.
3
@Dimitri, я никогда не говорил, что настольные приложения не могут делать то, что указано в моем списке ... но в веб-приложении вы получаете это бесплатно.
truppo 02
5
«все данные централизованы»: если вы решите написать настольное приложение для тонкого клиента, вы получите то же преимущество.
Dimitri C.
11

Плюсы веб-приложения над настольным приложением : -

  • Когда-либо потребуется обновить только одну копию программы.
  • 99% кода не зависит от платформы.
  • легче обеспечить обслуживание, поддержку и исправления
  • Меньше шансов найти ограничения, которые мог наложить клиентский компьютер
  • Плюс многое другое

Минусы веб-приложения над настольным приложением : -

  • Если подключение к сети отсутствует, приложение тоже

  • Необходимо изучить несколько языков для успешной разработки приложения (сценарии на стороне сервера, SQL, XHTML / CSS и т. Д.)

  • Меньшая потребность в безопасности (пользователям доверяют в компании, никакой "внешней угрозы")
  • Необходимость выделенной машины (ов) для веб-сервера

Все это лишь некоторые из многих плюсов и минусов, которые вы можете найти в этом разговоре.

Марк Таулер
источник
7

И веб-платформы, и десктопные платформы имеют свои преимущества и недостатки. В пользу обоих можно привести веские аргументы. Гибридные приложения (частично веб, частично настольные) также имеют в этом отношении преимущества / недостатки.

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

Вы когда-нибудь пытались продать веб-приложение людям в тех регионах США или других странах, где широкополосный доступ нерегулярен или отсутствует? :) А мобильный доступ? Родной, сетевой или гибридный? А как насчет локального доступа к данным при отсутствии подключения к Интернету, если он требуется? И т.п.

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

Пример: возьмите комментарий, который гласит: «Настольные приложения обеспечивают гораздо лучший пользовательский интерфейс, чем веб-приложения». Если требование (A) требует доступа в любом месте / в любое время с любого компьютера, оснащенного веб-браузером и доступом в Интернет, а (B) также требует производительности, аналогичной настольному компьютеру (например, данные базы данных в реальном времени, которые не требуют обновления страницы), то ( C) разработчик вынужден рассматривать такие технологии, как AJAX, Flash, Silverlight, Java или даже собственные клиенты, которые загружаются как элемент управления браузера.

Я просто говорю, опять же, руководствуйтесь требованиями, а не технологиями.

РБЛевин
источник
7

Многие моменты уже упомянуты. Но есть несколько, с которыми я не могу полностью согласиться:

  • Развернуть веб-приложение легко, но развертывание настольного приложения не намного сложнее во времена Microsoft ClickOnce или Java Web Start.
  • Исправить ошибку в веб-приложении не так просто (без сеанса, под управлением процесса веб-сервера ...).
  • Веб-приложение всегда имеет некоторые ограничения, когда дело касается выполнения критически важных для безопасности операций или доступа к оборудованию.
Александр
источник
1
Вы правы, считая исправление ошибок проблемой, а не преимуществом. В веб-приложении возможно так много переменных. Возможно, вы даже не сможете воспроизвести ошибку без тех же настроек, что и конечный пользователь. Конечно, если вы выполняете развертывание внутри организации, это более управляемо, но тогда большинство других предполагаемых преимуществ веб-приложений также исчезают.
Ноэль Уолтерс,
5

Зависит от типа приложения. Если у вас есть приложение cms, его нельзя заменить веб-сайтом (по крайней мере, некоторые части), потому что приложение должно работать с локальными ресурсами, такими как принтер, считыватель штрих-кода, фискальный принтер, дисплей и так далее.
Таким образом, для этого типа приложений, которым требуются локальные ресурсы, рабочий стол не может быть заменен.
Также настольные приложения могут быть намного быстрее, чем веб-приложения для приложений cms.

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

Но также существуют веб-фреймворки, такие как Oracle ADF, которые имеют даже больший охват, чем настольный компьютер. С помощью ADF вы можете создавать веб-приложения, идентичные настольным приложениям, аналогично тому, как создаются настольные приложения. Но если это дорого, кривая обучения высока и требует «хорошего» оборудования.

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

Дарпет
источник
4

Для меня, который обычно полностью работает в Интернете, фактор, который подталкивает меня к настольным приложениям, - это интеграция оборудования. Веб-приложения хороши, если все, что вам нужно сделать, это прочитать и отправить данные, но если дело доходит до взаимодействия с такими вещами, как принтеры этикеток или другое специализированное оборудование, настольное приложение - единственный реальный путь. Вы можете связать их с веб-службами и т.п., если вам абсолютно необходимо поставить галочку в поле «Веб-приложение», но специализированная аппаратная поддержка по большей части находится вне области браузера, и гораздо больше смысла используйте существующие API для доступа к нему.

Richsage
источник
2

В наши дни, когда люди выбирают независимость платформы linux / osx / windows, это большая особенность. Это помогает ориентироваться на гораздо больший рынок.

Конечно, есть очевидные преимущества: приложение можно использовать в любой точке мира ... для удобства.

user128026
источник
2
Разве веб-приложения не должны одинаково хорошо решать проблемы переносимости (например, между Internet Explorer и Firefox)?
Dimitri C.
вы можете ограничить пользователя использовать только firefox, поскольку он предназначен для внутренней компании (я сделал это .. так что я всегда рекомендую своему пользователю использовать firefox или chrome)
nightingale2k1
1
JQuery исправил несоответствия Javascript для вас, среды адаптивного дизайна, такие как Twitter-BootStrap, исправили несоответствия html / css. Если вы создаете веб-программное обеспечение и используете эти инструменты, маловероятно, что вам придется иметь дело с несоответствиями на уровне браузера.
dendini
2

я согласен с пунктами выше ...

Я просто хочу добавить профессионалов в веб-приложение: 1. Это выглядит красиво. вы также можете изменить темы (просто измените css), может быть, настольное приложение будет выглядеть скучным для некоторых пользователей, но приложение wep, вы можете изменить темы / дизайн, и оно впечатлит вас пользователя (и босса)

  1. дешевле орудиям. Например, если вы разрабатываете приложение с .NET, вам нужны клиенты, которые устанавливают Windows. но в веб-приложении после разработки любой клиент может получить доступ к вашим веб-приложениям с любой платформы.

  2. Разработка веб-приложений проста (если вы узнаете о css javascript и фреймворке), это может облегчить вашу жизнь.

  3. Отсутствие вирусов и простота развертывания / установки для клиента.

Минусы: пользовательский интерфейс в веб-приложении более сложен и требует навыков работы с javascript и css для создания хорошего качества пользовательского интерфейса.

Я рекомендую вам не создавать с нуля (это было бы больно), а создавать новые модули в веб-приложениях. это было бы мудро :)

соловей
источник
2
Вирусов нет, но есть много возможностей для червей, искажений и других эксплойтов, основанных на XSS, CSRF, SQL-инъекциях и т. Д.
Ноэль Уолтерс,
1
«Дешевле» тоже не обязательно: если вы создаете веб-приложение, которое должно иметь приличный пользовательский интерфейс и быть совместимым со всеми основными браузерами и мобильными устройствами, то потребуется много настроек, чтобы сделать это правильно. Это действительно дешевле, чем создание приложения для osx / ios / win / linux, но при создании веб-приложения пользователи ожидают, что оно будет работать без сбоев в выбранном ими браузере. Легче объяснить ограниченный объем ОС для настольных приложений.
faester
2

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

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

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


источник
2

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

MarkJ
источник
2

Я также являюсь поклонником настольных приложений. Приведу еще несколько недостатков веб-приложений:

  1. Разработка логики / пользовательского интерфейса представления веб-приложений слишком сложна по сравнению с настольными приложениями.
  2. Пользовательский опыт в разных браузерах может отличаться.
  3. Отложенные операции: рассмотрите одинаковые транзакции в Интернете и на настольных компьютерах. Веб-приложение может задерживать поиск веб-сервера, что выше, чем у настольных приложений (в большинстве случаев)
  4. Использование ЦП клиента: хотя это можно рассматривать как недостаток настольных приложений, веб-приложение не обладает хорошими возможностями в использовании процессора на стороне клиента, что в некоторых случаях можно рассматривать для выравнивания общей рабочей нагрузки обработки между клиентом / сервером.
Джобин
источник
1
Я думаю, что некоторые из твоего списка сейчас немного устарели: /
risyasin
2

Вы правы насчет тех преимуществ, которые вы указали для настольных приложений, и есть даже больше, о чем вы забыли упомянуть (например, безопасность, обслуживание и т. Д.). Основное преимущество веб-приложений заключается в том, что их можно использовать через веб-браузер из практически везде.

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

Взгляните, это может сэкономить вам много времени и нервов.

user225949
источник
1

В большинстве случаев пользователю требуется только браузер для использования вашего приложения. Нет необходимости развертывать все, что нужно приложению, и не нужно думать о том, почему ваше приложение не работает на клиенте.

Канавар
источник
1
  • Веб-приложения не требуют особых требований к обработке на стороне клиента, поскольку вся обработка происходит на стороне сервера, браузер - это просто часть представления или пользовательский интерфейс.
  • Легко вносить изменения в веб-приложения, наблюдая за информацией журнала и шаблонами просмотра пользователей, поскольку каждый запрос достигает сервера и может регистрироваться.
Ксинус
источник
1
«Веб-приложения не требуют особых требований к обработке на стороне клиента»: вполне возможно также написать настольное приложение для тонкого клиента.
Dimitri C.
0

Раньше я разрабатывал настольные интерфейсы для своих приложений. За последние 3 года я перешел на чисто веб-интерфейсы. Вот как я это сделал:

  • Я пишу основное приложение как набор сервисов, которые представляю через REST.
  • Я написал «библиотеку», которая приближается к WxWidgets, но не педантично.
  • Графический пользовательский интерфейс - это JS-код, который программно создает экраны - точно так же, как я использовал для настольных приложений.
  • Все стили / скины выполняются с использованием классов CSS.
  • В настоящее время я использую длительный опрос для взаимодействия, но в будущем планирую использовать либо WebSockets, либо WebRTC.

Все пользователи используют последнюю версию Chrome, и приложение доступно только из внутренней сети компании. У большинства пользователей есть ярлык на рабочем столе, с помощью которого их Chrome в полноэкранном режиме подключается к внутреннему серверу. Менее опытные пользователи даже не знают (и не должны знать), что это больше не настольное приложение.

CyberFonic
источник