Question

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?

Was it helpful?

Solution

Eclipse RCP isn't as easy as people put it is. It's essentially writing an Eclipse plug-in and you have to learn a whole new JFace/Eclipse way of doing things.

The Java Developer's Guide to Eclipse

OTHER TIPS

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.

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.

Here are the two online resources I've used to help learn different things:

http://www.vogella.de/eclipse.html
http://www.eclipse-tips.com/tutorials

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.

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.)

Please try to read the book: "EclipseRCP Rich Client Platform - Designing, Coding and Packaging Java Applications Addison Wesley"

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top