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...
Post a Comment