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.