РИА против РКП - PullRequest
       44

РИА против РКП

6 голосов
/ 15 апреля 2009

Я работаю над проектом, в котором мы пытаемся создать замену графического интерфейса для старого приложения. Прежде чем мы действительно реализуем эту функциональность, мы начали создавать прототипы с помощью Eclipse RCP (Rich Client Platform) и GWT (инструментарий виджетов Google, Rich Internet Application). Какой у вас опыт работы с RIA и RCP GUI? Когда имеет смысл использовать RIA и в каких ситуациях богатый клиент больше подходит? С текущими возможностями RIA становится все труднее проводить черту .. У вас есть какой-нибудь опыт?


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

Ответы [ 9 ]

7 голосов
/ 21 апреля 2009

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

Даже если приложение GWT может делать практически все, что может настоящее приложение, ряд факторов указывает на то, что RCP будет лучшим инструментом.

  • Повторная работа
  • много ввода
  • Длинные сессии
  • Повторные задания
  • Пользовательские виджеты для редактирования или презентации.
  • Несколько окон с разными данными.
  • Быстрые клавиши для часто используемых операций
  • Быстрые ответы.
  • Реальная строка меню, CoolBars.
  • Правильное окно, которое легко найти на панели задач.
  • Контекстные меню для редко используемых операций
  • Ограниченное (или известная база) количество пользователей.
  • Обширные или сложные анимации или обновления в реальном времени.

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

RCP и верстак не так просты в работе, но вы получите много бесплатно, если приложение получит выгоду от более "бесплатной" и открытой рабочей модели с несколькими открытыми представлениями / редакторами и т. Д.

Если приложение предназначено для более случайных задач, то GWT действительно хорош.

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

Помните, что вы можете использовать Java Webstart для развертывания приложений RCP.

7 голосов
/ 20 апреля 2009

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

Большим преимуществом использования GWT является простота развертывания по сравнению с чем-то вроде RCP. Для пользователя нет ничего проще, чем навести веб-браузер на URL-адрес, и для операционной команды нет ничего проще, чем отправить код на сервер, отскочить и вызвать его за день.

Что касается функциональности, большая область, в которой GWT будет недостаточно, будет состоять из более богатых визуализаций данных: построения диаграмм, дерева / узла, сетевых диаграмм и т. Д. Это возможно с GWT и некоторой помощью на сервере, но с ограничениями DHTML начинает показывать, даже с таким мощным инструментарием, как GWT. С другой стороны, RCP дает вам полную мощь Java 2D для визуализации всего, что вы хотите. Эти виды функций могут вам и не понадобиться, но они также делают приложения действительно интересными, а не просто набор вкладок, дерева и элементов управления сеткой данных.

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

3 голосов
/ 20 апреля 2009

Богатые интернет-приложения - это хороший способ создать надежное программное обеспечение, которое действует как традиционное программное обеспечение для настольных компьютеров. Одна общая проблема с RIA состоит в том, что многие разработчики склонны размещать бизнес-логику в коде на стороне клиента. Бизнес-логика и состояния в клиентском коде очень небезопасны, поскольку можно манипулировать клиентским кодом во время выполнения. Кроме того, это система белого ящика, которая позволяет хакерам исследовать код и находить недостатки, такие как проверка входных данных, выполняемая только в коде на стороне клиента, или манипулирование состояниями. Не дайте себя одурачить, потому что это только замедляет хакера, но не останавливает его. Билли Хоффман написал хорошую книгу о безопасности AJAX (под названием ta-daa , "Безопасность Ajax"), и я рекомендую ее для каждого разработчика RIA.

Это не означает, что RIA по определению плохая, вы можете написать защищенную RIA, если знаете, что делаете (нет бизнес-логики в коде на стороне клиента, нет состояний, проверка ввода [также] выполняется на стороне сервера и т. Д.) , Есть несколько платформ, которые реализуют этот RIA на основе защищенного сервера, одна из них - IT Mill toolkit (на основе GWT) и ICEFaces - также должна быть моей.

3 голосов
/ 18 апреля 2009

Мы разработали плагин (пилотный проект) для Eclipse, который затем был преобразован в отдельное приложение RCP (мы не хотели поставлять его как плагин, поскольку не хотели, чтобы Eclipse был предварительно установленным). поэтому нам пришлось добавить некоторый вспомогательный код, который немного усложнил бы, чем простой переход в RCP) и в приложение RIA с использованием jQuery.

Несмотря на все усилия лагеря RCP, на разработку версии RIA ушло примерно столько же времени (хотя она и была с нуля), и она выглядела более гладкой в ​​исполнении.

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

Версия RCP давно осталась в функциональности. Что касается нас, Eclipse хорош как среда разработки (для Java у нас нет опыта работы с другими языками), но усилия, которые они вкладывают в отделение IDE от GUI (чтобы сделать возможным RCP), не вполне закончено.

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

3 голосов
/ 15 апреля 2009

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

1 голос
/ 23 апреля 2009

Существует также возможность развертывания RCP с некоторыми преимуществами RIA. Одним из решений, которое исследуется для нашего клиента (для использования исключительно сотрудниками их компании), является использование приложения Java, запущенного через сервлет Java.

Некоторые определенные преимущества включают в себя:

  • Он легко обновляется, как и RIA (просто повторно разверните его JAR-файл, он будет выбран в следующий раз, когда в любой момент перейдет на страницу с апплетом)
  • Он выглядит, чувствует, ведет себя и работает как собственное приложение, очень похоже на RCP (благодаря SWT)

Некоторые выявленные недостатки включают в себя:

  • На компьютерах пользователя должен быть установлен плагин Java.
  • Приложение должно быть разработано в версии Java, совместимой с плагинами пользователей (хотя клиенту может потребоваться установить минимальную версию на компьютерах сотрудников). Может помочь инструмент RetroWeaver, хотя я не очень разбираюсь в этом.
  • Пользователь должен держать веб-браузер открытым, в противном случае приложение будет закрыто.
1 голос
/ 21 апреля 2009

Организация, в которой я работал, выбрала RCP, потому что их пользователям нужно было работать с приложением как онлайн, так и в автономном режиме (когда они в дороге и т. Д.). Я знаю, что теперь это возможно с google grears, но на самом деле gears не достаточно популярны, чтобы крупные организации могли основывать свой флагманский продукт. Но если у ваших пользователей нет необходимости выходить в автономный режим, вы действительно избавите себя от необходимости синхронизировать пользовательские данные / обновления продукта между вашим приложением rcp и сервером, в этом случае RIA будет подходящим вариантом.

0 голосов
/ 18 апреля 2009

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

0 голосов
/ 18 апреля 2009

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

...