Почему веб-приложения распространены для внутренних корпоративных приложений? - PullRequest
28 голосов
/ 20 января 2010

Хорошо, я понимаю, что людям не нравится устанавливать что-либо на свои ПК, если им это не нужно, и это является основным преимуществом веб-приложений перед «настольными», которые работают локально.

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

У меня нет большого опыта работы с веб-приложениями WPF, но у меня сложилось впечатление, что по сути это приложение, работающее локально на вашем ПК с Windows.Я более знаком с тем, что, вероятно, является более старой технологией, в частности с WinForms, развертыванием приложения WinForm с помощью технологии ClickOnce.

Мне кажется, что Click-Once (и предположительно WPF Web Apps) для практических целей имеетРешил проблемы развертывания ада dll в прошлом, но мне кажется, что привлекательность использования веб-приложений для внутреннего использования заключалась в том, чтобы избежать ада dll, связанного с локальными установками.Тем не менее, когда эта проблема решена, почему компании по-прежнему избегают / боятся приложений, которые включают локальную установку, и стремятся к веб-приложениям так быстро?

Мне кажется, что преимущества настольных приложений -

1) СТОИМОСТЬ - Настольные приложения просто концептуально проще, потому что у вас есть все ресурсы локального компьютера, и у вас есть состояние.В результате, настольные приложения ДОЛЖНЫ БЫТЬ намного дешевле в разработке для той же функциональности.Достаточно взглянуть на весь сложный причудливый код Ajax на стороне клиента / сервера, который нужно пройти, чтобы сделать вещи, которые были бы тривиальными в настольном приложении.Я представляю людей, оспаривающих эту точку зрения, но для меня это очевидно и не подлежит обсуждению.

2) Настольные приложения обычно богаче.Веб-приложения в лучшем случае сопоставимы за счет более сложного / более дорогого в разработке кода.(в дополнение к 1)

Я могу перечислить больше, но этого должно быть достаточно ...

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

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

Мне кажется, что люди попадают в рут, и как только они что-то узнают (например, веб-приложения), это решение для всего.Что ты говоришь?

Редактирование # 1: Вот пример настольного приложения Click Once (интегрированный интерфейс для Rational Clearquest / Sharepoint / PVCS / Mercury для управления задачными билетами), использующего преимущества компьютера.Возможность клиента хранить информацию локально и позволить пользователю по-разному нарезать и нарезать данные без попадания на сервер каждый раз, в то же время позволяя пользователю связывать данные в реальном времени с текущими данными для обновления отдельных записей.Это похоже на загрузку электронных таблиц, в которых хранятся ссылки на данные сервера, если пользователь захочет выполнить обновление.

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

Ответы [ 11 ]

21 голосов
/ 20 января 2010

Веб-приложения распространены по многим причинам:

  1. Его легко защитить
  2. Он создает стандартную точку отсчета, к которой может получить доступ каждый:
  3. Неблокировка людей, использующих разные платформы.
  4. Упрощение доступа людей из-за пределов сети (это создает проблемы безопасности для маршрутизаторов / vpn и т. д.)
  5. Меньше технической поддержки (стандартная рабочая платформа)
  6. Легче поддерживать (если он выходит из строя, у вас есть критическая группа реагирования, которая может это исправить, а не тысячи машин, которые случайно отключаются)
  7. Центральная точка хранения данных (проще для резервного копированияи доступ)
  8. Может масштабироваться лучше
  9. Легче построить или повторно использовать инфраструктуру предприятия, чем найти / создать распределенный компонент, настроенный для работы в изменяющейся среде (LDAP, разные базы данных, разные резервные копии), синхронизация)
  10. Менее подвержены злоумышленникам (черви, люди, модифицирующие клиент и т. д.)
  11. Настольные клиенты могут иногдаОни имеют жестко запрограммированные среды или требуют определенных наборов инструментов, которые затрудняют настройку новых пользователей
  12. Работать с сервером дешевле, чем с тысячами клиентов.Вы можете настроить системы для восстановления и быстрого сбоя.Да, серверное оборудование стоит дороже в разы, но дешевле в обслуживании в долгосрочной перспективе.
16 голосов
/ 20 января 2010

Почему веб-приложения преобладают для внутренних корпоративных приложений?

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

Теперь я не уверен, что настольные приложения обычно дешевле (я не знаю, дешевле ли разработка, но я уверен, что обслуживание,поддержка, ... нет).

Однако я согласен с тем, что приложения для настольных компьютеров обычно богаче.Независимо от того, что люди будут утверждать, этот не был спорным до появления AJAX, и это все еще применяется в некоторых конкретных областях, где браузер просто не подходит, с AJAX или без него (спроситетрейдеру пользуйся браузером и увидишь).Некоторым людям не нужна парадигма потока страниц, некоторым людям do нужны расширенные виджеты (например, компонент сетки с расширенной фильтрацией, группировка, функции, подобные Excel, такие как основные формулы и т. Д.), Илинизкая задержка, или в режиме реального времени, и т. д., то есть вещи, для которых на самом деле не создано многофункциональное интернет-приложение или RIA, и поэтому он не является правильным инструментом для выбора!

И я также согласен с тем, что такие технологии, как Java WebStart илиMicrosoft ClickOnce действительно решает старую проблему развертывания и позволяет разрабатывать так называемые Rich Desktop Applications - или RDA - (богатый пользовательский интерфейс рабочего стола на клиенте, бизнес на сервере, стандартный протокол между ними и централизованное развертывание, поэтому по-прежнему тонкий клиент ), который кажется отличным компромиссом (лучший пользовательский опыт, но без головной боли).

Так почему же люди систематически опускают опцию RDA?Ну, я считаю, что:

  1. Мы (ИТ-специалисты) научили людей создавать интернет-приложения, чтобы они просто (ре) делали это.
  2. Это уже достаточно сложно, чтобы объяснить ИнтернетТонкий клиент, AJAX, RIA и т. д., и на RDA не так много евангелизации.Поэтому большинство людей просто не знают, что такое RDA.
  3. Мы (ИТ-специалисты) постоянно говорим что-то и наоборот: не используйте толстого клиента, это отстой, используйте тонкий клиент, это правила, донНе используйте javascript, он отстой (до эры AJAX), используйте javascript, он правит (после эры AJAX), не использует тонкий клиент (!), он отстой, использует многофункциональное настольное приложение, он управляет и так далее.Даже если в этом есть логика, это делает некоторые концепции (например, RDA) трудными для продажи не технарям в конце.
  4. Люди не могут легко забыть плохой опыт (толстый клиент), даже если что-то изменилосьс тех пор.
  5. Люди на самом деле не нуждаются в RDA, скажем, в 95% случаев.
  6. Существует больше разработчиков RIA, чем разработчиков RDA.

Так что это наша (мы, ИТ-специалисты) ошибка:)

11 голосов
/ 20 января 2010

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

  1. 20% моих пользователей не используют Windows.
  2. 100% моих пользователей хотят использовать приложения для внутренней сети из дома.
  3. 100% моих пользователей хотят видеть свои личные данные независимо от того, откуда они подключаются.
  4. Никому не нравится, когда говорят: «Пожалуйста, подождите, пока мы обновим вас до версии 3.0.1»

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

6 голосов
/ 20 января 2010
  • Ускорение разработки
  • Простота развертывания (возможно, вы развернете несколько раз)
  • Некоторые корпоративные ИТ-группы не позволяют пользователям устанавливать приложения

**** Редактировать ****

  • Легче гарантировать производительность сети приложения-базы данных
  • База данных более безопасна
  • Легчеобъясните, как запустить приложение
  • Нет необходимости хранить или устанавливать дополнительные библиотеки (обычно)
  • Легче поддерживать (как разработчикам, так и ИТ)
3 голосов
/ 20 января 2010

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

После этого я создал веб-приложение для той же компании. Его также использовали тысячи людей. Как только мы закончили разработку и тестирование приложения, весь процесс распространения состоял из 1) развертывания в prod и 2) отправки URL всем. Намного проще предоставить всем доступ к веб-приложению, и небольшая доля проблем с поддержкой.

3 голосов
/ 20 января 2010
  1. Веб-приложения гораздо проще обновлять. Внутренняя команда разработчиков может обновить сайт, даже если пользователи не заметят.
  2. Веб-приложения обычно используют меньшую пропускную способность, чем толстые клиенты. Если у вас несколько офисов или отдел продаж в дороге, пропускная способность очень важна. Попробуйте использовать (в худшем случае) MS Access для подключения к удаленной базе данных через линию 1 Мб - это не работает.
2 голосов
/ 20 января 2010

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

1 голос
/ 30 августа 2012
  • Поскольку сеть является универсальной платформой, а клиентские ОС - нет.
  • Поскольку разработка и поддержка кода на стороне сервера проще, чем разработка и поддержка кода на стороне сервера И на стороне клиента.
  • Потому что сеть стабильна и основана на стандартах, а клиентские ОС являются проприетарными и развивающимися.
  • Потому что сеть переживет вашу текущую ИТ-политику и корпоративную структуру.(Когда вы объединяетесь с компанией B, и 5 000 сотрудников появляются со своими Chromebook, ваши интеллектуальные приложения Windows не будут выглядеть такими умными).
  • Поскольку 99% корпоративных приложений являются приложениями CRUD.Если вам нужно манипулировать данными на стороне клиента, дамп в Excel.
  • Потому что удачи в поиске разработчиков Windows-клиентов.Деньги, действие и талант - все это в сети и на мобильных устройствах.
1 голос
/ 20 января 2010

Давайте рассмотрим ваш ответ 1) СТОИМОСТЬ - Настольные приложения просто концептуально проще, потому что у вас есть все ресурсы локального компьютера, и у вас есть состояние. В результате, настольные приложения ДОЛЖНЫ БЫТЬ намного дешевле в разработке для той же функциональности. Достаточно взглянуть на весь сложный причудливый код Ajax на стороне клиента / сервера, который нужно пройти, чтобы сделать вещи, которые были бы тривиальными в настольном приложении. Я представляю людей, оспаривающих эту точку зрения, но для меня это очевидно и не подлежит обсуждению.

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

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

2) Настольные приложения обычно богаче. Веб-приложения в лучшем случае сопоставимы за счет более сложного / более дорогого в разработке кода. (следствие 1)

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

1 голос
/ 20 января 2010

Это также упрощает масштабируемость и надежность приложения. Разместив его на резервном сервере (возможно, в кластере), вы разрешите один источник для развертываний (@Gabriel), и вам не придется беспокоиться о техническом обслуживании системы. Вам не нужно беспокоиться, что компьютер Мэри в коридоре слишком медленный, чтобы запустить приложение. Это также снижает требования к доступу / безопасности к источникам данных. С новой разработкой веб-сайтов MVC, n-уровня и т. Д. Доступ к данным распределяется по единственному слою, а не для того, чтобы каждый том / член / гарри имел к нему доступ для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...