0
Eclipse Rich Client Platform<br />The amazing simplicity of creating RCP application<br />Lars Vogel<br />http://www.vogel...
Agenda<br />What is RCP?<br />OSGi<br />Modular Architecture<br />RCP<br />e4 (lets see if we have time….)<br />… and some...
What is an Eclipse RCP application?<br />Local running application using the native widget toolkit<br />Based on the Eclip...
Eclipse (RCP) applications are written in Javain little pieces (plugins)<br />
Extensible Application - Firefox<br />Plugins<br />The Browser<br />
OSGi<br />Dynamic module system in Java<br />
Bundle<br />Smallest deployment and development component in OSGi<br />Bundle == Plugin<br />Bundle<br />Plugin<br />
Each Plugin defines its available API<br />
Each Plugin defines also its dependencies<br />
MANIFEST.MF – <br />Additional metadata for OSGi runtime<br />
Runtime (OSGi) makes sure the API contacts are fulfilled<br />
Demo<br />
OSGi – Enforced Modularity<br />Standard Java App<br />Modular Java App<br />
Anatomy of Eclipse RCP<br />
In Eclipse everything is a plugin (except the core runtime)<br />Plugin<br />Plugin<br />Plugin<br />Plugin<br />Plugin<br...
Eclipse IDE<br />Help<br />P2 Update<br />Text<br />Compare<br />Debug<br />Search<br />Team/ cvs<br />IDE personality<br ...
Component model<br />Rich user experience <br />OS independent<br />Extensible<br />Community<br />e4<br />Why Eclipse RCP...
Your plugins<br />Eclipse Plugins<br />
Eclipse RCP <br />Your Server communication<br />Your Security<br />Your UI Layer<br />Help<br />P2 Update<br />Other Stuf...
A closer look<br />
Your first RCP app in < 10 secs<br />
Defines OSGi bundle properties<br />Important configuration file- MANIFEST.MF -<br />You said that already in the OSGi cha...
Important configuration files- plugin.xml -<br />Defines extensions and extension points<br />
Extensions <br />Extension Points<br />Provide functionality to predefined slots (== extension points)<br />Define places ...
The building blocks<br />
Thin layer upon the native GUI libraries <br />JNI calls<br />Not a lot of convenient functionality<br />SWT - Standard Wi...
JFace<br />UI toolkit that provides helper classes for developing UI features<br />Makes SWT nicer but does not hide its c...
Lets create a RCP app<br />
Find in Eclipse which parts you are looking at<br />Make coding analysis and re-use extremly easy<br />Shortcut Alt+Shift+...
e4 ?<br />
Eclipse e4<br />Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK <br />
Eclipse e4 Scope<br />Make developmentfor Eclipseeasier<br />
Eclipse 3.x programming model<br />Complex<br />Lots of API<br />Platform functionality via singletons<br />Not easy to te...
Eclipse e4 – Building blocks<br />Modeled Workbench<br />Rendering Engine<br />Declarative Styling<br />Dependecy Injectio...
Summary<br />
Eclipse: Where to go from here:<br />Eclipse Wiki<br />http://wiki.eclipse.org/<br />Eclipse RCP Tutorial<br />http://www....
Photo credits<br />Clothes http://www.sxc.hu/photo/418618<br />Agenda http://www.sxc.hu/photo/1089869<br />Dotted guy http...
Why RCP http://www.sxc.hu/photo/660438
Woman with phone http://www.sxc.hu/photo/485640
Funny guy http://www.sxc.hu/photo/1173019
Upcoming SlideShare
Loading in...5
×

Eclipse RCP Overview @ Rheinjug

2,622

Published on

Eclipse RCP Overview

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,622
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
86
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Eclipse RCP Overview @ Rheinjug"

  1. 1. Eclipse Rich Client Platform<br />The amazing simplicity of creating RCP application<br />Lars Vogel<br />http://www.vogella.de<br />
  2. 2. Agenda<br />What is RCP?<br />OSGi<br />Modular Architecture<br />RCP<br />e4 (lets see if we have time….)<br />… and some life hacking<br />
  3. 3. What is an Eclipse RCP application?<br />Local running application using the native widget toolkit<br />Based on the Eclipse runtime and technology<br />
  4. 4. Eclipse (RCP) applications are written in Javain little pieces (plugins)<br />
  5. 5. Extensible Application - Firefox<br />Plugins<br />The Browser<br />
  6. 6. OSGi<br />Dynamic module system in Java<br />
  7. 7. Bundle<br />Smallest deployment and development component in OSGi<br />Bundle == Plugin<br />Bundle<br />Plugin<br />
  8. 8. Each Plugin defines its available API<br />
  9. 9. Each Plugin defines also its dependencies<br />
  10. 10. MANIFEST.MF – <br />Additional metadata for OSGi runtime<br />
  11. 11. Runtime (OSGi) makes sure the API contacts are fulfilled<br />
  12. 12. Demo<br />
  13. 13. OSGi – Enforced Modularity<br />Standard Java App<br />Modular Java App<br />
  14. 14. Anatomy of Eclipse RCP<br />
  15. 15. In Eclipse everything is a plugin (except the core runtime)<br />Plugin<br />Plugin<br />Plugin<br />Plugin<br />Plugin<br />Runtime <br />
  16. 16. Eclipse IDE<br />Help<br />P2 Update<br />Text<br />Compare<br />Debug<br />Search<br />Team/ cvs<br />IDE personality<br />Workbench<br />Resources<br />JFace<br />Runtime / Equinox (OSGi)<br />SWT<br />
  17. 17. Component model<br />Rich user experience <br />OS independent<br />Extensible<br />Community<br />e4<br />Why Eclipse RCP?<br />
  18. 18. Your plugins<br />Eclipse Plugins<br />
  19. 19. Eclipse RCP <br />Your Server communication<br />Your Security<br />Your UI Layer<br />Help<br />P2 Update<br />Other Stuff<br />Workbench<br />Your data model<br />JFace<br />Runtime / Equinox (OSGi)<br />SWT<br />
  20. 20. A closer look<br />
  21. 21. Your first RCP app in < 10 secs<br />
  22. 22. Defines OSGi bundle properties<br />Important configuration file- MANIFEST.MF -<br />You said that already in the OSGi chapter ….<br />
  23. 23. Important configuration files- plugin.xml -<br />Defines extensions and extension points<br />
  24. 24. Extensions <br />Extension Points<br />Provide functionality to predefined slots (== extension points)<br />Define places where others (== extensions) can provide functionality<br />
  25. 25. The building blocks<br />
  26. 26. Thin layer upon the native GUI libraries <br />JNI calls<br />Not a lot of convenient functionality<br />SWT - Standard Widget Toolkit<br />
  27. 27. JFace<br />UI toolkit that provides helper classes for developing UI features<br />Makes SWT nicer but does not hide its complexity<br />Tables / TreeViewer / Dialogs / <br />Databinding<br />Workbench <br />multi-window environment <br />manages views, editors, perspectives  <br />JFace & Workbench<br />
  28. 28. Lets create a RCP app<br />
  29. 29. Find in Eclipse which parts you are looking at<br />Make coding analysis and re-use extremly easy<br />Shortcut Alt+Shift+F1 <br />Add org.eclipse.pde.runtime and org.eclipse.ui.forms as dependency to have Plug-in Spy in your own RCP application<br />29<br />Excursus: Plug-in Spy<br />How did he do it?<br />Plugin Spy = Shortcut Alt+Shift+F1 <br />Lars Vogel 4/22/2009<br />
  30. 30. e4 ?<br />
  31. 31. Eclipse e4<br />Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK <br />
  32. 32. Eclipse e4 Scope<br />Make developmentfor Eclipseeasier<br />
  33. 33. Eclipse 3.x programming model<br />Complex<br />Lots of API<br />Platform functionality via singletons<br />Not easy to test<br />Not a consistent way to define the UI<br />
  34. 34. Eclipse e4 – Building blocks<br />Modeled Workbench<br />Rendering Engine<br />Declarative Styling<br />Dependecy Injection<br />Context<br />Core Services<br />
  35. 35. Summary<br />
  36. 36. Eclipse: Where to go from here:<br />Eclipse Wiki<br />http://wiki.eclipse.org/<br />Eclipse RCP Tutorial<br />http://www.vogella.de/articles/RichClientPlatform/article.html<br />Eclipse Plugin Development <br /> http://www.vogella.de/articles/EclipsePlugIn/article.html<br />Eclipse e4 Tutorial<br />http://www.vogella.de/articles/EclipseE4/article.html<br />
  37. 37. Photo credits<br />Clothes http://www.sxc.hu/photo/418618<br />Agenda http://www.sxc.hu/photo/1089869<br />Dotted guy http://www.sxc.hu/photo/1103660 <br />RCP Definition http://www.sxc.hu/photo/930468<br />OSGI Defintion http://www.sxc.hu/photo/975495<br />Building block http://www.sxc.hu/photo/596908<br />Where to go http://www.sxc.hu/photo/448543<br />Hurt fingers http://www.sxc.hu/photo/906072<br />Police http://www.sxc.hu/photo/860421<br />API http://www.sxc.hu/photo/603920<br />Pluginvrs. bundles http://www.sxc.hu/photo/1010558<br />Manifst.mf http://www.sxc.hu/photo/764999<br />Structured vrs. chaos<br /><ul><li>http://www.sxc.hu/photo/941292
  38. 38. Why RCP http://www.sxc.hu/photo/660438
  39. 39. Woman with phone http://www.sxc.hu/photo/485640
  40. 40. Funny guy http://www.sxc.hu/photo/1173019
  41. 41. Dependencies http://www.sxc.hu/photo/182575
  42. 42. Extension http://www.sxc.hu/photo/721092
  43. 43. Dog http://www.sxc.hu/photo/302062
  44. 44. Plugin spy http://www.sxc.hu/photo/130484
  45. 45. Lego http://www.sxc.hu/photo/338038
  46. 46. e4 target http://www.sxc.hu/photo/839037
  47. 47. Summary http://www.sxc.hu/photo/1184807
  48. 48. Question http://www.sxc.hu/photo/418215
  49. 49. Reading material http://www.sxc.hu/photo/406547
  50. 50. Thank you http://www.sxc.hu/photo/986313</li></li></ul><li>
  51. 51. Thank you<br />For further questions:<br />Lars.Vogel@gmail.com<br />http://www.vogella.de<br />http://www.twitter.com/vogella<br />
  52. 52. License & Acknowledgements<br />This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License<br />See http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×