JSF On Rails - Devoxx 2008


Published on

Presentation from the Tools in Action Track at Devoxx 2008. It shows rapid development of an EJB/JPA & JSF application using ADF 11g, resulting in a rich and attractive application. Then it introduces the 'on rails' part through the JHeadstart plugin that brings a model and meta-driven zero-code generation experience especially suited for CRUD++ applications.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • JSF On Rails - Devoxx 2008

    1. 1. www.devoxx.com
    2. 2. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart <ul><li>Lucas Jellema </li></ul><ul><li>Expertise Manager </li></ul><ul><li>AMIS (The Netherlands) </li></ul>
    3. 3. Overall Presentation Goal <ul><li>Demonstrate the rapid, declarative development of Rich Internet Applications (EJB/JPA or ADF Business Components, JavaServer Faces) using JDeveloper 11g & ADF 11g </li></ul><ul><li>and the “warp-speed” on-rails model driven development using JHeadstart 11g </li></ul><ul><li>(entice you to try it out for yourself) </li></ul>
    4. 4. Speaker’s qualifications <ul><li>Lucas Jellema is CTO at AMIS – an Oracle, SOA & Java specialist in The Netherlands </li></ul><ul><li>Lucas Jellema is Oracle ACE Director </li></ul><ul><li>Lucas Jellema regularly writes articles for media like JDJ, Java Magazine (Dutch), JavaLobby, Oracle Technology Network, and various Oracle related magazines </li></ul><ul><li>Lucas Jellema presented in 2008 on Dutch Java User Group conference, JavaOne, Oracle Open World, Devoxx and various Oracle User Group events </li></ul><ul><li>Lucas Jellema makes frequent contributions to the http://technology.amis.nl/blog weblog </li></ul>
    5. 5. <ul><li>Java developers spend most of their time on solving non-functional problems that have already been solved: </li></ul><ul><li>In other technology stacks </li></ul><ul><li>In existing Java frameworks, libraries or tools </li></ul><ul><li>By their (former) colleagues </li></ul><ul><li>And sometimes even by themselves </li></ul><ul><li>Over 90% of developer effort can be and should be oriented towards functional business requirements </li></ul><ul><li>No focus and little effort on programming generic plumbing code or developing functionality available from frameworks </li></ul><ul><li>Exploit declarative, predefined options in your technology stack and start programming in anger to go the ‘extra mile’ </li></ul>
    6. 6. <ul><li>Demo: JEE Application Development – EJB 3.0/JPA & JSF using JDeveloper 11g with ADF 11g </li></ul><ul><li>Discussion of remaining challenges </li></ul><ul><li>Introduction of JSF on Rails with JHeadstart </li></ul><ul><li>Demo: Declarative, model-driven, zero-code generation of JEE Applications using JHeadstart </li></ul><ul><li>Summary </li></ul>Overview
    7. 7. <ul><li>ADF = Oracle’s Application Development Framework </li></ul><ul><ul><ul><li>(rich) JSF implementation (ADF Faces aka MyFaces Trinidad) – as well as ADF Swing and Struts/JSP support </li></ul></ul></ul><ul><ul><ul><li>its own persistency framework ADF Business Components (fka BC4J) – as well as support for EJB/JPA, EclipseLink/TopLink, WebServices and 3 rd party persistency solutions </li></ul></ul></ul><ul><ul><ul><li>Infrastructure for Data Binding – to decouple Model and ViewController (and implement rich JSF backing models) </li></ul></ul></ul><ul><ul><ul><li>Note: each of these elements can be used with or without the others </li></ul></ul></ul>JEE Web Application on ADF
    8. 8. The Data Model for the demo
    9. 9. DEMO <ul><li>Demonstration rapid JEE Web Application Development </li></ul><ul><li>JDeveloper 11g with ADF </li></ul><ul><li>Business Tier: EJB 3.0/JPA </li></ul><ul><li>ADF Model </li></ul><ul><li>Web Tier: JavaServer Faces (ADF 11g Faces Rich Client Components) </li></ul>
    10. 10. <ul><li>Step One – Master (table) Detail (table) </li></ul>Rapid Demonstration Result
    11. 11. <ul><li>Step Two – </li></ul><ul><ul><ul><ul><li>Wrap Employee Table in PanelCollection (Detach and run-time Column Management) & </li></ul></ul></ul></ul><ul><li>Enable Sort on Employee Table </li></ul>Rapid Demonstration Result
    12. 12. <ul><li>Step Three – the Real Estate Challenge: </li></ul><ul><ul><ul><ul><li>Accordion with Employee Table and Salary Graph </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Popup with extra context details (Department Manager) </li></ul></ul></ul></ul>Rapid Demonstration Result
    13. 13. <ul><li>Master-Detail synchronization </li></ul><ul><li>Table-Table </li></ul><ul><li>Sort & Column Manipulation </li></ul><ul><li>Accordion </li></ul><ul><li>Popup </li></ul><ul><li>Chart </li></ul><ul><li>============ (+ 10 minutes </li></ul>Rapid Demonstration Result
    14. 14. <ul><li>Even though a lot of drag & drop, still a lot of manual activity involved </li></ul><ul><li>Because of that, keeping the pages consistent – look & feel, structure, interactivity – can be a pain </li></ul><ul><li>Absorb/Apply global changes in either the Model or the layout and interaction structure and pattern is quite hard </li></ul><ul><li>Implementing common UI patterns – List of Values, Search Forms, Navigation, Breadcrumbs – can be made easier </li></ul><ul><li>The learning curve is quite steep – even though initially little programming is involved </li></ul>Some Remaining Challenges
    15. 15. JHeadstart =JSF on Rails <ul><li>JHeadstart generates an ADF – JSF application from the model and a declarative definition of pages & data usages </li></ul><ul><li>For CRUD + + style applications </li></ul><ul><ul><ul><ul><li>or a headstart for process/task oriented applications </li></ul></ul></ul></ul><ul><li>Many common data, interaction and layout-patterns are supported with out-of-the-box generation </li></ul><ul><ul><ul><ul><li>Master-Detail(-Detail-….), Shuttle, List of Values </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Form, Table, Tree, Overflow areas, File upload/download </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Menu, Deeplink Navigation, Breadcrumb trail </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Run-time management of Resource Bundles and Custom Items </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Integrated Role based authorization for pages and items </li></ul></ul></ul></ul>
    16. 16. Develop iteratively with JHS <ul><li>Preparation </li></ul><ul><ul><ul><ul><ul><li>Install JHeadstart extension for JDeveloper </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Enable JHeadstart on Web application </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Build (initial) business service with ADF BC </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Create (default) Application Definition </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Generate (initial) application: JSF pages, Page Flows, Managed Beans & Navigation rules, ADF Data Binding </li></ul></ul></ul></ul></ul><ul><li>Repeatedly, in iterations </li></ul><ul><ul><ul><ul><ul><li>Edit Application Definition </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>[Change Generator Templates] </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>[Modify Model (ADF BC Business Service)] </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Regenerate </li></ul></ul></ul></ul></ul>
    17. 17. DEMO <ul><li>Demonstration JEE Web Application Development on Rails - Introducing JHeadstart </li></ul><ul><li>JDeveloper 11g, ADF & JHeadstart </li></ul><ul><li>Business Tier: ADF Business Components </li></ul><ul><li>ADF Model </li></ul><ul><li>Web Tier: JavaServer Faces (ADF 11g Faces Rich Client Components) </li></ul>
    18. 18. <ul><li>Menu </li></ul><ul><li>Master-Detail </li></ul><ul><li>Search Form </li></ul><ul><li>Edit/Delete/Duplicate </li></ul>JSF on Rails Demo Results
    19. 19. <ul><li>Editing the Application Definition </li></ul>JSF on Rails Demo Results
    20. 20. JSF on Rails Demo Results
    21. 21. Summary <ul><li>ADF 11g helps create rich JavaServer Faces applications on top of EJB/JPA, WebService or ADF Business Components Business Services </li></ul><ul><li>ADF 11g Data Binding allow drag & drop style data binding of complex data driven components (form, table, tree, shuttle, many graph types, slider, pivot table, …) </li></ul><ul><li>ADF 11g Faces (Rich Client Components) provide rich layout components (popup, panelsplitter, accordion, tabs..) </li></ul><ul><li>JHeadstart 11g puts JSF/ADF ‘on rails’ with extreme productive no code generation of CRUD++ applications </li></ul>
    22. 22. Concluding statement <ul><li>Development of JavaServer Faces applications can and should be fast and productive yet rich and attractive with full focus on business functionality </li></ul><ul><li>ADF 11g allows for rapid JSF application development. JHeadstarts adds the highway (railway) to a jumpstart, especially when creating CRUD++ applications. </li></ul><ul><li>Both can easily be enhanced by Java programmers </li></ul><ul><li>Give it a try (all software can be downloaded from OTN) </li></ul>
    23. 23. Q&A
    24. 24. Thanks for your attention! <ul><li>See: http://technology.amis.nl/blog for resources, more demonstrations, examples and presentation material </li></ul><ul><li>Email: lucas.jellema@amis.nl </li></ul>