Kiedy stosować RCP?

9

Lubię pisać małe aplikacje GUI przy użyciu Java i Swing, coś w rodzaju klienta dla serwisu społecznościowego Tumblr

Czy powinienem używać Eclipse RCP lub platformy Netbeans?

Jakie korzyści czerpię z używania jednego z nich zamiast zwykłego huśtania / SWT?

Czy aplikacje RCP wymagają więcej zależności niż te opracowane przy użyciu Swing lub SWT?

Mahmoud Hossam
źródło

Odpowiedzi:

6

Deckard zareagował całkiem nieźle. Chciałbym dodać, że warto zastanowić się, jak ten projekt będzie kontynuowany. Zastanów się, ilu twoich współpracowników (lub ogólnie programistów) zna Swing i in., A ilu zna RCP. Moja organizacja miała pewne bóle głowy, gdy chcieliśmy odkurzyć starą aplikację RCP. Okazuje się, że większość osób zaangażowanych w projektowanie projektu opuściło firmę lub przeszło na stanowiska niezwiązane z rozwojem. Nasza wiedza specjalistyczna dotyczyła głównie Swinga, więc sprawiło to, że było trudniej niż trzeba. Chcieliśmy również zintegrować jego części z oddzielną aplikacją opartą na Swing, i znowu fakt, że stara aplikacja była aplikacją RCP, utrudnił wszystko.

Nie twierdzę, że nie powinieneś tworzyć aplikacji RCP, ale są to pewne rzeczy, które warto rozważyć w pierwszej kolejności.

Michael McGowan
źródło
7

Zasadniczo, gdy używasz Swinga, musisz wszystko skonfigurować ręcznie: definiujesz okno, każdy obszar i kontrolę, w środku ponownie definiujesz każdą kontrolę. Dla każdej kontroli i obszaru, który definiujesz, aby zajmować się zmianami i działaniami użytkownika itp. Musisz to zrobić, ponieważ nic nie będzie działać, chyba że zostanie to wyraźnie zdefiniowane i wdrożone.

RCP również na to pozwala, ale zawiera wiele komponentów wyższego poziomu, które wykonują wiele typowych czynności. Na przykład, to tylko kilka kroków konfiguracji, aby zdefiniować interfejs wielu dokumentów (MDI) lub dodać paski narzędzi z ikonami, które uruchamiają zewnętrzne wtyczki po ich kliknięciu.

Ponieważ RCP jest tym, co napędza Eclipse, podstawowe bloki koncentrują się zwykle na aplikacjach, które mają potrzeby podobne do środowiska programistycznego: obszerna edycja tekstu we wszystkich rodzajach okien, przy użyciu wszelkiego rodzaju menu kontekstowych / pasków narzędzi / operacji / itp.

Więc jeśli chcesz stworzyć małą niestandardową aplikację z dużą ilością niestandardowych elementów (takich jak krzykliwy klient Twittera, który ma wszystkie rodzaje niestandardowych elementów sterujących lub tworzonych przez skórę), nie ma sensu używać RCP. W rzeczywistości przeciągnie 5 + MB wtyczek do aplikacji bez żadnych rzeczywistych korzyści.

Jeśli chcesz stworzyć aplikację, która wyświetla strony internetowe, wymaga obszernego systemu pomocy, musi przeprowadzić automatyczną aktualizację przez Internet i tego rodzaju funkcjonalność aplikacji komputerowej na dużą skalę, RCP będzie dobrze pasować.

Deckard
źródło
0

Jestem profesjonalnym inżynierem oprogramowania Java z dużym doświadczeniem na platformie Eclipse RCP i Netbeans.

„Czy powinienem używać Eclipse RCP lub platformy Netbeans?”

Odpowiedź: To zależy od następujących czynników:

  • Twoje doświadczenie w Javie.
  • Wysiłek wymagany do wdrożenia czegoś w obu RCP.
  • Przejrzystość dokumentacji każdego RCP.
  • Preferowany wygląd, który chcesz zapewnić użytkownikom końcowym.

Oto zalety i wady każdego z tych RCP według czynników, o których wspomniałem powyżej:

Platforma Netbeans:

Plusy:

  • Przejrzystość i organizacja dokumentacji jest DOSKONAŁA! Aktywna społeczność jest jednak niewielka w porównaniu do społeczności programistów Eclipse RCP.

Cons:

  • Wymaga dużej wiedzy specjalistycznej w języku Java.
  • Wymaga o wiele więcej kodu do napisania w porównaniu do Eclipse RCP, aby zrobić to samo.
  • Wygląd nie jest rodzimy. Platforma Netbeans oparta jest na Swing, dzięki czemu otrzymujesz ten sam Java Swing Look & Feel na wszystkich platformach docelowych!

Eclipse RCP:

Plusy:

  • Wymaga po prostu dobrej znajomości języka Java z dobrą znajomością wstrzykiwania zależności (innymi słowy, nie są wymagane żadne elementy Kung Fu: P)!
  • Wynikowy wygląd jest znacznie bardziej natywny niż Netbean. Jest tak, ponieważ Eclipse RCP opiera się na SWT. (to dla mnie oszustwo - tylko dlatego, że osobiście nie lubię SWT)

Cons:

  • Przejrzystość i organizacja dokumentacji nie jest tak dobra! Cons.

Moją osobistą preferencją jest platforma Netbeans tylko dlatego, że lubię mieć pełną kontrolę nad tym, co robię z moim kodem, i ponieważ uważam, że interfejs użytkownika oparty na Swing jest o wiele bardziej stabilny niż SWT (kiedyś miałem niektóre awarie interfejsu użytkownika w moim środowisku Eclipse IDE podczas kodowania: P)!

„Czy aplikacje RCP wymagają więcej zależności niż te opracowane przy użyciu Swing lub SWT?”

Odpowiedź: Zależności powodują, że te 2 dzieci przewracają się. W przeciwnym razie nazwanie ich RCP byłoby niepotrzebne. RCP to skrót od Rich Client Platform, co oznacza, że ​​jest to ekosystem (duży zestaw interfejsów API), który pomaga w budowaniu „bogatych” aplikacji, zapewniając odpowiednie środki (poprzez interfejsy API). ;-). Tak więc odpowiedź brzmi: „TAK, WIĘCEJ ZALEŻNOŚCI”!

javase
źródło