SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Pro JavaFX Platform
Building Enterprise Applications with
JavaFX
Stephen Chin          Jim Weaver
GXS                   JavaFXpert.com
steve@widgetfx.org    jim.weaver@javafxpert.com
tweet: @steveonjava   tweet: @javafxpert
What do you want to discuss?
Here’s our [flexible] plan:
>   Examine Rally’s Stratus application being
    developed in JavaFX 1.3.1 by the presenters
>   JavaFX 2.0 Code Examples in Java and Scala
>   Hit the high points of the newly published JavaFX
    roadmap at http://javafx.com/roadmap
>   Announce the RIA Exemplar Challenge winner
>   Questions encouraged at anytime!
Case Study: Rally’s Stratus Application
>   Being developed in JavaFX using an Agile
    process and the Rally Agile tool
>   Accesses REST-based Rally API
>   Gives users an overall view of work in process in
    various Kanban stages
The greater the success experienced in R&D, the more
disruption that it creates for the organization as a whole.

   Feature selling                                            Launch Cycle Time
   becomes                                                    > Dev Cycle Time
   impossible           Sales              Marketing
   (Sales
   Enablement)

                                                                   Melting
                                                                   Change
 …in the                                                           Managers: 50
                  Product
 weeds                                               Operations    changes once
                Management       Development
                                                                   a month to 900
 …
                                                                   changes
                                                                   constantly

   Supported
   Release                                     Professional   Innovator’s
                       Support
   proliferation                                Services
                                                              Dilemma
“Eat your spinach or the Scrum will get you.”



                                                5
However, by applying/extending those same lean/kanban
  principles more broadly in the organization, these risks can be
  avoided, and organizational value increased.



                                                                                                      Source: InfoQ




                                                                                                      Source: InfoQ


   Three Atypical, but Critical Practices in the Product
   Portfolio Kanban:

 • Stakeholder Based Investment Themes and Business Case Management
 (organizational value)
 • Upstream and Downstream WIP Limits
 • Dynamic Allocations
Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
We manage each business case through a Kanban which
  extends upstream and downstream from traditional development

                         Kanban Stages                                     Benefits
            WIP Limits


                             Proposed                                     • Alleviate the “Agile Death Ray” Effect and
                WL
                                          Biz Case                        Achieve Flow
  Capacity                   Backlogged                                   • Expose and Route Around Political
    based                                 Long Term Roadmap
       WIP      WL                                                         Roadblocks and Priority Alignment
                             Scheduled
     limits
                                          Committed Roadmap
                                                                           •Focus Organizational Value Return
                WL
                             In Process
                                          Software development
                                           method in use

                             Deployed
   Item/slot
                WL                        Release Management
      based
         WIP                 Enabled
       limits   WL                        Collateral, Training

                             Adopted
                                          Marketing
                                          Usage

                             Validated
                                          Biz Case Analysis
                                          Feature Success
                                           Measurement

                                                                   7
Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
The Three Loops of Software Governance
                                                                                                                   Operations/Support
                                                                                                                   Marketing/Sales
                                                                                                                   Dev: Technical debt
                        Validated                Adopted
                                                     Sales                 Enabled Marketing


                                    Internal Technical Debt Loop
  Proposed
  Proposed




                    Backlogged          Product
                                          Scheduled                                                                  External Technical Debt Loop
                                                                         In Process                   Operations
                                                                                                       Deployed
                                      Management                    Development




                                                                          Bottleneck

                       Validated                 Adopted                   Enabled         Professional
                                                    Support
                                                                                             Services



Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
Stratus Kanban Page
Stratus Roadmap Page
Stratus Plan Page
Stratus Analyze Page
Stratus Configuration Dialog
JavaFX CSS Styling:
Config Dialog with No Style Sheet
Stratus Communicates with Server via
HTTP/JSON


       Rally ALM
                           Rally
                          Server

        Stratus

                                       15
Some JavaFX Tech used in Stratus
>   REST Interface / Parsing
       RedFX
       Reflection/Recursion/Multitasking
>    CSS Styling
>   JFXtras
       XTableView
       XForm
       XPane
>   Local Storage
XTableView
Insanely Scalable
>
       Up to 16 million rows
Extreme Performance
>
       Pools rendered nodes
       Caches images
       Optimized scene graph
Features:
>
       Drag-and-Drop Column Reordering
       Dynamic Updating from Model
       Automatically Populates Column Headers
       Fully Styleable via CSS
JavaFX in Java
>   JavaFX API follows JavaBeans approach

>   Similar in feel to other UI toolkits (Swing, etc)

>   Researching approaches to minimize boilerplate
Example Application
public class HelloStage implements Runnable {
    public void run() {
      Stage stage = new Stage();
      stage.setTitle("Hello Stage");
      stage.setWidth(600);
      stage.setHeight(450);
        Scene scene = new Scene();
        scene.setFill(Color.LIGHTGREEN);
        stage.setScene(scene);
        stage.setVisible(true);
    }
    public static void main(String[] args) {
      FX.start(new HelloStage());
    }
}
Why Scala?
>   Shares many language features with JavaFX
    Script that make GUI programming easier:
       Static type checking – Catch your errors at compile
        time
       Closures – Wrap behavior and pass it by reference
       Declarative – Express the UI by describing what it
        should look like
>   Scala also supports DSLs!



                                                              20
Java vs. Scala DSL
public class HelloStage implements Runnable {   object HelloJavaFX extends JavaFXApplication {
                                                  def stage = new Stage {
    public void run() {                             title = "Hello Stage"
      Stage stage = new Stage();                    width = 600
      stage.setTitle("Hello Stage");                height = 450
      stage.setWidth(600);                          scene = new Scene {
      stage.setHeight(450);                           fill = Color.LIGHTGREEN
      Scene scene = new Scene();                      content = List(new Rectangle {
      scene.setFill(Color.LIGHTGREEN);                  x = 25
        22 Lines
      Rectangle rect = new Rectangle();                17 Lines
                                                        y = 40
      rect.setX(25);                                    width = 100
        545 Characters
      rect.setY(40);
      rect.setWidth(100);
                                                       324 Characters
                                                        height = 50
                                                        fill = Color.RED
      rect.setHeight(50);                             })
      rect.setFill(Color.RED);                      }
      stage.add(rect);                            }
      stage.setScene(scene);                    }
      stage.setVisible(true);
    }

    public static void main(String[] args) {
      FX.start(new HelloStage());
    }
}




                                                                                                 21
object HelloJavaFX extends JavaFXApplication {
  def stage = new Stage {
    title = "Hello Stage"
    width = 600
    height = 450
    scene = new Scene {
      fill = Color.LIGHTGREEN
      content = List(new Rectangle {
        x = 25
        y = 40
        width = 100
        height = 50
        fill = Color.RED
      })
    }
  }
}
                                             22
object HelloJavaFX extends JavaFXApplication {
  def stage = new Stage {
    title = "Hello Stage"
    width = 600
    height = 450 for JavaFX
         Base class
    scene = new Scene {
             applications
      fill = Color.LIGHTGREEN
      content = List(new Rectangle {
        x = 25
        y = 40
        width = 100
        height = 50
        fill = Color.RED
      })
    }
  }
}
                                             23
object HelloJavaFX extends JavaFXApplication {
  def stage = new Stage {
    title = "Hello Stage"
    width = 600
    height = 450
    scene = new Scene {         Declarative Stage
      fill = Color.LIGHTGREEN       definition
      content = List(new Rectangle {
        x = 25
        y = 40
        width = 100
        height = 50
        fill = Color.RED
      })
    }
  }
}
                                                24
object HelloJavaFX extends JavaFXApplication {
  def stage = new Stage {
    title = "Hello Stage"
    width = 600                Inline property
    height = 450                 definitions
    scene = new Scene {
      fill = Color.LIGHTGREEN
      content = List(new Rectangle {
        x = 25
        y = 40
        width = 100
        height = 50
        fill = Color.RED
      })
    }
  }
}
                                             25
object HelloJavaFX extends JavaFXApplication {
  def stage = new Stage {
    title = "Hello Stage"
    width = 600
    height = 450
    scene = new Scene {
      fill = Color.LIGHTGREEN
      content = List(new Rectangle {
        x = 25
        y = 40
        width = 100
        height = 50           List Construction
        fill = Color.RED            Syntax
      })
    }
  }
}
                                              26
JavaFX 2.0 Highlights:
Java and Alternative JVM Languages
>   JavaFX has a new API face
>   All the JavaFX 2.0 APIs will be exposed via Java
    classes that will make it much easier to integrate
    Java server and client code.
>   This also opens up some huge possibilities for
    JVM language integration (e.g. with Ruby, Clojure,
    Groovy, and Scala)
JavaFX 2.0 Highlights:
Open Source Controls
>   JavaFX controls will be open sourced moving
    forward.
>   This is a huge move in the right direction for the
    platform, and will make life for us third-party
    control developers much better.
JavaFX 2.0 Highlights:
Multithreading Improvements
>   The move to Java APIs breaks down some of the
    barriers to multi-threaded programming that were
    present with JavaFX.
>   Presumably a similar model to Swing will exist
    where you can launch worker threads, but still
    have to do all UI operations on a main event
    thread.
JavaFX 2.0 Highlights:
Texture Paint
>   Interesting to see this highlighted, but its use in
    JavaFX was pioneered by Jeff Friesen and
    included in JFXtras 0.7
JavaFX 2.0 Highlights:
Grid Layout Container + CSS
>   Very good to see that the Grid Layout from
    JFXtras is continuing to be adopted and evolved.
>   The addition of making it accessible from CSS will
    make it an extremely powerful layout container
    suitable for multiple uses.
JavaFX 2.0 Highlights:
HD Media
>   Media seems to be getting a big upgrade, which
    has been long overdue.
>   This is in addition to other promised
    improvements in full screen capabilities, media
    markers, animation synchronization, and low
    latency audio.
JavaFX 2.0 Highlights:
HTML5 WebView
>   It is good to see that this is finally getting the
    attention it deserves.
>   JavaFX is great for dynamic application
    development, but is not well suited for content
    presentation.
>   The combination of JavaFX + HTML5 will greatly
    expand the range of applications that can be
    developed.
JavaFX 2.0 Highlights:
Controls Galore!
>   TableView, SplitView, TabView, and Rich Text to
    name a few.
>   This is a necessity to build robust enterprise
    applications.
JavaFX 2.0 Highlights:
File (and other) Dialogs
>   This may seem like a minor point, but is incredibly
    important for building real applications.
JavaFX 2.0 Highlights:
HTML5 Support
>   Not to be confused with the WebView, there is
    also a plan for the successor to JavaFX 2.0 (2012
    timeframe) to support an alternate HTML5
    rendering pipeline.
>   Not many details are available about this yet, but
    it could be a huge technological breakthrough if
    pulled off successfully.
>   The practical applications of being able to deploy
    your JavaFX application to any HTML5 compliant
    device is enormous.
And the winner [of the JavaFXpert RIA
Exemplar Challenge] is... Abhi Soni!
Stephen Chin          Jim Weaver
steve@widgetfx.org    jim.weaver@javafxpert.com
tweet: @steveonjava   tweet: @javafxpert




                                             38

Contenu connexe

Tendances

How PM Helped Build a Billion Dollar Business
How PM Helped Build a Billion Dollar BusinessHow PM Helped Build a Billion Dollar Business
How PM Helped Build a Billion Dollar BusinessSVPMA
 
Overzicht van de GlassFish technologie, Eugene Bogaart
Overzicht van de GlassFish technologie, Eugene BogaartOverzicht van de GlassFish technologie, Eugene Bogaart
Overzicht van de GlassFish technologie, Eugene BogaartJaco Haans
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge OverviewLotharSchubert
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOSTim Ellison
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsStrongback Consulting
 
Migrating Legacy Code
Migrating Legacy CodeMigrating Legacy Code
Migrating Legacy CodeSiddhi
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide showsfelsenthal
 
VMware - Snapshot sessions - Get a better insight in your infrastructure vCo...
VMware  - Snapshot sessions - Get a better insight in your infrastructure vCo...VMware  - Snapshot sessions - Get a better insight in your infrastructure vCo...
VMware - Snapshot sessions - Get a better insight in your infrastructure vCo...AnnSteyaert_vmware
 
Automated Testing for CA Plex and 2E
Automated Testing for CA Plex and 2EAutomated Testing for CA Plex and 2E
Automated Testing for CA Plex and 2ECM First Group
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornmentSpiffy
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentSpiffy
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructurezslmarketing
 
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...elliando dias
 
WAS85 whats new_functionality_performance
WAS85 whats new_functionality_performanceWAS85 whats new_functionality_performance
WAS85 whats new_functionality_performanceOtto Kee LeakPeng
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-finalRohit Kelapure
 
Soccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesSoccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesLetsConnect
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Anton Arhipov
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerRohit Kelapure
 
Whats new in was liberty security and cloud readiness
Whats new in was liberty   security and cloud readinessWhats new in was liberty   security and cloud readiness
Whats new in was liberty security and cloud readinesssflynn073
 

Tendances (20)

How PM Helped Build a Billion Dollar Business
How PM Helped Build a Billion Dollar BusinessHow PM Helped Build a Billion Dollar Business
How PM Helped Build a Billion Dollar Business
 
Overzicht van de GlassFish technologie, Eugene Bogaart
Overzicht van de GlassFish technologie, Eugene BogaartOverzicht van de GlassFish technologie, Eugene Bogaart
Overzicht van de GlassFish technologie, Eugene Bogaart
 
Subversion Edge Overview
Subversion Edge OverviewSubversion Edge Overview
Subversion Edge Overview
 
Java on zSystems zOS
Java on zSystems zOSJava on zSystems zOS
Java on zSystems zOS
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
 
Migrating Legacy Code
Migrating Legacy CodeMigrating Legacy Code
Migrating Legacy Code
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide show
 
VMware - Snapshot sessions - Get a better insight in your infrastructure vCo...
VMware  - Snapshot sessions - Get a better insight in your infrastructure vCo...VMware  - Snapshot sessions - Get a better insight in your infrastructure vCo...
VMware - Snapshot sessions - Get a better insight in your infrastructure vCo...
 
Automated Testing for CA Plex and 2E
Automated Testing for CA Plex and 2EAutomated Testing for CA Plex and 2E
Automated Testing for CA Plex and 2E
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: Development
 
Java CAPS
Java CAPSJava CAPS
Java CAPS
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructure
 
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme ...
 
WAS85 whats new_functionality_performance
WAS85 whats new_functionality_performanceWAS85 whats new_functionality_performance
WAS85 whats new_functionality_performance
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
 
Soccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesSoccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPages
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal Server
 
Whats new in was liberty security and cloud readiness
Whats new in was liberty   security and cloud readinessWhats new in was liberty   security and cloud readiness
Whats new in was liberty security and cloud readiness
 

En vedette

Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFXEugene Bogaart
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014manolitto
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno Borges
 
JavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッションJavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッションTakashi Aoe
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & javaEugene Bogaart
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)Stephen Chin
 
RetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming ConsoleRetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming ConsoleStephen Chin
 
Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)Stephen Chin
 

En vedette (10)

Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFX
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
JavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッションJavaOneで聴いてきたディープなJavaFXセッション
JavaOneで聴いてきたディープなJavaFXセッション
 
What is new and cool j2se & java
What is new and cool j2se & javaWhat is new and cool j2se & java
What is new and cool j2se & java
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)
 
RetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming ConsoleRetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming Console
 
Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)Confessions of a Former Agile Methodologist (JFrog Edition)
Confessions of a Former Agile Methodologist (JFrog Edition)
 

Similaire à Pro JavaFX Platform - Building Enterprise Applications with JavaFX

Full Cycle Traceability via a Product Portfolio Kanban
Full Cycle Traceability via a Product Portfolio KanbanFull Cycle Traceability via a Product Portfolio Kanban
Full Cycle Traceability via a Product Portfolio KanbanStephen Chin
 
Skyward Erp Presentation
Skyward Erp PresentationSkyward Erp Presentation
Skyward Erp Presentationvishalnvora1
 
Maximizing the Revenue from Your Digital Goods Principles of High Performance...
Maximizing the Revenue from Your Digital Goods Principles of High Performance...Maximizing the Revenue from Your Digital Goods Principles of High Performance...
Maximizing the Revenue from Your Digital Goods Principles of High Performance...Flexera
 
Fusion app func_con8722_pdf_8722_0001
Fusion app func_con8722_pdf_8722_0001Fusion app func_con8722_pdf_8722_0001
Fusion app func_con8722_pdf_8722_0001jucaab
 
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie Thomas
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie ThomasIBM Rational Software Conference 2009 Day 1 Keynote: Jamie Thomas
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie ThomasKathy (Kat) Mandelstein
 
What next in the agile world - Alan Shalloway
What next in the agile world - Alan ShallowayWhat next in the agile world - Alan Shalloway
What next in the agile world - Alan ShallowayAGILEMinds
 
Process performance models case study
Process performance models case studyProcess performance models case study
Process performance models case studyKobi Vider
 
NG BB 54 Sustain the Gain
NG BB 54 Sustain the GainNG BB 54 Sustain the Gain
NG BB 54 Sustain the GainLeanleaders.org
 
Integrating agile in a waterfall world pmi 2012, full slides
Integrating agile in a waterfall world pmi 2012, full slidesIntegrating agile in a waterfall world pmi 2012, full slides
Integrating agile in a waterfall world pmi 2012, full slidesatlgopi
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyRoopa Nadkarni
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyIBM
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyIBM
 
Pulse Design & Delivery Panel
Pulse Design & Delivery PanelPulse Design & Delivery Panel
Pulse Design & Delivery PanelMauricio Godoy
 
M&A Integration Software Licensing David Welch
M&A Integration Software Licensing David WelchM&A Integration Software Licensing David Welch
M&A Integration Software Licensing David WelchFlexera
 
SwissQ Agile Trends & Benchmarks 2012 (Englisch)
SwissQ Agile Trends & Benchmarks 2012 (Englisch)SwissQ Agile Trends & Benchmarks 2012 (Englisch)
SwissQ Agile Trends & Benchmarks 2012 (Englisch)SwissQ Consulting AG
 
Oracle soa and e2.0 partner community forum bpm léon smiers share
Oracle soa and e2.0 partner community forum bpm léon smiers shareOracle soa and e2.0 partner community forum bpm léon smiers share
Oracle soa and e2.0 partner community forum bpm léon smiers shareLeon Smiers
 

Similaire à Pro JavaFX Platform - Building Enterprise Applications with JavaFX (20)

Full Cycle Traceability via a Product Portfolio Kanban
Full Cycle Traceability via a Product Portfolio KanbanFull Cycle Traceability via a Product Portfolio Kanban
Full Cycle Traceability via a Product Portfolio Kanban
 
Skyward Erp Presentation
Skyward Erp PresentationSkyward Erp Presentation
Skyward Erp Presentation
 
Maximizing the Revenue from Your Digital Goods Principles of High Performance...
Maximizing the Revenue from Your Digital Goods Principles of High Performance...Maximizing the Revenue from Your Digital Goods Principles of High Performance...
Maximizing the Revenue from Your Digital Goods Principles of High Performance...
 
Fusion app func_con8722_pdf_8722_0001
Fusion app func_con8722_pdf_8722_0001Fusion app func_con8722_pdf_8722_0001
Fusion app func_con8722_pdf_8722_0001
 
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie Thomas
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie ThomasIBM Rational Software Conference 2009 Day 1 Keynote: Jamie Thomas
IBM Rational Software Conference 2009 Day 1 Keynote: Jamie Thomas
 
Uneecops Company Profile
Uneecops Company ProfileUneecops Company Profile
Uneecops Company Profile
 
What next in the agile world - Alan Shalloway
What next in the agile world - Alan ShallowayWhat next in the agile world - Alan Shalloway
What next in the agile world - Alan Shalloway
 
Process performance models case study
Process performance models case studyProcess performance models case study
Process performance models case study
 
NG BB 54 Sustain the Gain
NG BB 54 Sustain the GainNG BB 54 Sustain the Gain
NG BB 54 Sustain the Gain
 
Integrating agile in a waterfall world pmi 2012, full slides
Integrating agile in a waterfall world pmi 2012, full slidesIntegrating agile in a waterfall world pmi 2012, full slides
Integrating agile in a waterfall world pmi 2012, full slides
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden Lindsey
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
Pulse Design & Delivery Panel
Pulse Design & Delivery PanelPulse Design & Delivery Panel
Pulse Design & Delivery Panel
 
David Pinches - Product Management - where do you start?
David Pinches - Product Management - where do you start?David Pinches - Product Management - where do you start?
David Pinches - Product Management - where do you start?
 
Case study - Information Technology Consulting
Case study - Information Technology ConsultingCase study - Information Technology Consulting
Case study - Information Technology Consulting
 
M&A Integration Software Licensing David Welch
M&A Integration Software Licensing David WelchM&A Integration Software Licensing David Welch
M&A Integration Software Licensing David Welch
 
Kanban Case Study
Kanban Case StudyKanban Case Study
Kanban Case Study
 
SwissQ Agile Trends & Benchmarks 2012 (Englisch)
SwissQ Agile Trends & Benchmarks 2012 (Englisch)SwissQ Agile Trends & Benchmarks 2012 (Englisch)
SwissQ Agile Trends & Benchmarks 2012 (Englisch)
 
Oracle soa and e2.0 partner community forum bpm léon smiers share
Oracle soa and e2.0 partner community forum bpm léon smiers shareOracle soa and e2.0 partner community forum bpm léon smiers share
Oracle soa and e2.0 partner community forum bpm léon smiers share
 

Plus de Stephen Chin

DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2Stephen Chin
 
10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java Community10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java CommunityStephen Chin
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideJava Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideStephen Chin
 
DevOps Tools for Java Developers
DevOps Tools for Java DevelopersDevOps Tools for Java Developers
DevOps Tools for Java DevelopersStephen Chin
 
Java Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJCJava Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJCStephen Chin
 
Devoxx4Kids Lego Workshop
Devoxx4Kids Lego WorkshopDevoxx4Kids Lego Workshop
Devoxx4Kids Lego WorkshopStephen Chin
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)Stephen Chin
 
Confessions of a Former Agile Methodologist
Confessions of a Former Agile MethodologistConfessions of a Former Agile Methodologist
Confessions of a Former Agile MethodologistStephen Chin
 
Internet of Things Magic Show
Internet of Things Magic ShowInternet of Things Magic Show
Internet of Things Magic ShowStephen Chin
 
Zombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the UndeadZombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the UndeadStephen Chin
 
JCrete Embedded Java Workshop
JCrete Embedded Java WorkshopJCrete Embedded Java Workshop
JCrete Embedded Java WorkshopStephen Chin
 
Oracle IoT Kids Workshop
Oracle IoT Kids WorkshopOracle IoT Kids Workshop
Oracle IoT Kids WorkshopStephen Chin
 
OpenJFX on Android and Devices
OpenJFX on Android and DevicesOpenJFX on Android and Devices
OpenJFX on Android and DevicesStephen Chin
 
Java on Raspberry Pi Lab
Java on Raspberry Pi LabJava on Raspberry Pi Lab
Java on Raspberry Pi LabStephen Chin
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosJava 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosStephen Chin
 
Devoxx4Kids NAO Workshop
Devoxx4Kids NAO WorkshopDevoxx4Kids NAO Workshop
Devoxx4Kids NAO WorkshopStephen Chin
 
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)Stephen Chin
 
Raspberry Pi Gaming 4 Kids - Dutch Version
Raspberry Pi Gaming 4 Kids - Dutch VersionRaspberry Pi Gaming 4 Kids - Dutch Version
Raspberry Pi Gaming 4 Kids - Dutch VersionStephen Chin
 
Raspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsRaspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsStephen Chin
 

Plus de Stephen Chin (20)

DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2DevOps Tools for Java Developers v2
DevOps Tools for Java Developers v2
 
10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java Community10 Ways Everyone Can Support the Java Community
10 Ways Everyone Can Support the Java Community
 
Java Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive GuideJava Clients and JavaFX: The Definitive Guide
Java Clients and JavaFX: The Definitive Guide
 
DevOps Tools for Java Developers
DevOps Tools for Java DevelopersDevOps Tools for Java Developers
DevOps Tools for Java Developers
 
Java Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJCJava Clients and JavaFX - Presented to LJC
Java Clients and JavaFX - Presented to LJC
 
Devoxx4Kids Lego Workshop
Devoxx4Kids Lego WorkshopDevoxx4Kids Lego Workshop
Devoxx4Kids Lego Workshop
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)
 
Confessions of a Former Agile Methodologist
Confessions of a Former Agile MethodologistConfessions of a Former Agile Methodologist
Confessions of a Former Agile Methodologist
 
Internet of Things Magic Show
Internet of Things Magic ShowInternet of Things Magic Show
Internet of Things Magic Show
 
Zombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the UndeadZombie Time - JSR 310 for the Undead
Zombie Time - JSR 310 for the Undead
 
JCrete Embedded Java Workshop
JCrete Embedded Java WorkshopJCrete Embedded Java Workshop
JCrete Embedded Java Workshop
 
Oracle IoT Kids Workshop
Oracle IoT Kids WorkshopOracle IoT Kids Workshop
Oracle IoT Kids Workshop
 
OpenJFX on Android and Devices
OpenJFX on Android and DevicesOpenJFX on Android and Devices
OpenJFX on Android and Devices
 
Java on Raspberry Pi Lab
Java on Raspberry Pi LabJava on Raspberry Pi Lab
Java on Raspberry Pi Lab
 
Java 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and LegosJava 8 for Tablets, Pis, and Legos
Java 8 for Tablets, Pis, and Legos
 
DukeScript
DukeScriptDukeScript
DukeScript
 
Devoxx4Kids NAO Workshop
Devoxx4Kids NAO WorkshopDevoxx4Kids NAO Workshop
Devoxx4Kids NAO Workshop
 
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
Raspberry Pi Gaming 4 Kids (Devoxx4Kids)
 
Raspberry Pi Gaming 4 Kids - Dutch Version
Raspberry Pi Gaming 4 Kids - Dutch VersionRaspberry Pi Gaming 4 Kids - Dutch Version
Raspberry Pi Gaming 4 Kids - Dutch Version
 
Raspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsRaspberry pi gaming 4 kids
Raspberry pi gaming 4 kids
 

Dernier

Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 

Dernier (20)

Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 

Pro JavaFX Platform - Building Enterprise Applications with JavaFX

  • 1. Pro JavaFX Platform Building Enterprise Applications with JavaFX Stephen Chin Jim Weaver GXS JavaFXpert.com steve@widgetfx.org jim.weaver@javafxpert.com tweet: @steveonjava tweet: @javafxpert
  • 2. What do you want to discuss? Here’s our [flexible] plan: > Examine Rally’s Stratus application being developed in JavaFX 1.3.1 by the presenters > JavaFX 2.0 Code Examples in Java and Scala > Hit the high points of the newly published JavaFX roadmap at http://javafx.com/roadmap > Announce the RIA Exemplar Challenge winner > Questions encouraged at anytime!
  • 3. Case Study: Rally’s Stratus Application > Being developed in JavaFX using an Agile process and the Rally Agile tool > Accesses REST-based Rally API > Gives users an overall view of work in process in various Kanban stages
  • 4. The greater the success experienced in R&D, the more disruption that it creates for the organization as a whole. Feature selling Launch Cycle Time becomes > Dev Cycle Time impossible Sales Marketing (Sales Enablement) Melting Change …in the Managers: 50 Product weeds Operations changes once Management Development a month to 900 … changes constantly Supported Release Professional Innovator’s Support proliferation Services Dilemma
  • 5. “Eat your spinach or the Scrum will get you.” 5
  • 6. However, by applying/extending those same lean/kanban principles more broadly in the organization, these risks can be avoided, and organizational value increased. Source: InfoQ Source: InfoQ Three Atypical, but Critical Practices in the Product Portfolio Kanban: • Stakeholder Based Investment Themes and Business Case Management (organizational value) • Upstream and Downstream WIP Limits • Dynamic Allocations Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010 Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
  • 7. We manage each business case through a Kanban which extends upstream and downstream from traditional development Kanban Stages Benefits WIP Limits  Proposed • Alleviate the “Agile Death Ray” Effect and WL  Biz Case Achieve Flow Capacity  Backlogged • Expose and Route Around Political based  Long Term Roadmap WIP WL Roadblocks and Priority Alignment  Scheduled limits  Committed Roadmap •Focus Organizational Value Return WL  In Process  Software development method in use  Deployed Item/slot WL  Release Management based WIP  Enabled limits WL  Collateral, Training  Adopted  Marketing  Usage  Validated  Biz Case Analysis  Feature Success Measurement 7 Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
  • 8. The Three Loops of Software Governance Operations/Support Marketing/Sales Dev: Technical debt Validated Adopted Sales Enabled Marketing Internal Technical Debt Loop Proposed Proposed Backlogged Product Scheduled External Technical Debt Loop In Process Operations Deployed Management Development Bottleneck Validated Adopted Enabled Professional Support Services Source: Based on Gat et al, Reformulating the Product Delivery Process, LSSC Conference, April 2010
  • 14. JavaFX CSS Styling: Config Dialog with No Style Sheet
  • 15. Stratus Communicates with Server via HTTP/JSON Rally ALM Rally Server Stratus 15
  • 16. Some JavaFX Tech used in Stratus > REST Interface / Parsing  RedFX  Reflection/Recursion/Multitasking > CSS Styling > JFXtras  XTableView  XForm  XPane > Local Storage
  • 17. XTableView Insanely Scalable >  Up to 16 million rows Extreme Performance >  Pools rendered nodes  Caches images  Optimized scene graph Features: >  Drag-and-Drop Column Reordering  Dynamic Updating from Model  Automatically Populates Column Headers  Fully Styleable via CSS
  • 18. JavaFX in Java > JavaFX API follows JavaBeans approach > Similar in feel to other UI toolkits (Swing, etc) > Researching approaches to minimize boilerplate
  • 19. Example Application public class HelloStage implements Runnable { public void run() { Stage stage = new Stage(); stage.setTitle("Hello Stage"); stage.setWidth(600); stage.setHeight(450); Scene scene = new Scene(); scene.setFill(Color.LIGHTGREEN); stage.setScene(scene); stage.setVisible(true); } public static void main(String[] args) { FX.start(new HelloStage()); } }
  • 20. Why Scala? > Shares many language features with JavaFX Script that make GUI programming easier:  Static type checking – Catch your errors at compile time  Closures – Wrap behavior and pass it by reference  Declarative – Express the UI by describing what it should look like > Scala also supports DSLs! 20
  • 21. Java vs. Scala DSL public class HelloStage implements Runnable { object HelloJavaFX extends JavaFXApplication { def stage = new Stage { public void run() { title = "Hello Stage" Stage stage = new Stage(); width = 600 stage.setTitle("Hello Stage"); height = 450 stage.setWidth(600); scene = new Scene { stage.setHeight(450); fill = Color.LIGHTGREEN Scene scene = new Scene(); content = List(new Rectangle { scene.setFill(Color.LIGHTGREEN); x = 25 22 Lines Rectangle rect = new Rectangle(); 17 Lines y = 40 rect.setX(25); width = 100 545 Characters rect.setY(40); rect.setWidth(100); 324 Characters height = 50 fill = Color.RED rect.setHeight(50); }) rect.setFill(Color.RED); } stage.add(rect); } stage.setScene(scene); } stage.setVisible(true); } public static void main(String[] args) { FX.start(new HelloStage()); } } 21
  • 22. object HelloJavaFX extends JavaFXApplication { def stage = new Stage { title = "Hello Stage" width = 600 height = 450 scene = new Scene { fill = Color.LIGHTGREEN content = List(new Rectangle { x = 25 y = 40 width = 100 height = 50 fill = Color.RED }) } } } 22
  • 23. object HelloJavaFX extends JavaFXApplication { def stage = new Stage { title = "Hello Stage" width = 600 height = 450 for JavaFX Base class scene = new Scene { applications fill = Color.LIGHTGREEN content = List(new Rectangle { x = 25 y = 40 width = 100 height = 50 fill = Color.RED }) } } } 23
  • 24. object HelloJavaFX extends JavaFXApplication { def stage = new Stage { title = "Hello Stage" width = 600 height = 450 scene = new Scene { Declarative Stage fill = Color.LIGHTGREEN definition content = List(new Rectangle { x = 25 y = 40 width = 100 height = 50 fill = Color.RED }) } } } 24
  • 25. object HelloJavaFX extends JavaFXApplication { def stage = new Stage { title = "Hello Stage" width = 600 Inline property height = 450 definitions scene = new Scene { fill = Color.LIGHTGREEN content = List(new Rectangle { x = 25 y = 40 width = 100 height = 50 fill = Color.RED }) } } } 25
  • 26. object HelloJavaFX extends JavaFXApplication { def stage = new Stage { title = "Hello Stage" width = 600 height = 450 scene = new Scene { fill = Color.LIGHTGREEN content = List(new Rectangle { x = 25 y = 40 width = 100 height = 50 List Construction fill = Color.RED Syntax }) } } } 26
  • 27. JavaFX 2.0 Highlights: Java and Alternative JVM Languages > JavaFX has a new API face > All the JavaFX 2.0 APIs will be exposed via Java classes that will make it much easier to integrate Java server and client code. > This also opens up some huge possibilities for JVM language integration (e.g. with Ruby, Clojure, Groovy, and Scala)
  • 28. JavaFX 2.0 Highlights: Open Source Controls > JavaFX controls will be open sourced moving forward. > This is a huge move in the right direction for the platform, and will make life for us third-party control developers much better.
  • 29. JavaFX 2.0 Highlights: Multithreading Improvements > The move to Java APIs breaks down some of the barriers to multi-threaded programming that were present with JavaFX. > Presumably a similar model to Swing will exist where you can launch worker threads, but still have to do all UI operations on a main event thread.
  • 30. JavaFX 2.0 Highlights: Texture Paint > Interesting to see this highlighted, but its use in JavaFX was pioneered by Jeff Friesen and included in JFXtras 0.7
  • 31. JavaFX 2.0 Highlights: Grid Layout Container + CSS > Very good to see that the Grid Layout from JFXtras is continuing to be adopted and evolved. > The addition of making it accessible from CSS will make it an extremely powerful layout container suitable for multiple uses.
  • 32. JavaFX 2.0 Highlights: HD Media > Media seems to be getting a big upgrade, which has been long overdue. > This is in addition to other promised improvements in full screen capabilities, media markers, animation synchronization, and low latency audio.
  • 33. JavaFX 2.0 Highlights: HTML5 WebView > It is good to see that this is finally getting the attention it deserves. > JavaFX is great for dynamic application development, but is not well suited for content presentation. > The combination of JavaFX + HTML5 will greatly expand the range of applications that can be developed.
  • 34. JavaFX 2.0 Highlights: Controls Galore! > TableView, SplitView, TabView, and Rich Text to name a few. > This is a necessity to build robust enterprise applications.
  • 35. JavaFX 2.0 Highlights: File (and other) Dialogs > This may seem like a minor point, but is incredibly important for building real applications.
  • 36. JavaFX 2.0 Highlights: HTML5 Support > Not to be confused with the WebView, there is also a plan for the successor to JavaFX 2.0 (2012 timeframe) to support an alternate HTML5 rendering pipeline. > Not many details are available about this yet, but it could be a huge technological breakthrough if pulled off successfully. > The practical applications of being able to deploy your JavaFX application to any HTML5 compliant device is enormous.
  • 37. And the winner [of the JavaFXpert RIA Exemplar Challenge] is... Abhi Soni!
  • 38. Stephen Chin Jim Weaver steve@widgetfx.org jim.weaver@javafxpert.com tweet: @steveonjava tweet: @javafxpert 38