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

strategies for loose coupling in large java desktop
SMART_READER_LITE
LIVE PREVIEW

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?


slide-1
SLIDE 1

Strategies for Loose Coupling in Large Java Desktop Applications

Geertjan Wielenga

geertjan.wielenga@oracle.com blogs.oracle.com/geertjan @geertjanw

slide-2
SLIDE 2

Agenda

  • Background
  • Strategies
  • Demos & Discussion
slide-3
SLIDE 3

NetBeans: What Is It?

  • NetBeans IDE
  • NetBeans Platform
  • NetBeans Community
slide-4
SLIDE 4

December 1997

slide-5
SLIDE 5

December 2011

slide-6
SLIDE 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).

slide-7
SLIDE 7

NetBeans Platform

  • Overview

> Framework for developing large Java desktop

applications.

> Provides

> Runtime container. > APIs solving typical desktop problems.

slide-8
SLIDE 8

NetBeans Platform

slide-9
SLIDE 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.
slide-10
SLIDE 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.
slide-11
SLIDE 11

Examples

http://platform.netbeans.org/screenshots.html

  • Boeing
  • Northrop Grumman
  • South African Defence Force
  • Swedish Defence Force
  • Banks
  • Bioinformatics
  • Mining
  • ...
slide-12
SLIDE 12

Examples

slide-13
SLIDE 13

Examples

slide-14
SLIDE 14

Examples

slide-15
SLIDE 15
slide-16
SLIDE 16

Examples

slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

Examples

slide-20
SLIDE 20

http://agrosense.nl

slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23

Examples

slide-24
SLIDE 24

Examples

slide-25
SLIDE 25

Examples

slide-26
SLIDE 26

Common Basis

Runtime Container API Modules/Plugins

A p p M

  • d

u l e 1 A p p M

  • d

u l e 4 A p p M

  • d

u l e 5 A p p M

  • d

u l e 6 A p p M

  • d

u l e 2 A p p M

  • d

u l e 3

Runtime container handles lifecycle. APIs provide extension points & utilities.

slide-27
SLIDE 27

Strategies for Loose Coupling

  • Service Registry

– Decouple tools from user interface

  • Context Sensitivity

– Decouple actions from user interface

slide-28
SLIDE 28

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”

slide-29
SLIDE 29

Demo

slide-30
SLIDE 30

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.
slide-31
SLIDE 31

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
slide-32
SLIDE 32

Summary

  • NetBeans Platform:

> Framework simplifying the development of modular, scalable,

Swing applications.

> Free & open source. > Stable & very extensive. > Used internationally in many companies.

slide-33
SLIDE 33

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).

slide-34
SLIDE 34

platform.netbeans.org/tutorials

slide-35
SLIDE 35

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/

slide-36
SLIDE 36

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
slide-37
SLIDE 37

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).

slide-38
SLIDE 38

Questions & Answers