views:

953

answers:

5

I'm going to start maintaining an Eclipse RCP application for my current employer soon.
What are your experiences with this platform? What are the pros, what are the cons, what are the caveats that I should be aware of?
Also, what reading materials (books, tutorials) can you recommend? Most of the tutorials I found on the web are outdated, are there any good ones that are more up to date?
I started reading Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications but since it's also out of date, I got stuck pretty much in the beginning, and the book actually seems to be more like a collection of recipes to do something than a genuine book on the subject (it doesn't explain the core concepts very well).
So, what can you tell me about the good sides and bad sides of developing an app with Eclipse RCP, and what are your reading recommendations?

+7  A: 
eed3si9n
The java2s link is very helpful time in and time out as it helps you wrap your mind around SWT and RCP related things.Might I also suggest http://tomsondev.bestsolution.at/2009/06/06/galileo-improved-emf-databinding-support/ if you start looking at EMF
PSU_Kardi
+1  A: 

Good side: getting your head around all the API and it's requirements is really hard but certainly pays off later as you notice your code becoming better well structured and maintainable. One reason is that you are forced to adhere to all the best practices about developing rich and complex desktop applications.

Bad side: it's pretty easy to over-engineer your application, so be careful.

I believe the book you mentioned is the best one so far as most of the foundation is there. My advice after reading this book is to download (better yet, setup your CVS Repository Browser) the Eclipse and its related projects source code from CVS and use it as a guideline on how to solve specific problems. Apart from trial and error, that's the best way to figure out the "Eclipse RCP" way of implementing complex apps. One way to use and learn from this huge amount of example (and most of the time well written) source code is to think about a specific functionality on the Eclipse IDE or its subprojects that does something similar to what you want to implement and go look at its source code.

Ricardo Cabral
...and once you identify relevant functionality in the Eclipse IDE, use the Plug-In Spy (on Windows: Alt+Shift+F1, or Alt+Shift+F2 to inspect a menu item) to figure out where to look.
Woody Zenfell III
+1  A: 

Contributing to Eclipse is a good introduction to the eclipse way of development. Although it is technologically a bit out of date, it provides an overview of the development principles and the core concepts of the eclipse platform.

ftl
Indeed some of the details are far out of date, but _Contributing to Eclipse_ is not the right source if you are looking for details anyway. Instead, it offers rare, valuable insight into "why" and "how" at a big-picture level. It turned out to be the overall roadmap I was missing when I first tried starting out in this Eclipse world.
Woody Zenfell III
+1  A: 

There are many good online references included on the Eclipse Resources page, and on the Eclipse Wiki. There is also quite a bit of good material on Eclipse Live http://live.eclipse.org/ in the form of tutorials and other presentations, some of which come from the eclipsecon conferences.

I recommend starting with the most recent entries for each of these resources since RCP is much easier now than it was several years ago.

Some things to try: 1) Use the Platform Command Framework rather than the older Actions framework that was the mainstay of the RCP example programs. 2) Use the databinding farmework to simplify UI wiring. 3) If you're doing a forms-based app, check out the UI Forms API, which provides a good way to control the style of the forms (and adds niceties like collapsible sections). 4) Look at EMF for building your data model - databinding now supports EMF directly.

Steve Robenalt
A: 

The Programmer's Guide in the Eclipse Platform Plug-In Developer Guide (in Eclipse's F1 help and at http://help.eclipse.org/helios/index.jsp?nav=/2_0 for 3.6, the release current at this writing) has a lot of useful overview information about how particular subsystems work and fit together.

This source may seem obvious, but in my experience the information has been surprisingly difficult to find. (For me, Google always seems to instead turn up postings and repostings of newsgroup or forum threads or else (generally useful and well-written, but dated) Eclipse Corner articles from 2002.)

Woody Zenfell III