Когда использовать RCP?

9

Мне нравится писать небольшие графические приложения с использованием Java и Swing, что-то вроде клиента для социального сайта Tumblr

Должен ли я использовать Eclipse RCP или платформу Netbeans?

И какие преимущества я получу от использования любого из них по сравнению с обычным колебанием / SWT?

Требуют ли приложения RCP большего количества зависимостей, чем те, которые разработаны с использованием Swing или SWT?

Махмуд Хоссам
источник

Ответы:

6

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

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

Майкл МакГоуэн
источник
7

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

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

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

Поэтому, если вы хотите создать небольшое специальное приложение с множеством нестандартных элементов (например, роскошный клиент Twitter, который имеет все виды пользовательских элементов управления или элементов управления с поддержкой скинов), нет смысла использовать RCP. Фактически, это будет перетаскивать 5 + МБ плагинов в ваше приложение без какой-либо реальной выгоды.

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

Декард
источник
0

Я профессиональный инженер-программист на Java с большим опытом работы с Eclipse RCP и платформой Netbeans.

"Должен ли я использовать Eclipse RCP или платформу Netbeans?"

Ответ: это зависит от следующих факторов:

  • Ваш опыт в Java.
  • Усилия, необходимые для реализации чего-либо в обоих RCP.
  • Четкость документации каждого РКП.
  • Предпочтительный внешний вид, который вы хотите предоставить своим конечным пользователям.

Вот плюсы и минусы для каждого из этих RCP в соответствии с упомянутыми выше факторами:

Платформа Netbeans:

Плюсы:

  • Четкость и организация документации ОТЛИЧНО! Но активное сообщество невелико по сравнению с разработчиками Eclipse RCP.

Минусы:

  • Требуется большой опыт в языке Java.
  • Для того, чтобы сделать то же самое, требуется написать намного больше кода по сравнению с Eclipse RCP.
  • Внешний вид не родной. Платформа Netbeans основана на Swing, поэтому вы получаете одинаковый Java Swing Look & Feel для всех целевых платформ!

Затмение RCP:

Плюсы:

  • Требуется только хорошее знание Java, а также хорошее знание инъекций зависимостей (другими словами, нет необходимости в кунг-фу: P)!
  • В результате внешний вид гораздо более естественный, чем у Netbean. Это потому, что Eclipse RCP основан на SWT. (хотя для меня это мошенничество - только потому, что я не веселый SWT, лично)

Минусы:

  • Четкость и организация документации не так хороши! Cons.

Мое личное предпочтение - это платформа Netbeans только потому, что мне нравится иметь полный контроль над тем, что я делаю с моим кодом, и потому, что я думаю, что основанный на Swing пользовательский интерфейс намного более стабилен, чем SWT (я привык иметь какой-то пользовательский интерфейс вылетает в Eclipse IDE, пока я пишу код: P)!

«Требуют ли приложения RCP большего количества зависимостей, чем те, которые разработаны с использованием Swing или SWT?»

Ответ: Зависимости - это то, что заставляет этих двух детей кататься. В противном случае было бы ненужным называть их RCP. RCP расшифровывается как Rich Client Platform, то есть это экосистема (большой набор API), которая помогает в создании «Rich» приложений, предоставляя средства для этого (через API). ;-). Таким образом, ответ здесь «ДА, ПУТЬ БОЛЬШЕ ЗАВИСИМОСТИ»!

JavaSE
источник