Difference between revisions of "Rich Client Platform"

From Eclipsepedia

Jump to: navigation, search
m
(Case Studies)
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{RCP}}
+
{{Platform_UI}}
 
While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the <strong>Rich Client Platform</strong>.
 
While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the <strong>Rich Client Platform</strong>.
  
Line 11: Line 11:
  
 
== Case Studies ==
 
== Case Studies ==
The Eclipse community has put together a set of highlighting the use of RCP technology in a variety of real-world settings.  More are being added all the time so visit page from time to time to see what's new.  
+
The Eclipse community has put together a set of [http://www.eclipse.org/community/rcp.php case studies] highlighting the use of RCP technology in a variety of real-world settings.  More are being added all the time so visit page from time to time to see what's new. [http://joandavidson.wordpress.com/ DePuy Pinnacle Lawsuit]
  
 
== FAQs ==
 
== FAQs ==
 
* The [[Rich Client Platform/FAQ|RCP FAQ]]
 
* The [[Rich Client Platform/FAQ|RCP FAQ]]
 
+
* The [http://www.eclipse.org/swt/faq.php SWT FAQ]
  
 
== Books on RCP, with chapters on RCP, or otherwise relevant to RCP development ==
 
== Books on RCP, with chapters on RCP, or otherwise relevant to RCP development ==
 
* [[RCP Book|"Eclipse Rich Client Platform - Designing, Coding and Packaging Java Applications"]] by Jeff McAffer and Jean-Michel Lemieux.
 
* [[RCP Book|"Eclipse Rich Client Platform - Designing, Coding and Packaging Java Applications"]] by Jeff McAffer and Jean-Michel Lemieux.
 +
* [http://www.ralfebert.de/eclipse_rcp/ German Eclipse RCP eBook], by Ralf Ebert
 
* [[Java Developer's Guide to Eclipse|"The Java Developer's Guide to Eclipse (2nd ed.)"]] by Jim d'Anjou, Scott Fairbrother et al.  See Chapter 10 - Creating Applications Using the Rich Client Platform.
 
* [[Java Developer's Guide to Eclipse|"The Java Developer's Guide to Eclipse (2nd ed.)"]] by Jim d'Anjou, Scott Fairbrother et al.  See Chapter 10 - Creating Applications Using the Rich Client Platform.
 
* [[Official Eclipse FAQs|"Official Eclipse FAQs"]] by Chris Laffra and John Arthorne.  See Chapter 13 - Building Your Own Application.
 
* [[Official Eclipse FAQs|"Official Eclipse FAQs"]] by Chris Laffra and John Arthorne.  See Chapter 13 - Building Your Own Application.
 
* [[Rich-Client-Entwicklung_mit_Eclipse_3.2|"Rich Client Entwicklung Mit Eclipse 3.2"]] by Berthold Daum.  A German Book on the Rich Client Platform.
 
* [[Rich-Client-Entwicklung_mit_Eclipse_3.2|"Rich Client Entwicklung Mit Eclipse 3.2"]] by Berthold Daum.  A German Book on the Rich Client Platform.
 +
* [http://www.instantiations.com/company/book.html "Eclipse: Building Commercial-Quality Plug-Ins"] by Eric Clayberg and Dan Rubel.
  
 +
== Tutorials ==
  
 +
* [http://www.programcreek.com/develop-plug-ins-using-rcp/ Eclipse RCP Tutorials], Eclipse RCP Tutorials from Program Creek
 +
* [http://www.vogella.de/articles/RichClientPlatform/article.html Eclipse 3.x RCP Tutorial], Tutorial by Lars Vogel
 +
* [http://www.vogella.de/articles/EclipseE4/article.html Eclipse RCP based on Eclipse 4.x (Eclipse e4) - Tutorial], Tutorial by Lars Vogel
 +
* [http://developer.eclipsesource.com/tutorials/#eclipse4 Eclipse 4 (e4) RCP Tutorials], Tutorials by Jonas Helming
  
 
* [[Eclipse RCP How-to]]
 
* [[Eclipse RCP How-to]]
Line 30: Line 37:
  
 
== Related Articles and Wiki pages ==
 
== Related Articles and Wiki pages ==
 +
* [http://www-128.ibm.com/developerworks/opensource/library/os-ecl-read/ Recommended Eclipse reading list], by Chris Aniszczyk.
 
* [http://eclipse.org/articles/Article-Branding/branding-your-application.html Branding Your Application], by Pascal Rapicault and Andrew Eidsness.
 
* [http://eclipse.org/articles/Article-Branding/branding-your-application.html Branding Your Application], by Pascal Rapicault and Andrew Eidsness.
 
* [[RCP Custom Look and Feel]]
 
* [[RCP Custom Look and Feel]]
 
* [[Information for Reusing Eclipse Components within your RCP application]]
 
* [[Information for Reusing Eclipse Components within your RCP application]]
 +
* [http://www.eclipse.org/articles/Article-Forms/article.html Eclipse Forms: Rich UI for the Rich Client], by Dejan Glozic.
  
 +
== Presentations ==
 +
* EclipseCon 2009 -[http://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdf Advanced RCP (6.1 MB PDF)] by Kai Tödter
 +
* EclipseCon 2008 - [http://toedter.com/download/eclipsecon/Advanced_RCP-EclipseCon_2008.pdf Advanced RCP] (2.75 MB PDF) by Kai Tödter
 +
* EclipseCon 2007 - A lot of great high-level presentations as well as certain development aspects ([http://www.eclipsecon.org/2007/index.php?page=sub/&area=rich-client RCP Track])
 +
* EclipseCon 2006 - Rich Client Platform Tutorial by Jeff McAffer and Jean-Michel Lemieux ([http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf PDF])
 +
* Screencast: [http://www.eclipsezone.com/eps/10minute-rcp/ Why You Should Be Using Eclipse RCP]
 +
* Smart Client development with the Eclipse Rich Client Platform ([http://eclipse.org/rcp/jaoo2005/slides/Smart%20Client%20Development%20with%20RCP.pdf PDF]) ([http://eclipse.org/rcp/jaoo2005/slides/Smart%20Client%20Development%20with%20RCP.ppt PPT]) by Nick Edgar and Pascal Rapicault, presented at [http://jaoo.org JAOO] 2005.<p>The source for the accompanying "Go Wild Travel - Adventure Builder RCP Client" example is being cleaned up, and will be posted shortly.</p>
 +
* Developing for the Rich Client Platform ([http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial26.pdf PDF]) by Nick Edgar and Pascal Rapicault, from their tutorial presented at [http://www.eclipsecon.org EclipseCon], February 28, 2005.
 +
:The Hyperbola example source is available from CVS.  The steps from within Eclipse are:
 +
## Window > Open Perspective > Other? > CVS Repository Exploring
 +
## In CVS Repositories view context menu: New > Repository Location
 +
## Enter host: dev.eclipse.org  repo path: /cvsroot/eclipse  user: anonymous  password: &lt;none&gt;  connection type: pserver
 +
## In CVS Repositories view, expand: HEAD/platform-ui-home/eclipsecon/tutorial/example1
 +
## Select org.eclipsercp.hyperbola.mockup and choose Check Out
 +
## Likewise, for example 2, check out both projects under example2.
 +
:The solutions to the exercises are in the Solutions branch of the Hyperbola projects.  After loading from HEAD, use Compare With (or Replace With) > Another Branch or Version, press Refresh Tags, select Branches / Solutions.
 +
* Eclipse Rich Client Applications - Overview of the Generic Workbench ([http://www.eclipsecon.org/2004/EclipseCon_2004_TechnicalTrackPresentations/11_Edgar.pdf PDF]) ([http://eclipse.org/rcp/EclipseCon2004/RCP%20UI.ppt PPT]) by Nick Edgar, presented at [http://www.eclipsecon.org EclipseCon], February 2004.
 +
* Eclipse RCP Runtime ([http://www.eclipsecon.org/2004/EclipseCon_2004_TechnicalTrackPresentations/14_McAffer.pdf PDF]) by Jeff McAffer, presented at [http://www.eclipsecon.org EclipseCon] February 2004.
 +
* Eclipse Rich Client Platform ([http://www.rtpwug.org/download/2004.08/RCPPresentation_20040831.zip Zip]) by Ed Burnette, presented at the RTP Websphere Users Group, August 2004.
 +
* The Eclipse Rich Client Platform ([http://eclipse.org/rcp/slides/RCP.ppt PPT]) by various members of the Eclipse JDT and Platform teams, last updated November 5, 2004.
 +
* The Eclipse Rich Client Platform ([http://www.eclipsefaq.org/chris/LaffraEclipseRCP_files/v3_document.htm HTML]) by [http://www.eclipsefaq.org/chris/ Chris Laffra], presented at the Colorado Software Summit, October 2004.
 +
 +
== Help Topics ==
 +
The following are relevant help topics from the Platform Plug-in Developer Guide (from within the Eclipse IDE: Help > Help Contents > Platform Plug-in Developer Guide).  The links below are to the online [http://help.eclipse.org/help31 Eclipse 3.1 help].
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/rcp.htm Building a Rich Client Platform application]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/product_def.htm Defining a Product]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/workbench.htm Plugging into the workbench]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/runtime.htm Runtime overview]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/swt.htm SWT - Standard Widget Toolkit]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/jface.htm JFace UI Framework]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/dialogs.htm Dialogs and wizards]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/guide/wrkAdv.htm Advanced Workbench Concepts]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/misc/api-usage-rules.html API rules of engagement]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html Runtime options]
 +
* [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/reference/misc/overview-platform.html Map of Platform Plug-ins]
 +
* Eclipse [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html 2.1->3.0] and [http://help.eclipse.org/help33/topic/org.eclipse.platform.doc.isv/porting/eclipse_3_1_porting_guide.html 3.0->3.1] Plug-in Migration Guides
  
 
== Newsgroups ==
 
== Newsgroups ==
Line 41: Line 86:
 
Kindly avoid posting to the developer (*-dev) mailing lists as these are intended for use by the development teams and others participating in the development of Eclipse itself.
 
Kindly avoid posting to the developer (*-dev) mailing lists as these are intended for use by the development teams and others participating in the development of Eclipse itself.
  
* For questions specific to the development of RCP applications.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18121.html EclipseZone].
+
* [news://news.eclipse.org/eclipse.platform.rcp news://news.eclipse.org/eclipse.platform.rcp] - For questions specific to the development of RCP applications.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18121.html EclipseZone].
* For general Workbench and JFace questions that could apply both to RCP applications and IDE plug-ins.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18122.html EclipseZone].
+
* [news://news.eclipse.org/eclipse.platform news://news.eclipse.org/eclipse.platform] - For general Workbench and JFace questions that could apply both to RCP applications and IDE plug-ins.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18122.html EclipseZone].
* For SWT-specific questions.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18120.html EclipseZone].
+
* [news://news.eclipse.org/eclipse.platform.swt news://news.eclipse.org/eclipse.platform.swt] - For SWT-specific questions.  Also available via [http://www.eclipsezone.com/eclipse/forums/f18120.html EclipseZone].
  
 +
== Examples  ==
  
 +
The following are some examples showing how to build applications using RCP:
 +
 +
*[[RCP Browser Example]]
 +
*[[RCP Text Editor Examples]][[RCP Web UI integration Examples|<br>]]
 +
*[http://www.ralfebert.de/blog/eclipsercp/rcp_examples/ Overview over Eclipse RCP example applications]
 +
*See also [http://www.eclipse.org/swt/snippets/ SWT Snippets] and [http://wiki.eclipse.org/index.php/JFaceSnippets JFace Snippets].
 +
 +
== Applications ==
 +
Several applications have been built using the Rich Client Platform.
 +
 +
* The [http://eclipse.org/community/rcp.php RCP Applications] section of the [http://eclipse.org/community Eclipse Community page] lists several apps, including case studies of a few.
 +
* The [http://www.oneclipse.com onEclipse] site lists several RCP and standalone SWT applications, in two parts: [http://www.oneclipse.com/Members/admin/news/swt-sightings Part 1], [http://www.oneclipse.com/Members/admin/news/swt-sightings-vol-2 Part 2].
 +
* NASA/JPL is using Eclipse RCP as the foundation of their next version of Maestro, and more.  See the [http://eclipse.org/community/casestudies/NASAfinal.pdf case study], session [http://www.eclipsecon.org/2005/sessions.php 11.3 - "A Martian Eclipse"] at EclipseCon 2005, and Scott Schram's [http://weblogs.java.net/blog/scottschram/archive/2005/03/nasa_explores_e.html blog entry] on the presentation.  Jeff Norris from NASA/JPL also wrote a nice foreword to the [[RCP Book]].
 +
 +
==Blogs==
 +
* [http://planeteclipse.org/planet/ PlanetEclipse.org]
 +
* [http://www.programcreek.com Deep understanding Java to know Eclipse better]
  
 
== Other Resources ==
 
== Other Resources ==
 
The following are other resources describing the Eclipse Rich Client Platform, or related subjects:
 
The following are other resources describing the Eclipse Rich Client Platform, or related subjects:
* [http://www.mpsmsc.com/crewing-indonesia.html MSC Crewing Indonesia]
+
* [http://eclipsezone.org EclipseZone]
* [http://www.mpsmsc.com/recruitment-indonesia.html MSC Recruitment Indonesia]
+
* [http://eclipsewiki.editme.com/RichClientPlatform RCP page] on the Eclipse Community Wiki
* [http://subconscious-therapy.com/hipnoterapi-surabaya/ Hipnoterapi Surabaya]
+
* [http://www.vogella.de/eclipse.html Eclipse Tutorials] Articles around Eclipse and Eclipse RCP
* [http://www.tiraimodern.com/product/vertical-blind Vertical Blind]
+
* [http://www.programcreek.com ProgramCreek] Articles and tutorials on the Eclipse RCP Topic
* [http://www.tiraimodern.com/product/roller-blind Roller Blind]
+
  
 
==Elsewhere at eclipse.org==
 
==Elsewhere at eclipse.org==
 
Content is in the process of being migrated here from the old [http://www.eclipse.org/rcp RCP Home Page].
 
Content is in the process of being migrated here from the old [http://www.eclipse.org/rcp RCP Home Page].
 +
 +
==Original Design Documents==
 +
 +
The following are the original design documents for the RCP work done in Eclipse 3.0.  They are somewhat out of date and are provided here mainly for historical interest.
 +
The tutorials and help topics above provide better materials for getting started with RCP.
 +
* Original plan item in Bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=36967 Enable Eclipse to be used as a rich client platform]
 +
* [http://eclipse.org/rcp/generic_workbench_summary.html Executive Summary of the Eclipse Rich Client Platform UI] (includes excerpts from the documents below)
 +
* [http://eclipse.org/rcp/generic_workbench_direction.html Statement of Direction for the Eclipse Rich Client Platform UI]
 +
* [http://eclipse.org/rcp/generic_workbench_approach.html Eclipse Rich Client Platform UI Proposed Approach]
 +
* [http://eclipse.org/rcp/generic_workbench_overview.html Overview of the Generic Workbench]
 +
* [http://eclipse.org/rcp/generic_workbench_structure.html Generic Workbench Plug-in Structure]
 +
[[Category:RCP]][[Category:Platform UI]]

Revision as of 12:40, 4 April 2013

While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the Rich Client Platform.

Applications other than IDEs can be built using a subset of the platform. These rich applications are still based on a dynamic plug-in model, and the UI is built using the same toolkits and extension points. The layout and function of the workbench is under fine-grained control of the plug-in developer in this case.

When we say that the Rich Client Platform is the minimal set of plug-ins needed to build a platform application with a UI, we mean that your application need only require two plug-ins, org.eclipse.ui and org.eclipse.core.runtime, and their prerequisites.

However, rich client applications are free to use any API deemed necessary for their feature set, and can require any plug-ins above the bare minimum. Examples include the Help UI, and the Update Manager.

For more details on what is included in the Rich Client Platform, see the RCP FAQ.

Contents

Case Studies

The Eclipse community has put together a set of case studies highlighting the use of RCP technology in a variety of real-world settings. More are being added all the time so visit page from time to time to see what's new. DePuy Pinnacle Lawsuit

FAQs

Books on RCP, with chapters on RCP, or otherwise relevant to RCP development

Tutorials

Related Articles and Wiki pages

Presentations

  • EclipseCon 2009 -Advanced RCP (6.1 MB PDF) by Kai Tödter
  • EclipseCon 2008 - Advanced RCP (2.75 MB PDF) by Kai Tödter
  • EclipseCon 2007 - A lot of great high-level presentations as well as certain development aspects (RCP Track)
  • EclipseCon 2006 - Rich Client Platform Tutorial by Jeff McAffer and Jean-Michel Lemieux (PDF)
  • Screencast: Why You Should Be Using Eclipse RCP
  • Smart Client development with the Eclipse Rich Client Platform (PDF) (PPT) by Nick Edgar and Pascal Rapicault, presented at JAOO 2005.

    The source for the accompanying "Go Wild Travel - Adventure Builder RCP Client" example is being cleaned up, and will be posted shortly.

  • Developing for the Rich Client Platform (PDF) by Nick Edgar and Pascal Rapicault, from their tutorial presented at EclipseCon, February 28, 2005.
The Hyperbola example source is available from CVS. The steps from within Eclipse are:
    1. Window > Open Perspective > Other? > CVS Repository Exploring
    2. In CVS Repositories view context menu: New > Repository Location
    3. Enter host: dev.eclipse.org repo path: /cvsroot/eclipse user: anonymous password: <none> connection type: pserver
    4. In CVS Repositories view, expand: HEAD/platform-ui-home/eclipsecon/tutorial/example1
    5. Select org.eclipsercp.hyperbola.mockup and choose Check Out
    6. Likewise, for example 2, check out both projects under example2.
The solutions to the exercises are in the Solutions branch of the Hyperbola projects. After loading from HEAD, use Compare With (or Replace With) > Another Branch or Version, press Refresh Tags, select Branches / Solutions.
  • Eclipse Rich Client Applications - Overview of the Generic Workbench (PDF) (PPT) by Nick Edgar, presented at EclipseCon, February 2004.
  • Eclipse RCP Runtime (PDF) by Jeff McAffer, presented at EclipseCon February 2004.
  • Eclipse Rich Client Platform (Zip) by Ed Burnette, presented at the RTP Websphere Users Group, August 2004.
  • The Eclipse Rich Client Platform (PPT) by various members of the Eclipse JDT and Platform teams, last updated November 5, 2004.
  • The Eclipse Rich Client Platform (HTML) by Chris Laffra, presented at the Colorado Software Summit, October 2004.

Help Topics

The following are relevant help topics from the Platform Plug-in Developer Guide (from within the Eclipse IDE: Help > Help Contents > Platform Plug-in Developer Guide). The links below are to the online Eclipse 3.1 help.

Newsgroups

The following eclipse newsgroups have useful discussions, questions and answers relevant to the development of RCP applications.

If you have a question, please check the RCP FAQ before posting to the newsgroups. Kindly avoid posting to the developer (*-dev) mailing lists as these are intended for use by the development teams and others participating in the development of Eclipse itself.

Examples

The following are some examples showing how to build applications using RCP:

Applications

Several applications have been built using the Rich Client Platform.

Blogs

Other Resources

The following are other resources describing the Eclipse Rich Client Platform, or related subjects:

Elsewhere at eclipse.org

Content is in the process of being migrated here from the old RCP Home Page.

Original Design Documents

The following are the original design documents for the RCP work done in Eclipse 3.0. They are somewhat out of date and are provided here mainly for historical interest. The tutorials and help topics above provide better materials for getting started with RCP.