2. Who Am I
• Luc Bors
• Principal Consultant
• AMIS Nieuwegein Netherlands
• Friends of Oracle & Java
• 5 Oracle ACE(D)
• Oracle Partner
3. Where Are You Now ?
• HUGE Forms investment
• Mission critical, complex systems
• Low maintenance, stable system for over 10 years
• Mostly undocumented systems
• VERY fast productive development
• Trained developer pool
• Looking to leverage the existing investment
6. Most Recent Project
• Ministry of Security and Justice
• Application >20 years old
• Decentralized architecture (19x)
• Approx. 2.000 users
• 1 million cases per year
• 10.000-15.000 letters per day
7. Modernization Project Triggers
• Very old technical environment(end-of-life)
• Maintenance is expensive
• Staffing is difficult
• Architecture not flexible
• Need to be ready for the future
8. Distributed Architecture
• 19 distributed implemenations• 1 central implemenation
• Less Hardware
• Less Administrators
• Less Duplicate Data
• More Insight
• More Control
18. Lesson 1: The Right Size
• Application Architecture
• Taskflow with page fragment and per
Taskflow 1 page with 1 static region
• All in one big workspace
– Or
• Taskflow with page fragment and per
Application 1 page with 1 dynamic
region
• Use separate workspaces
19. Lesson 2 : Don’t Copy Paste
• Migrate “As-is” …… ??
• Don’t try to copy forms functionality
– Know your ADF Faces Components
• Forms Built-ins are not available in ADF
and PL/SQL is not Java. Your options:
– Whenever possible
• transfer to DB
– Whenever lucky
• Use a declarative or zero code ADF Alternative
– Otherwise
• Code Java Alternative
20. Lesson 2 : Don’t Copy Paste
• Forms code for:
– Buttons
– Canvasses
– Navigation
• ADF code for:
– None of the above
21. Lesson 3 : Involve People
• Grumpy Old Men
• Talk with all People involved in
the project
• Let them know what you are
doing
• Let them decide what goes in
and what not
22. Lesson 3 : Involve People
• Include operational team
• Infrastructure (DTAP) : Ready on Time
• Don’t underestimate WebLogic configuration
• SSO via MS-AD
23. Lesson 4 : Hire Experts
• Training is not enough.
• Steep learning curve
– Don’t mix in regular work
– Long “Conscious Incompetence”
phase: motivational dip
• Hire Experts 0
1
2
3
4
5
Week
1
Week
20
Week
30
Week
40
Week
52
Next
Year
Even
Later
Imaginary ADF Learning
Curve
24. Lesson 4 : Hire Experts
“The cheapest ADF Consultant is
the one with the highest hourly rate”
25. Lesson 5: Planning & Process
• Scrum
• Predictable Results
• Short Cycles
26. Lesson 5: Planning & Process
• Short Development Cycles
– Easy to Adjust
– Easy to Demo
– Nearby Goals
Sprint 1 Sprint 2 Sprint 3
2 weeks 2 weeks 2 weeks
Demo
Demo
Demo
27. Lesson 6 : Think Performance
• Performance First, not Last
• Might look good, however….
• Consider Tools
• …. And Watch Now Carefully !
28. Lesson 6 : Think Performance
• ViewObject queries caused by unintentionally left iterators in pageDefs
• Iterator bindings can still be refreshed and the ViewObject
unnecessary executed - for example when you have Refresh=“ifNeeded”)
29. Lesson 6 : Think Performance
• Oracle’s Default Values Do Not
Always Rock !
– ViewObject fetchMode and
fetchSize are underestimated
properties and have big
performance impact
– The default value is 1 - will give
poor performance (unless only one
row will be fetched)
30. Lesson 6 : Think Performance
• Too much data in ADFBC memory…………..
• Try to avoid loading more database rows than you need
• Be careful if you really do need to load a proportional number
of database rows
33. Lesson 7: Business Rules
• Business Components is not Always the Best Place !
• For employees with a Job (attribute value) equal to
SALESMAN the value of the Salary attribute should not be
higher than 2500.
• The difference between the maximum salary for all
employees with the same job and their average salary may
not exceed 30% of the average salary
34. Lesson 7: Business Rules
Hey, I can do ADF !
We can’t……….
….. But we can do
PL/SQL
36. Lesson 8: Documentation !
• *.fmb are not Documentation !
• Provide proper Documentation
• It is a Valid Investment
• Create a Cookbook
– Architectural issues
– Development How to‘s
37. Lesson 9: Automated Migration
• Automated migration is not easy.
– You can run into issues that an automated tool cannot handle
– You still need to re-code forms triggers (PL/SQL)
• JHeadstart Forms2ADF ?
– Not Really on Option
• Automated migration doesn’t exist.