Какую платформу Rich Client использовать
Недавно мы начали разработку настольного приложения Java, и руководство попросило использовать Rich Client Platform. Я знаю четыре для Java, а именно:
Кто-нибудь получил какой-либо опыт в любом из них, и если да, то какова сила и слабость каждого?
спасибо
Ответы
Ответ 1
Я рекомендую вам взглянуть на JSR 296 - он еще не завершен ни одним растяжком, но я думаю, что он попадает в сладкое место для предоставления определенных основных функций, которые вам действительно нужны в каждом приложении Java GUI, не заставляя вас жить в чрезмерно сложной структуре.
Я успешно использовал JSR 296 для создания приложения среднего размера. Для макета окна в этом приложении мы используем MyDoggy (настоятельно рекомендуется). Для управления компоновкой мы используем MiGLayout (Beyond настоятельно рекомендуется). Для привязки данных мы используем модифицированную форму JSR 295 (мы реализовали нечто похожее на PresentationModel поверх JSR 295, которое мы используем для наших GUI-привязка). Я в процессе включения Guice в качестве механизма DI, но не закончил это усилие (до сих пор я думаю, что он будет "хорошо играть" с JSR 296 с настройкой здесь и там). Давайте посмотрим... настойчивость - это недостающее звено здесь. В настоящее время я оцениваю Simple для сохранения XML, но у меня возникают проблемы с получением это для работы с контейнерами DI, такими как Guice. У меня Betwixt работает, но зависимости от Betwixt огромны, поэтому мы ищем что-то более упорядоченное.
Мнения о других вариантах RCP для Java:
NetBeans:
У меня есть некоторые фундаментальные философские возражения против подхода, используемого NetBeans (слишком много дизайнерских анти-шаблонов для моего вкуса). В конце концов, структура заставляет вас принимать плохие дизайнерские решения - и это почти невозможно использовать, если вы не используете NetBeans в качестве вашей IDE (я пробовал, но я просто не мог переключиться с Eclipse на NB). Это, вероятно, только я, но кажется, что можно писать код для RCP-инфраструктуры без использования больших сложных мастеров и коробок автогенерированного кода и XML файлов. Я потратил столько часов на то, чтобы устранить старый код Visual С++, сгенерированный Visual Studio, что я чрезвычайно подвержен любой структуре, которая не может быть закодирована вручную.
Spring RCP:
Люди в Spring имеют хорошую прочную конструкцию, но документация действительно, очень слабая. Достаточно сложно встать на скорость (но как только вы это сделаете, вы можете сделать все довольно быстро).
Eclipse RCP:
Не использовали Eclipse только из-за накладных расходов на развертывание (в зависимости от вашей целевой аудитории - для нас, развертывание дополнительных 50 МБ времени выполнения просто не сработало). Без сомнения Equinox - прекрасная вещь, если ваше приложение нуждается в значительных функциональных возможностях (конечно, вы можете запустить Equinox с JSR 296, а также использовать шаблоны проектирования, похожие на шаблон Whiteboard, продвигаемый OSGi).
Ответ 2
INTRO - пропустить, если вы только interesterd в результате;)
Я разрабатывал редактор для пользовательского языка программирования, очень похожий на JSP. Сначала я внедрил редактор в качестве моей диссертации, используя платформу NetBeans. После окончания школы у меня есть работа, и они хотели, чтобы я реализовал одно и то же в Eclipse RCP, поэтому теперь я могу сравнить эти две платформы, по крайней мере, в материалах, с которыми я сталкивался во время этого проекта.
РЕЗУЛЬТАТ - Если бы у меня был выбор между платформой 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() {
..
}
Ну, я подумал, что они, должно быть, издеваются надо мной: - Как я должен использовать этот метод?
Или вот так:
/**
* Returns the range of the current selection in coordinates of this viewer document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();
Хотя количество и тип атрибутов fitts, я не нахожу идеальную структуру данных объекта Point для хранения диапазона; -)
В Eclipse RCP есть числа таких сюрпризов
Ответ 3
Слишком поздно ответить, но некоторые ребята могут попасть на эту страницу.
Я пошел бы за NetBeans RCP,
1) Платформа Netbeans. его довольно зрелая и развитая платформа является "простой в использовании" для разработки приложений.
2) Его очень легко начать, в то время как кривая обучения Eclipse RCP довольно крутая. Просто перейдите, http://netbeans.org/kb/trails/platform.html, там вы найдете обучающие программы, видеоролики (смотрите видеоролики из 10 лучших api файлов плюс опробуйте руководства, прежде чем читать книги, вы заранее узнаете вещи).
3) Книги о netbeans RCP (я думаю, что есть 2 на netbeans RCP) являются uptodate (небольшие изменения только, с которыми у вас не будет много проблем). в то время как основная книга по RCP была недоступна в течение длительного времени (недавно, возможно, в 2010 году выпущена новая версия, так что очень хорошо для разработчиков RCP для eclipse. Это было не там, когда я пытался чтобы понять его. Я расстраиваюсь с авторами, которые не публикуют новые выпуски, почти не оставляя новых разработчиков в беде. Не всем нравится читать документы. Не публиковать обновленные книги почти не убивает технологию). Мне бы очень хотелось увидеть книгу типа поваренной книги для обеих платформ.
4) Netbeans имеет встроенный графический интерфейс, который является большим плюсом. Eclipse RCP, либо вам нужно передать код, либо купить сторонний GUI-конструктор.
5) Платформа Netbeans имеет довольно приятный Lookup api для межмодульной коммуникации. Я думаю, что парни затмения используют точки расширения для этой цели. Но искать api легко, как только вы получите его.
6) В любом случае, это большое дизайнерское решение, о том, какую платформу выбрать. Платформа Netbeans работает для меня. Это может не сработать для вас. Обе платформы требуют усилий, оба обеспечивают прекрасные функции "из коробки". Тест-драйв, и затем решите.
Ответ 4
У меня есть опыт работы с Eclipse RCP и рекомендую его.
Плюсы:
- Компоненты - компонентная /plu -in модель позволяет повторно использовать.
- Использует SWT и JFace, который позволяет использовать собственный пользовательский интерфейс
- Подключаемые представления, редакторы и перспективы делают макеты легко настраиваемыми.
- Точки расширения Eclipse упрощают расширение и интеграцию с сторонними API и инструментами.
Минусы:
Если вы выберете Eclipse RCP, вызывающе получите эту книгу, она будет недействительной, когда только начнется с рамки: http://www.amazon.com/Eclipse, Rich-клиент-Platform-Applications/дп/0321334612
Ответ 5
В настоящее время я разрабатываю приложение Spring RCP. Документация действительно слабая, это точно, но в блогах и на форуме есть много информации, чтобы идти. Когда вы путешествуете, дела идут довольно быстро, и вам действительно нужно только изучить базовый Spring, если вы не знакомы с каркасом. Интеграция с библиотеками Spring, такими как VLDocking, тоже отличная.
Я думаю, что Spring Rich отлично подходит, если ваш вариант использования - разработать автономное приложение для Java-приложений. Я имею в виду, что если вам не нужно распространять модули и делать онлайн-обновления, они должны удовлетворять большинство потребностей.
Ответ 6
С точки зрения моего конечного пользователя.
Я видел больше реализаций в Eclipse, чем в двух других. На самом деле я знаю о реализации Netbeans, но никогда не получал в своих руках.
Из Spring это первый раз, когда я слышал об этом.
В то время как мой ответ определенно выглядит с супер 10000 футов, он отражает как-то предпочтение, которое отрасль имела в использовании того или другого.
Кроме того, разница пропорциональна времени, когда платформа была доступна. Помните, что Eclipse создает SWT для решения проблем, с которыми Java Swing вернулась в 1.3, где было просто слишком медленно.
Netbeans были очень полезны усовершенствованиями JVM и теперь работают очень быстро.
Spring по-прежнему молод (по сравнению с другими двумя), но, как всегда, новые вещи учатся из первых, скорее всего, их проще использовать.
Вот статья об этих двух платформах Eclipse RCP vs Netbeans RCP. Может быть полезно
http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform
Ответ 7
Хотя я не использовал их явно, я использовал части Eclipse RCP. В частности, я использовал среду выполнения Eclipse OSGi (Equinox) и некоторые общие утилиты, и я очень доволен. OSGi является фантастическим для работы. У меня есть несколько друзей по крупным контрактам, которые используют Eclipse RCP (больше, чем я использую), и они бредит об этом.
Если бы мой проект не содержал большой набор старых версий Swing, Eclipse RCP был бы моим первым выбором. OSGi просто так весело! (Я полагаю, что Spring тоже использует его, не проверил)
Ответ 8
Конечно, все зависит от типа приложений и услуг, которые вы хотите предоставить, и от целевой среды. Но я также могу рекомендовать OSGi в качестве платформы разработки и развертывания. Основная архитектура и спецификации очень хорошо разработаны и доказаны.
Помимо Eclipse RCP вы должны взглянуть на Apache Felix (http://felix.apache.org) и Knopflerfish (http://www.knopflerfish.org), которые представляют собой (меньшие) реализации OSGi с открытым исходным кодом.
Ответ 9
Netbeans RCP отличная. Его долгий путь на протяжении многих лет. Он использует более надежную технологию ( "Swing" ), которую многие используют и понимают. Eclipse RCP (более конкретно SWT) просто смутил меня.
Ответ 10
Eclipse RCP предоставляет механизм подключаемого модуля, позволяющий добавлять новые функции позже в развертывание. Также через механизм обновления вы можете изменить систему без вмешательства пользователя. На этапе разработки Eclipse RCP обеспечивает быструю и надежную основу с перспективами, представлениями, редакторами, командами и механизмами действий. Если для вашего проекта требуется много разных окон с различными панелями инструментов и меню (а также настраиваемые контекстные меню), я предлагаю вам использовать Eclipse RCP. Я только просматриваю видео платформы Netbeans и запускаю проект Helloworld, но кажется медленным и неуклюжим:) 40 секунд для запуска (вы можете перезагрузить приложение, но без перезагрузки). Vogella.de - это хорошая коллекция учебников для Eclipse RCP