2007-08-23

Some Differences between IDEs and RCP Applications

One feature of the Eclipse IDE, that most developers seems to like, is the use of perspectives to organize the functionality of the IDE. Perspectives enable you to layout the exact views that is relevant for a specific function or use case. A lot of functionality of the Eclipse platform is used to manage perspectives:
  • You can open any perspective in any workbench window.
  • You can open any view in any perspective.
  • All editors can be shown in all perspectives.
  • ...just to name a few features...
Where this flexibility is good in an IDE, this is not so in many RCP applications. Here you want a lot more control of the perspectives and the parts that are shown in these perspectives.

The reason for the difference is relatively simple: whereas most developers want to be able to customize their workplace to their specific needs, many enterprises don't want the same freedom for their other office personnel.

Some examples:
  • Many RCP applications have multiple workbench windows each with a specific function. Each window might have a number of perspectives, but you don't want to be able to open all perspectives in all windows, only those that are relevant for the specific function of the window. This is not possible with the current perspective chooser - actually it is not even possible to avoid the "open perspective" button or to limit the set of perspectives that are offered in the menu.
  • The different perspectives in an RCP application often are much more specialized than in an IDE. E.g. you might have perspectives for contacts, another for mails and yet another for tasks. But there are no way to limit which editors that can be shown in different perspectives. This means the current e-mail messages are shown side-by-side with the open appointments (assuming they both are implemented as editors, which is the "natural" choice). Once an editor has been opened in one perspective, it will be present in all perspectives with an editor area. It might not be too bad for e-mails and appointments, but think of editors with CRM information for different customers and other business specific data...
  • Again because perspectives in RCP applications are more specific than in an IDE, you also want to limit which views that can be used in different perspectives. But if you want to allow the users to layout the start page (the first perspective), then you cannot limit which views that can be used...
Of cause, all of this can be solved with some custom versions of the relevant RCP actions, but should that really be necessary for all RCP development? Why not make this functionality an integral part of the RCP platform so it is done right and at the same time lower the entry for RCP application development?

Just my input for the upcoming "RCP Experience Workshop" symposium at the Eclipse Summit Europe 2007...

8 comments:

Boris Bokowski said...

I completely agree with you that RCP applications should have more control over perspective and editor management. How can we work together to improve the RCP? Have you filed a bug about this, or added a comment to bugs that are already open? Would you be able to contribute in some way to a solution?

Mark said...

Another important point is print and search support. A RCP will not always work with files but with database connection. There is no good possibility to implement such features. I always have the file search tab in my search windows. I included a print-feature for forms with jasper and later with GEF. But today I know that these are not the best solutions. What about a print support with preview using e.g. FOP and EMF?

Achim said...

We run into this kind of problems in a lot of customer projects. We finally decided to work on a solution which (hopefully) will solve this on the RCP level. A colleague will begin working on a concept in the next few days. We are actually looking for people to discuss requirements and potential solutions. I have filed an enhancement request (#201052) which may serve as a meeting point.

Tonny Madsen said...

Boris,

I haven't filed any bugs yet. First I want to see if this was of interest to other than me :-)

I have opened the following bugs now:

- 201051: Tool tip on perspective icons in the perspective chooser hard-coded
- 201053: Fixed size of perspective chooser "open perspective" button
- 201055: Limit offered perspectives in the perspective chooser
- 201057: Cannot limit shown editors in the editor area
- 201058: Cannot limit offered views in a perspective

Chris Gross said...

Theres a long standing bug for per perspective editors:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=11001

Gordon Hirsch said...

I couldn't agree more. We have run into similar enterprise-readiness issues within a single perspective. We'd like a little more control on where views can and cannot appear in a perspective. See bug 151715 I've been thinking about making a contribution re. that bug, and I'd be very interested in working with others to contribute in this general area.

Tonny Madsen said...

Chris,

I'm looking this bug to see if mine is simply a duplicate or simple extension...

Alexander Ziegler said...

I agree you. I weave some more aspects about enterprise application and UI. I think end users do their work more "business flow" oriented. It would be very helpful when the UI reflects more the current "business flow" state. I think the visual feedback and easy navigation is very important for end users. At the view of application developer could be helpful if the UI layout supports more typical issues of "business flow" oriented works. I am not quite sure that the workbench layout fulfills these aspects. Me and some other guys thinking currently about a different approach based on RCP more like a “business flow” oriented UI layout.