Вопрос

Недавно мы начали разработку настольного приложения Java, и руководство попросило нас использовать Rich Client Platform.Я знаю четыре для Java, а именно:

  1. Затмение РКП - www ссылка на ecipse rcp,
  2. Netbean RCP — Веб-сайт RCP Netbeans,
  3. Пружинная РКП - Весенний богатый клиент
  4. Валькирия РКП - Богатый клиент Валькирии

Есть ли у кого-нибудь опыт работы с любым из них, и если да, то каковы сильные и слабые стороны каждого из них?

Спасибо

Это было полезно?

Решение

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

Я успешно использовал JSR 296 для создания приложения среднего размера.Для макета окон в этом приложении мы используем Моя собачка (настоятельно рекомендуется).Для управления макетом мы используем MiGLayout (настоятельно рекомендуется Beyond).Для привязки данных мы используем модифицированную форму JSR 295 (мы реализовали что-то похожее на Модель презентации поверх JSR 295, который мы используем для привязки графического интерфейса).Я нахожусь в процессе включения Guice в качестве механизма внедрения зависимостей, но еще не завершил эту работу (пока я думаю, что он будет «хорошо работать» с JSR 296 с некоторыми изменениями).Давайте посмотрим...настойчивость - это большое недостающее звено здесь. В настоящее время я оцениваю Простой для сохранения XML, но у меня возникли проблемы с его работой с контейнерами DI, такими как Guice.У меня есть Между работает, но зависимости от Betwixt огромны, поэтому мы ищем что-то более оптимизированное.

Мнения о других вариантах RCP для Java:

NetBeans:У меня есть некоторые фундаментальные философские возражения против подхода, используемого NetBeans (на мой вкус, слишком много антишаблонов проектирования).В конце концов, фреймворк вынуждает вас принимать неверные проектные решения - и его практически невозможно использовать, если вы не используете NetBeans в качестве своей IDE (я пробовал, но просто не смог переключиться с Eclipse на NB).Вероятно, это только я так думаю, но мне кажется, что должна быть возможность писать код для платформы RCP без использования больших сложных мастеров и множества автоматически сгенерированного кода и XML-файлов.Я потратил так много часов на устранение неполадок старого кода Visual C++, созданного Visual Studio, что крайне настороженно отношусь к любой платформе, которую нельзя написать вручную.

Весенняя РКП:Ребята из Spring имеют хороший и надежный дизайн, но документация очень, очень слабая.Довольно сложно освоиться в этом (но как только вы это сделаете, вы сможете добиться цели довольно быстро).

Затмение РКП:Я не использовал Eclipse только из-за накладных расходов на развертывание (зависит от вашей целевой аудитории — для нас развертывание дополнительных 50 МБ среды выполнения просто не сработало).Без сомнения, Equinox — прекрасная вещь, если вашему приложению требуется значительная функциональность плагина (конечно, вы также можете запустить Equinox с JSR 296 или использовать шаблоны проектирования, аналогичные шаблону «Доска», продвигаемому OSGi).

Другие советы

ВВЕДЕНИЕ - пропустите, если вас интересует только результат ;)
Я разрабатывал редактор для специального языка программирования, очень похожего на JSP.Сначала я реализовал редактор в качестве своей диссертации, используя Платформа NetBeans.После окончания школы я устроился на работу, и они хотели, чтобы я реализовал то же самое в Затмение РКП, так что теперь я могу сравнить эти две платформы хотя бы в том, с чем мне пришлось столкнуться во время этого проекта.

РЕЗУЛЬТАТ - Если бы у меня был выбор между платформой Netbeans и Eclipse RCP, я бы определенно выбрал платформу NetBeans..Почему?
Отличные скринкасты, хорошие обучающие материалы, очень активное, дружелюбное и отзывчивое сообщество, достаточно хорошо документированное, а исходный код написан красиво и с соблюдением правил кода.Также есть несколько интересных гаджетов (файлы cookie, поиск).Меня это просто устраивает.

А почему меня Eclipse RCP не устраивает?
Документация слабее, а соглашения и API иногда... эх... слишком странные для меня :-) Довольно часто можно увидеть такие методы, как:

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

Ну, я подумал, что они, должно быть, шутят надо мной :-D Как мне использовать этот метод?Или вот так:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

Хотя количество и тип атрибутов подходят, я не считаю идеальную структуру данных объекта Point для хранения диапазона ;-)

В Eclipse RCP есть множество таких сюрпризов.

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

Я бы пошел на Netbeans RCP, 1) платформу NetBeans.она достаточно зрелая и превратилась в «простую в использовании» платформу для разработки приложений.

2) С ним очень легко начать, тогда как кривая обучения Eclipse RCP довольно крутая.Просто иди, http://netbeans.org/kb/trails/platform.html, там вы найдете учебные пособия и видеоролики (посмотрите 10 лучших видеороликов API и попробуйте учебные пособия, прежде чем читать книги, так вы заранее освоитесь).

3) Книги по netbeans RCP (я думаю, по netbeans RCP их две) обновлены (только небольшие изменения, с которыми у вас не возникнет особых проблем).тогда как основная книга по RCP долгое время не была доступна (недавно, то есть в мае 2010 года, вышло новое издание, так что это очень хорошо для разработчиков eclipse RCP.Его не было, когда я пытался этому научиться.Меня расстраивают авторы, которые не публикуют новые издания, почти оставляя новых разработчиков в беде.Не все любят читать документацию.Не публиковать обновленные книги почти равносильно уничтожению технологии).Мне бы хотелось увидеть книгу типа кулинарной книги для обеих платформ.

4) Netbeans имеет полностью интегрированный конструктор графического интерфейса, что является большим плюсом.Eclipse RCP: вам придется либо передать код, либо купить сторонний конструктор графического интерфейса.

5) Платформа Netbeans имеет довольно классный API-интерфейс Lookup для межмодульной связи.Я думаю, ребята из Eclipse используют для этой цели точки расширения.Но найти API легко, если вы освоите его.

6) В любом случае, какую платформу выбрать, это важное дизайнерское решение.Платформа Netbeans у меня работает.Это может не сработать для вас.Обе платформы требуют усилий, обе предоставляют замечательные «из коробки» функции.Протестируйте оба, а затем примите решение.

У меня есть опыт работы с Eclipse RCP, и я рекомендую его.

Плюсы:

  • Компоненты — модель компонента/плагина допускает повторное использование.
  • Использование SWT и JFace, который позволяет создавать собственный пользовательский интерфейс.
  • Подключаемые представления, редакторы и перспективы упрощают и настраиваемые макеты.
  • Точки расширения Eclipse упрощают расширение и интеграцию со сторонними API и инструментами.

Минусы:

  • Кривая обучения

Если вы выберете Eclipse RCP, обязательно приобретите эту книгу, она бесценна, когда вы только начинаете работать с инфраструктурой: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

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

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

Хотя я не использовал ни один из них явно, я использовал части Eclipse RCP.В частности, я использовал среду выполнения Eclipse OSGi (Equinox) и некоторые распространенные утилиты и остался очень доволен.С OSGi приятно работать.У меня есть несколько друзей по крупным контрактам, которые используют Eclipse RCP (больше, чем я), и они в восторге от этого.

Если бы мой проект не содержал большого количества устаревших версий Swing, моим первым выбором был бы Eclipse RCP.OSGi — это так весело!(Я предполагаю, что Spring тоже его использует, но не проверял)

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

Помимо Eclipse RCP, вам следует взглянуть на Apache Felix (http://felix.apache.org) и Нопфлерфиш (http://www.knopflerfish.org), которые являются (меньшими) реализациями платформы OSGi с открытым исходным кодом.

С моей точки зрения конечного пользователя.

Я видел больше реализаций в Eclipse, чем в двух других.На самом деле я знал о реализациях Netbeans, но никогда не держал их в руках.

Из Весны я впервые об этом слышу.

Хотя мой ответ определенно — вид с высоты 10 000 футов, он каким-то образом отражает предпочтение, которое отрасль имела в отношении использования того или другого.

Кроме того, разница пропорциональна времени доступности платформы.Помните, что Eclipse создал SWT для решения проблем, с которыми Java Swing столкнулся еще в версии 1.3, когда он был просто непозволительно медленным.

Netbeans значительно выиграли от улучшений JVM и теперь работают очень быстро.

Spring еще молод (по сравнению с двумя другими), но, как всегда, новые вещи учатся на предыдущем, скорее всего, его проще использовать.

Вот статья об этих двух платформах: Eclipse RCP и Netbeans RCP.Может быть полезно

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform

Netbeans RCP превосходен.За эти годы он прошел долгий путь.Он использует более надежную технологию («Swing»), которую используют и понимают многие люди.Eclipse RCP (точнее SWT) меня просто смутил.

Eclipse RCP предоставляет механизм подключаемых модулей, позволяющий добавлять новые функции позже при развертывании.Также через механизм обновления вы можете изменить систему без вмешательства пользователя.На этапе разработки Eclipse RCP обеспечивает быструю и надежную основу с перспективами, представлениями, редакторами, механизмами команд и действий.Если вашему проекту требуется много разных окон с разными панелями инструментов и меню (а также настраиваемыми контекстными меню), я предлагаю вам использовать Eclipse RCP.Я проверяю только видеоролики платформы Netbeans и запускаю проект Helloworld, но он кажется медленным и неуклюжим :) Запуск занимает 40 секунд (хотя вы можете перезагрузить приложение без перезапуска). vogella.de — хорошая коллекция руководств по Затмение РКП

Существует также создание и настройка пользовательского интерфейса на основе отражения.

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

https://github.com/dotxyteam/ReflectionUI

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top