Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise...

24
www.devoxx.com

Transcript of Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise...

Page 1: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Page 2: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart

Lucas JellemaExpertise ManagerAMIS (The Netherlands)

Page 3: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Overall Presentation Goal

Demonstrate the rapid, declarative development of Rich Internet Applications (EJB/JPA or ADF Business Components,

JavaServer Faces) using JDeveloper 11g & ADF 11g

and the “warp-speed” on-rails model driven development using JHeadstart 11g

(entice you to try it out for yourself)

Page 4: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com4

Speaker’s qualificationsLucas Jellema is CTO at AMIS – an Oracle, SOA & Java specialist in The Netherlands

Lucas Jellema is Oracle ACE Director

Lucas Jellema regularly writes articles for media like JDJ, Java Magazine (Dutch), JavaLobby, Oracle Technology Network, and various Oracle related magazines

Lucas Jellema presented in 2008 on Dutch Java User Group conference, JavaOne, Oracle Open World, Devoxx and various Oracle User Group events

Lucas Jellema makes frequent contributions to the http://technology.amis.nl/blog weblog

Page 5: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Java developers spend most of their time on solving non-functional problems that have already been solved:

• In other technology stacks

• In existing Java frameworks, libraries or tools

• By their (former) colleagues

• And sometimes even by themselves

Over 90% of developer effort can be and should be oriented towards functional business requirements

No focus and little effort on programming generic plumbing code or developing functionality available from frameworks

Exploit declarative, predefined options in your technology stack and start programming in anger to go the ‘extra mile’

Page 6: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com6

Demo: JEE Application Development – EJB 3.0/JPA & JSFusing JDeveloper 11g with ADF 11g

Discussion of remaining challenges

Introduction of JSF on Rails with JHeadstart

Demo: Declarative, model-driven, zero-code generation of JEE Applications using JHeadstart

Summary

Overview

Page 7: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com7

ADF = Oracle’s Application Development Framework

(rich) JSF implementation (ADF Faces aka MyFaces Trinidad) – as well as ADF Swing and Struts/JSP support

its own persistency framework ADF Business Components (fka BC4J) – as well as support for EJB/JPA, EclipseLink/TopLink, WebServices and 3rd party persistency solutions

Infrastructure for Data Binding – to decouple Model and ViewController (and implement rich JSF backing models)

Note: each of these elements can be used with or without the others

JEE Web Application on ADF

Page 8: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

The Data Model for the demo

8

Page 9: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

DEMO

Demonstration rapid JEE Web Application Development

JDeveloper 11g with ADF

• Business Tier: EJB 3.0/JPA

• ADF Model

• Web Tier: JavaServer Faces (ADF 11g Faces Rich Client Components)

Page 10: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com10

Rapid Demonstration Result• Step One – Master (table) Detail (table)

Page 11: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com11

Rapid Demonstration Result• Step Two –

• Wrap Employee Table in PanelCollection (Detach and run-time Column Management) &

• Enable Sort on Employee Table

Page 12: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com12

Rapid Demonstration Result• Step Three – the Real Estate Challenge:

• Accordion with Employee Table and Salary Graph

• Popup with extra context details (Department Manager)

Page 13: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com13

Rapid Demonstration Result• Master-Detail

synchronization

• Table-Table

• Sort & ColumnManipulation

• Accordion

• Popup

• Chart

============ (+10 minutes

Page 14: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com14

Even though a lot of drag & drop, still a lot of manual activity involved

Because of that, keeping the pages consistent – look & feel, structure, interactivity – can be a pain

Absorb/Apply global changes in either the Model or the layout and interaction structure and pattern is quite hard

Implementing common UI patterns – List of Values, Search Forms, Navigation, Breadcrumbs – can be made easier

The learning curve is quite steep – even though initially little programming is involved

Some Remaining Challenges

Page 15: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

JHeadstart =JSF on Rails• JHeadstart generates an ADF – JSF application from the

model and a declarative definition of pages & data usages

• For CRUD + + style applications

• or a headstart for process/task oriented applications

• Many common data, interaction and layout-patterns are supported with out-of-the-box generation• Master-Detail(-Detail-….), Shuttle, List of Values

• Form, Table, Tree, Overflow areas, File upload/download

• Menu, Deeplink Navigation, Breadcrumb trail

• Run-time management of Resource Bundles and Custom Items

• Integrated Role based authorization for pages and items15

Page 16: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Develop iteratively with JHS• Preparation

• Install JHeadstart extension for JDeveloper• Enable JHeadstart on Web application• Build (initial) business service with ADF BC• Create (default) Application Definition

• Generate (initial) application: JSF pages, Page Flows, Managed Beans & Navigation rules, ADF Data Binding

• Repeatedly, in iterations• Edit Application Definition• [Change Generator Templates]• [Modify Model (ADF BC Business Service)]• Regenerate

16

Page 17: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

DEMO

Demonstration JEE Web Application Developmenton Rails - Introducing JHeadstart

JDeveloper 11g, ADF & JHeadstart

• Business Tier: ADF Business Components

• ADF Model

• Web Tier: JavaServer Faces (ADF 11g Faces Rich Client Components)

Page 18: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com18

JSF on Rails Demo Results• Menu

• Master-Detail

• Search Form

• Edit/Delete/Duplicate

Page 19: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com19

JSF on Rails Demo Results• Editing the

Application Definition

Page 20: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com20

JSF on Rails Demo Results

Page 21: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com21

SummaryADF 11g helps create rich JavaServer Faces applications on top of EJB/JPA, WebService or ADF Business Components Business Services

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, …)

ADF 11g Faces (Rich Client Components) provide rich layout components (popup, panelsplitter, accordion, tabs..)

JHeadstart 11g puts JSF/ADF ‘on rails’ with extreme productive no code generation of CRUD++ applications

Page 22: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Concluding statementDevelopment of JavaServer Faces applications can and should be fast and productive yet rich and attractive with full focus on business functionality

ADF 11g allows for rapid JSF application development. JHeadstarts adds the highway (railway) to a jumpstart, especially when creating CRUD++

applications.Both can easily be enhanced by Java programmers

Give it a try (all software can be downloaded from OTN)

Page 23: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Q&A

Page 24: Www.devoxx.com. JSF on Rails – JDeveloper 11g, ADF 11g and JHeadstart Lucas Jellema Expertise Manager AMIS (The Netherlands)

www.devoxx.com

Thanks for your attention!

See: http://technology.amis.nl/blog for resources, more demonstrations, examples and

presentation material

Email: [email protected]