strategies for loose coupling in large java desktop
play

Strategies for Loose Coupling in Large Java Desktop Applications - PowerPoint PPT Presentation

Strategies for Loose Coupling in Large Java Desktop Applications Geertjan Wielenga geertjan.wielenga@oracle.com blogs.oracle.com/geertjan @geertjanw Agenda Background Strategies Demos & Discussion NetBeans: What Is It?


  1. Strategies for Loose Coupling in Large Java Desktop Applications Geertjan Wielenga geertjan.wielenga@oracle.com blogs.oracle.com/geertjan @geertjanw

  2. Agenda • Background • Strategies • Demos & Discussion

  3. NetBeans: What Is It? • NetBeans IDE • NetBeans Platform • NetBeans Community

  4. December 1997

  5. December 2011

  6. Using NetBeans In Any Way At All? • geertjan.wielenga@oracle.com > We want to hear from you. > We want to help you (for free). > We want to promote any work you do (for free).

  7. NetBeans Platform • Overview > Framework for developing large Java desktop applications. > Provides > Runtime container. > APIs solving typical desktop problems.

  8. NetBeans Platform

  9. Why Use the NetBeans Platform? • Pre-defined generic features. • Code generators for custom features. • Less boilerplate code, less cycles. • Consistency of user interface. • Modularity & loose coupling.

  10. NetBeans Platform Features • Pluggable: > menubar > toolbar > window system/docking framework > Options settings > JavaHelp > custom features • Update Mechanism • Modularity • Generators for launchers, ZIP distributions, installers, and JNLP.

  11. Examples http://platform.netbeans.org/screenshots.html • Boeing • Northrop Grumman • South African Defence Force • Swedish Defence Force • Banks • Bioinformatics • Mining • ...

  12. Examples

  13. Examples

  14. Examples

  15. Examples

  16. Examples

  17. http://agrosense.nl

  18. Examples

  19. Examples

  20. Examples

  21. Common Basis Runtime container handles lifecycle. 1 2 3 4 5 6 e e e e e e l l l l l l u u u u u u d d d d d d o o o o o o M M M M M M p p p p p p p p p p p p A A A A A A APIs provide extension API Modules/Plugins points & utilities. Runtime Container

  22. Strategies for Loose Coupling • Service Registry – Decouple tools from user interface • Context Sensitivity – Decouple actions from user interface

  23. Air Traffic Control Requirements • Create an ATC system for multiple different airports. • Must be able to view & manage runways. • Must be able to view engineers per runway. • Moscow Airport > Runways: “Pushkin”, “Tolstoy”, “Dostoyevksy” > Must be able to reallocate engineers • St. Petersburg Airport > Runway: “Nabokov”

  24. Demo

  25. Migrating to NetBeans Platform • Keep all algorithms, processors, etc. • Port everything to modules. • Wrap JPanels in TopComponents. • Wrap business objects in Nodes. • Move to BeanTreeView from Jtree, etc. • Integrate NetBeans RCP features. • Leverage/reuse as much as you can. • Focus on domain, not infrastructure. • Porting is a process.

  26. Technical Concepts • Module == a collection of Java packages that defines a feature • Lookup for Loose Coupling • Central Registry • TopComponent • Cookies/Capabilities • Node • Explorer Views • Actions: Global/Context Sensitive

  27. Summary • NetBeans Platform: > Framework simplifying the development of modular, scalable, Swing applications. > Free & open source. > Stable & very extensive. > Used internationally in many companies.

  28. Using NetBeans In Any Way At All? • geertjan.wielenga@oracle.com > We want to hear from you. > We want to help you (for free). > We want to promote any work you do (for free).

  29. platform.netbeans.org/tutorials

  30. Course • Basic Course > Cover all the basic NetBeans APIs. > A lot of hands on work & coding. > One lecture/one workshop pattern. > Very practically oriented, free book. • Porting Workshop > Brief overview of NetBeans APIs. > Step by step guided migration of your app. > Simple prototype ready for demo. • 3 or 5 days, X number of engineers • http://edu.netbeans.org/courses/ nbplatform-certified-training/

  31. Resources • http://wiki.netbeans.org/ NetBeansDeveloperFAQ • http://platform.netbeans.org/tutorials/ nbm-porting-basic.html • http://edu.netbeans.org/courses/ nbplatform-certified-training/ • dev@platform.netbeans.org • http://platform.netbeans.org

  32. Using NetBeans In Any Way At All? • geertjan.wielenga@oracle.com > We want to hear from you. > We want to help you (for free). > We want to promote any work you do (for free).

  33. Questions & Answers

Recommend


More recommend