Подтвердить что ты не робот

Каковы преимущества и проблемы разработки веб-приложений и настольных приложений?

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

  • Литература для настольных приложений значительно меньше, чем для веб-приложений.
  • Кодирование панелей и кнопок сложнее, чем использование декларативного подхода (HTML)
  • Отсутствие апатрида http заставляет вас переосмыслить форму запроса/ответа

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


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

4b9b3361

Ответ 1

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

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

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

Что касается разработки с веб-разработкой, вы имеете:

  • более короткие пути выполнения
  • меньше состояния для управления
  • вам вряд ли придется иметь дело с parallelism самостоятельно
  • намного меньше или нет ресурсов для управления - никаких дескрипторов ОС

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

Поэтому всегда предпочитайте веб-приложение, если это возможно.

Ответ 2

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

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

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

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

Для тех, кто говорит, что "веб-приложения всегда лучше", позвольте мне задать вам этот вопрос: подумайте о инструментах, которые вы используете каждый день. Ваш текстовый редактор, программирование IDE, ваш браузер, ваш почтовый клиент. Какие из этих веб-приложений? Наверное, нет, кроме, может быть, вашего почтового клиента. Там есть причина, по которой вам не нужна веб-среда IDE для написания программного обеспечения (или написания книги или серьезной манипуляции с изображением).

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

Ответ 3

IMHO Web Develoment является более напряженным... вы должны бороться с несоблюдением Internet Explorer стандартным, медленным подключением, странным поведением css, эксплойтом браузера.

Ответ 4

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

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

Ответ 5

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

  • Состояние. HTTP-запросы не имеют состояния и должны управляться передачей переменных сеанса во всех запросах или куках. Это накладные расходы в веб-приложениях, и ASP.NET часто подпадает под огромные капли данных сеанса.
  • Централизованный. Нажатие изменения в веб-приложении так же просто, как обновление бит на сервере или настольных приложений, где исправления должны быть развернуты для всех пользователей. Централизованный характер также облегчает работу с аналитикой. Это большое удобство. Я помню, что GMail в один момент фиксировал дыры в безопасности менее чем за 4 часа. Напротив, есть еще множество уязвимых незапакованных оконных машин.
  • Архитектурный - толстый сервер, тонкие клиенты делают платформу для веб-приложений агностикой. Это также помогает в управлении балансом... например, сортировка таблицы, проверка ошибок, математические вычисления или графика (например, для флэш-памяти) могут выполняться на любом клиенте или сервере в зависимости от распределения ресурсов. Из-за тонкого клиента это означает, что можно полностью переустановить сервер, не затрагивая вообще клиента. Этот уровень гибкости действительно удобен.
  • Безопасность. Настольные приложения запускаются в надежной среде, где они могут делать что угодно, когда веб-приложения работают в среде с песочницей, что делает их по своей сути более безопасными для клиента. Тем не менее, веб-приложения требуют некоторой конфигурации, поскольку они относятся к сертификатам, элементам управления activex и т.д.
  • Версии. Стоимость версий более высока для настольных приложений. Это восходит к более утомительному процессу отталкивания изменений. И опять же, прыжки с большими номерами версий означают увеличение доходов за счет обновлений пользователей. В веб-приложениях управление версиями осуществляется в основном для самих разработчиков, и гораздо проще выполнять небольшие итерационные улучшения. Это причина, по которой настольные приложения по-прежнему придерживаются цикла разработки водопада, потому что выталкивание изменений является дорогостоящим, и вы должны получить его в первый раз. Настольные приложения также имеют затраты на обратную совместимость, такие как поддержка Windows 98, XP и Vista или поддержка старых процессоров, драйверов и т.д.
  • Среда. Веб-приложения работают в предсказуемой среде, что снова очень удобно. Между IE/FF/Opera и т.д. Существуют проблемы межсетевого браузера, но гораздо проще тестировать и отлаживать, чем запускать сложное приложение в настольной системе с различными графическими процессорами, антивирусным программным обеспечением или сборками.
  • Отзывчивость. Веб-приложения имеют более медленную отзывчивость из-за обратной связи, но AJAX сделал это намного проще и веселее.

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

Ответ 6

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

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

Ответ 7

Я очень сомневаюсь, что веб-программистам нужно знать winapi. Я говорю, что программирование GUI требует больше времени для изучения.

Ответ 8

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

Ответ 9

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

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

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

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

Более подробная информация в вопросе поможет, поскольку этот вопрос почти слишком широк для покрытия.

Ответ 10

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

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

Ответ 11

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

Ответ 12

В настольных приложениях вам не нужно иметь дело с такими проблемами, как состояние приложения, как и в Интернете. HTTP - это протокол без учета состояния, поэтому задание разработчика определяет, как поддерживать текущее состояние приложения для сеанса пользователя. Рабочий стол может использовать TCP/IP и поддерживать соединение с сервером.

В Интернете очень легко создать привлекательный пользовательский интерфейс, так как вы можете добавлять анимации с помощью Javascript, Flash и т.д. Это больше работает для разработчика, когда приложение является ориентированным на данные, а состояние приложения является проблемой.

Ответ 13

Все зависит от:

  • Каков ваш опыт разработчика?
  • Какое приложение вам нужно сделать?

А также - что вы называете веб-приложениями? Приложения Silverlight или Flash можно сделать так, чтобы вы могли использовать его с рабочего стола или из браузера. Приложения Ajax сегодня не очень отличаются от настольных приложений, но гораздо сложнее разработать что-то не слишком простое с DHTML (даже если вы используете фреймворки, такие как jQuery или даже GWT).

Предполагая HTML или DHTML как веб-приложения:

Я провел много лет в разработке web/ajax и desktop, и мой опыт сравним - я сделал кучу сложных веб-приложений и настольных. Имея хороший инструментарий и инструменты для С# и достаточный опыт, я могу создать более удобное настольное приложение, чем веб-приложение в одном и том же или более коротком таймфрейме. Но некоторые типы приложений НЕ МОГУТ быть выполнены как настольные, поскольку это требование для их использования в качестве веб-приложений.

Причины упрощения разработки рабочего стола:

  • Безопасность типа языка, подсказки кода
  • Производительность кода x10-1000 + профили производительности
  • Не нужно проверять все во всех браузерах
  • Информативные исключения со стеком-трассировкой, редактированием и продолжением
  • Возможность использования многопоточности (если вы знаете, как его использовать)
  • Общая предсказуемость и стабильность кода
  • Инструменты RAD

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

  • GUI Framework - HTML + CSS
  • Пользователям легче начать использовать его
  • Содержимое приложений можно найти в поисковых системах.

Теперь у всех нас есть сильные графические интерфейсы, такие как XAML для приложений WPF/Silverlight. Вторая точка может быть покрыта приложениями Silverlight/Flash (которые я рассматриваю как настольные). Третье можно сделать для RIA, но требует некоторых усилий (то же самое относится к приложениям ajax).

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

Ответ 14

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