Каковы минусы веб-приложения - PullRequest
4 голосов
/ 22 сентября 2008

Я собираюсь написать приложение базы данных для лагеря, в котором я работаю. Я думаю о том, чтобы написать его на C # с интерфейсом Windows GUI, но использую браузер, поскольку приложение выглядит все более привлекательным по разным причинам. Что мне интересно, так это то, почему кто-то не решил написать приложение в качестве веб-приложения. Ex. Кнопка «назад» может доставить вам неприятности. Есть ли что-нибудь еще, о чем кто-либо может подумать?

Ответы [ 13 ]

9 голосов
/ 22 сентября 2008

Есть много минусов:

  • Скорость и отзывчивость, как правило, значительно хуже
  • Сложные виджеты пользовательского интерфейса (например, древовидные элементы управления) сложнее сделать
  • Визуализация графики любого типа довольно сложна, 3D-графика еще сложнее
  • Вы должны возиться с логинами
  • Централизованный сервер означает, что клиентам всегда нужен доступ к сети
  • Ограничения безопасности могут вызвать проблемы
  • Несовместимость браузера может вызвать много дополнительной работы
  • Соглашения о пользовательском интерфейсе менее четко определены в Интернете - пользователям может оказаться сложнее использовать
  • Хранение на стороне клиента ограничено

Вопрос состоит в том, достаточно ли из этого числа применимо к вашему проекту, чтобы сделать Интернет неправильным выбором?

2 голосов
/ 14 июля 2010

Одна вещь, которая здесь не упоминалась, это уровень сложности и знаний, необходимых для создания хорошего веб-приложения. Проблема в том, что если вы не делаете что-то очень простое, в этих приложениях нет «Единого» знания или технологии. Например, если вы хотите написать приложение для какой-нибудь клиент-серверной платформы ... вы можете разрабатывать на Java или C ++. Для сложного веб-приложения вам может потребоваться опыт работы с Java, Java Script, HTML, Flash, CSS, Ajax, SQL, J2EE и т. Д. Также более многочисленны компоненты веб-приложения, сервер веб-приложений, HTTP Сервер, база данных, браузер .. являются типичными компонентами, но может быть и больше .. клиент-серверное приложение является типичным только то, что оно говорит .. клиентское приложение и серверное приложение. Мой опыт и личные предпочтения не основаны на веб-технологиях. Веб-интерфейс отлично подходит для многих вещей. Но даже несмотря на то, что я являюсь ИТ-архитектором ведущей компании, которая полностью появилась в веб-приложениях как решение для всего ... Недостатков еще много. Я уверен, что технология будет развиваться, а минусы со временем исчезнут .

1 голос
/ 22 сентября 2008

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

1 голос
/ 22 сентября 2008

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

Если у вас есть контроль над тем, какой браузер использовать, то есть все находятся на компьютерах, которые вы контролируете на сайте, и говорите, что вы устанавливаете Firefox на все из них, вы можете использовать новейшие стандарты Javascript и CSS в их полном объеме. доставка контента.

[править] Вы также можете посмотреть опции, такие как интегрированная среда выполнения Adobe или AIR, как вариант, позволяющий вам кодировать интерфейс с традиционными опциями браузера, такими как xhtml / css / javascript, flash / flex и иметь серверная часть подключена к вашей базе данных в режиме онлайн, одновременно обеспечивая только функциональность традиционного настольного приложения.

0 голосов
/ 22 сентября 2008

Кнопка «Назад» на самом деле не так важна, если вы правильно разработали приложение. Вы можете использовать AJAX для манипулирования частями текущей страницы без добавления элементов в историю браузера (поскольку сама страница не изменится).

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

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

0 голосов
/ 22 сентября 2008

«Пример. Кнопка« Назад »может причинить вам неприятности.»

Вы должны быть конкретны в этом. Многие люди допускают фундаментальные ошибки в своих веб-приложениях и вносят ошибки в работу с транзакциями. Если вы не используете «Redirect after Post» (также известный как Post-Redirect-Get , дизайн PRG), то вы создали ошибку, которая появляется как проблема с кнопкой «Назад».

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

0 голосов
/ 22 сентября 2008

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

Кроме того, существует много проблем с безопасностью, таких как атаки «человек посередине», XSS или инъекции SQL.

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

0 голосов
/ 22 сентября 2008

Выбор правильного подхода к веб-приложению зависит от того, чего вы пытаетесь достичь. Однако вот некоторые общие недостатки веб-приложений:

  • Реальная интеграция с настольными приложениями (например, Outlook) невозможна
  • Перетаскивание между вашим приложением и рабочим столом / другими запущенными приложениями
0 голосов
/ 22 сентября 2008

Вы можете сделать очень много с веб-приложением, но с толстым клиентом гораздо проще делать определенные вещи:

  • Производительность: вы получаете простой доступ ко всей мощности ЦП клиента.
  • Отзывчивость: интерактивность быстрая и простая.
  • Графика: вы можете легко использовать графические библиотеки, такие как DirectX и OpenGL, для создания быстрой впечатляющей графики.
  • Работа с локальными файлами
  • Peer-равному
0 голосов
/ 22 сентября 2008

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

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

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

...