I write this just after taking over an ADF project from a work mate. I had tried to dabble with Oracle ADF in the past, but it got side tracked by PHP work. Now I take over this new project and all of a sudden I need to learn ADF for real.
After 2 days of trying to change a check box (storing a ‘Y’ when on and a ‘N’ when off) to a set of radio buttons (showing ‘Parent’ for a value ‘P’, and ‘Child’ for a value ‘Y’), I think I have finally lost the plot.
It should be easy. I mean it’s a simple thing to want to do. But for some reason in Oracles attempt to make the framework quick and clever, then have forgotten that they should also make things simple. I’m a web developer. My desire is to find a little bit of html in a template and change it. I don’t want to change any functionality, only tweak a bit of UI.
So far I’ve managed to get some radio buttons that:
1. Can’t have labels different from their values, but do update and reflect what’s in the database.
2. Do have the correct labels, do update the database, but don’t display a checked button to reflect what is in the database.
3. Cause the entire page to crash with some meaningless exception that seems to bear no clue as to it’s source.
Tried looking at the documentation? You bet ya. It reads just like it’s been copied straight from the sales brochure. To quote:
At runtime, the generic Oracle ADF Model layer reads the information describing your data controls and bindings from appropriate XML files and implements the two-way “wiring” that connects your user interface to your business service. This combination enables three key benefits:
* You write less code, so there are fewer lines to test and debug.
* You work the same way with any UI and business service technologies.
* You gain useful runtime features that you don’t have to code yourself.
As soon as you want to go beyond the bits that they have deliberately made easy, your on your own.
To give oracle it’s credit, there are things it does very well. If I want to make a html table from a database table, then that’s great. But oh say I wanted to use the back button to navigate without it causing Steve Jobs to run off with your wife after crashing the entire application and truncating every database table (ok I am exaggerating, but it’s still bad)? Oh well that’s just 78 hours of blood sweat and tears.
I would be less than 78 hours, if only the IDE you have to use (Jdeveloper) would take less than 30 seconds to switch between the design and source views. Yes Jdeveloper does lots, but does it really need 300Mb of my memory and to run like a snail on super glue?
What about going on a course? Well I did once. What did it teach me? Well much the same as the documentation. Lots on how to do the easy things, but as soon as you want to stretch beyond that…BAM you’re on your own.
This perhaps seems like a harsh critic of all the hard work that has gone into ADF. I admit that I’m still learning. I’m very frustrated at the learning curve, but I’m am just a beginner. To be fair to Oracle, I make this promise: If at any point I change my mind and feel that is a useful tool, I will come back and write in big letters that I am sorry and point out how what I have said is wrong. In the mean time I’ll be stocking up on keyboards to replace the ones destroyed in ‘500 internal server error’ fits of rage.