hello Juan
I think you are right, simple applications are easy to do, like query only applications, and simple CRUD applications. however, you will soon get into situations that require real knowledge to solve, and most of the times, knowledge that is restricted in the domain of ADF, so don't expect any help from regular J2EE experts. Additionally, i found Oracle University material of little help and there is very little books around about the subject. What makes the subject hard to work with, is probably because Oracle wants to move ADF into a declarative development framework, and therefore, most of the example you find show you steps of how you do things, and you sometimes get the job done without really understanding what is going on. and when you dont understand what is going it, it is not easy to find solutions for tricky situations because you feel that you have no control. With experience, you will start getting some insight and probably get a better grasp, but this shall take you long. To explain what I mean, I want to ask you a question?
Create a simple master/detail page based on ADF BC/JSF and then describe to me what happens from the moment you launch the URL until the you can see data on the screen and tell me if during page load, you can for example, print a string on the console and on the page itself, the string is on the web page is a mere test <H1> Hello </H1>?
As for how long it requires a new person to become productive, this is not easy to answer. If there is a good teacher and the guy is smart with the required background, probably 1-3 months. If unguided, it will take double that. There is very little well explained end 2 end projects or tutorial around. Mostly, you will find discrete solutions to discrete situation. Since ADF is something designed by Oracle itself and the documentations and tutorials are scarce, when do develop something, you do not know if you are doing it the right way as there is no clear development methodology or path that beginners can take
I am taking a simple .NET course just to see the difference, i am inclined to say that even though most of the concepts are similar, but MICROSOFT has taken a simpler and more intuitive approach for development as if .NET designed for the masses, while ADF is for computer Scientists (even though the declarative approach that oracle seems to be adopting should imply the opposite)
Good luck
Ammar Sajdi
Nathalie, Nathalie
thank you very much for the response, and the important points that you raised, however, please take my points in the context of positive criticisms.
While I was writing my views in the previous post, I was writing from the point of view of new developers, and mostly these new developers can be fresh university graduate!
Even with the links you gave, i would only say that the JSF lifecycle described, is a high level approach, not enough for people who are going to do serious programming! I guess it is written diplomatically to sustain a certain level of formality for the people with thorough understanding of the subject matter. Back to the lifecycle, let me simplify my point, when you create a simple form and you run it (consider it your first form), you will find a page with data filled on the page, immediately, the new developer will ask how did that happen, What triggered a query, how did the jsf page interact with the model layer. Of course, you will find some statement somewhere in the developer guide to address this point (page definition, iterators, refresh conditions etc), and this is exactly what i mean, the developer will have to remember steps and there is no logical, algorithmic pattern. The new adopters is confronted with a new way of thinking that is not popular is scientific literature, implying of course that the adopters can not go back to text books he/she studied etc .. There is nothing wrong with steps and declarative approach so long as the logic behind it is clearly documented in something similar to a sequence diagram
if this is the case (or incase this is the case) the new adopter seeks means to understand this new approach through available resources. And here what comes to mind
ADF in 21 days???
Framework Design Guidelines ????
Enterprise solution with ADF ????
ADF simplified (Apress) ???
ADF for dummies ????
Head First ADF????
Beginners Guide to ADF???
Applied ADF programming for the Pro ????
etc..
What to do then? OK, distinguished blogs by Frank , Steve, Duncan, and others, which are again discrete solution to discrete problems, and then finally the Oracle ADF for 4GL developer, a huge reference (over 1000 Pages) that needs to be read cover to cover and probably multiple times as you will need to reach chapter 10 before you can start working on your Web interfaces! Please do not get me wrong, this is only to push the effort forward,,, The information is over whelming and the new adopters (Especially new team) cannot put things together. Even then, ask one of your new adopters to design a simple page with dependent combo box depending on his/her understanding of what they read?!! Using encapsulation works well in java development, but does not work well when explaining techniques and technology! because hiding details does not work well for ppl to get better understanding of things. A simple example: you know the estimatedRowCount binding! it is introduced without really explaining it well (ie encapsulating its meaning). One of my really smart programmers depended on it to do some logic (of course, she does not really know how and when the framework gets the binding value). A bug appeared in one of our production systems, in which this binding did not seem to be working correctly, only to find out that in a multi-user environment, other people where adding records to the database through other pages or applications, and we found out that the estimatedRowCount is getting its value from the cached view object? and as such does not reflect the newly inserted rows!!! Says Who? says who ever designed the framework and encapsulated how it works only to expose a few self explanatory words! That was only an example and not an attempt to give an exhaustive list of such situation.
You will find discrete examples that utilizes this binding value used in situation (normally in a straight forward manner) where clear understand is not needed for it to work properly. The poor developers try to extend what they learned through such example and generalize (as they are supposed to do ) it to other situation that are mostly and probably more complex and end up spending time learning the internals of the framework in a trial and error manner. Again, if one digs more and more and read between the lines, the answer could be there! However, this will bring back the question that Juan addressed, how much time; experience is required for a team to write an enterprise, reliable ADF application within the normal constraints of a project (mainly, time and budget)?
The problem is that each team member is subject to fall in the trap and will only learn and avoid it after he/she hits the problem.
I firmly believe that ADF is a better framework than .NET, but for some reason, our .NET team in the company does not seem to be facing what we are facing.
It remains to mention that the ADF team members are among the brightest you can find with excellent academic record. Additionally, most of them are Sun Java Certified.
I wish I have some time to spare only to write a book called something like "An intuitive approach to ADF" , "ADF by your Nanny", or maybe "ADF, a visual approach", or "Programming ADF with insight". A book that is not intended to be a reference guide, but is the book that will let you understand a reference guide when you read it
Hello
thank you for your attention to this thread
The points i am trying to raise here are for the benefit of other readers and not myself! I really know most of the books, literature, blogs and other stuff available. Myself and my team, i believe, have reached a level of maturity in handling ADF that i think is unprecedented in our region (Middle East) which also has peculiarity caused by Right To Left and upper ASCII issues. Anyhow, replacing a team member is really difficult for us. .NET is being thought in colleges,private institutions and is adopted by most companies. You need a .NET programmer, you can pick a choose; the supply is overwhelming. You need ADF programmer? Well i think in may case, i have one option, CREATE ONE. THEREFORE, what i am trying to do here is actually come up with a roadmap that guides new adopters through a well thought of learning path. The path should have levels, so the programmer skills can be labeled with levels (like army ranking). The level is earned through certain accomplishment in terms of material read, tests, specific situation solved etc.
Of course, if i am capable of doing this alone, i would not have posted the idea here.
In case of what i have in mind is still vague , the following example should clarify
Pre-requisite Good Java Knowledge
Level : As good as nothing
Topic Means Reference Time
Java Refreshment Self Study Any 5 Days
HTML Refreshment Self Study Head First 2 Days
Java Script Self Study Head First 2 Days
Understanding HTTP Request, Resp Self Study Head First 1 days
Understanding HTTP Session , cookies Self Study 1
My first Servelet , Qry String, Parameter Instructor 1
My First JSP Instructor 1
==================================================================
14 Days of orientation to web and java concepts
Comment: it is rather easy to find a fresh graduate with good knowledge of the above topics, a placement exam should be available to verify that (this will save us 14 days)
Level : ADF Sergeant
1- Java Servlet with Oralce JDBC connection without JNDI, and With JNDI , enough to iterate one table
2- Same with JSP (1 day)
3- ADF BC
list topic and examples that programmer should do, although, Oracle University has good material , however, certain topics should be extracted from the Oracle ADF for 4 GL developer. At this point, i do not think that the new person should be asked to read the material from that reference,
(at this point ADF validation should be introduced)
etc ...
ADF Lieutenant
1- Created full CRUD, will multipage , capable of understanding how to control Commit processing, partial rollback, (Reset specific pages),
2- Understanding in great details the Faces phases (reference .....)
2- Understanding what immediate is (reference ...)
3- Understanding how and why to override lifecycle (reference ..)
4- managing and changing error messages etc..
5- Understanding (fully) how ADF lifecycle and JSF lifecycle interact
6- Validation in all of its details and cases, how invalid situation are handled and how to control how this reflects on navigation, message queue (Stack), Clearing data, etc
The list will go on and on and topics are best suggested by people (like me ) who learned the tough way, (many trials and many iterations, and many test cycles)
Level ADF Captain
After reading the ADF for 4 GL cover to cover (should demonstrate this , quiz maybe)
Level ADF Brigadier
list
This effort, if done, will make ADF a breeze for new adopters, i am sure about it!
Ammar Sajdi
Or maybe we could have "Fusion" ranks instead:
ADF In the dark Developer
ADF Tepid cup of tea Developer
ADF Warm scone Developer
ADF Hot lightbulb Developer
ADF Baking oven Developer
ADF Backyard burn off Developer
ADF Oops I burnt the house down Developer
ADF California firebug Developer
ADF Global warming Developer
ADF Fusion Master!
.....dum de dum ;-)
All jokes aside Ammar, your idea is a good one, an ADF Developer
Maturity Model that would really help others understand what they need
to learn, and a ranking system to help them achieve learning goals. I
applaud such an idea.
Can I suggest this would make an excellent effort in this forum to
discuss such, and write an Oracle Wiki page as end result for everyone
to share? Maybe you could start a new thread with your idea, and ask
others to join and assist you in writing it, you as lead. I'm sure
Oracle staff would like to help too.
What do you think?
CM.
This has been a great thread as an Oracle Developer and ADF Beginner. I applaud everyone that has contributed to this discussion. I do feel ADF success would be greater to bring over Form Developers, which are looking for a path to succeed in the future. I recently was trying to promote a project for migration from Forms to Java. Also, have realized it's like no establish path in a company in a matured Forms development to shift to JDeveloper and ADF.
I have found that it's like a movement to convinced Management and Developers to go on this journey and vision to Java. Many, have asked why during this economic times do they want to invest in migration to Java. My answer is a long term vision that we invest in upgrading our system to reduce the cost of the long-term maintenance of the system in legacy technology.
My focus to is mapping and seeing similarity that Oracle has made in JDeveloper and ADF development to Forms. I have found blogs likes Frank, Steve Muench, Grant Ronald, Chris Muir, etc. Very helpful to Form developers to see the benefits to ADF, but we need more workshops and sessions at Conference.
I was following Ruby on Rails for awhile and its success was coming for community, podcasting, blogs, workshops, and books.
Also, I believe a lot of the Bloggers who have Form background have a should continue referencing Forms in their blogs to help Form Developers in their journey to ADF.
I am coming from a Forms background with strong belief that ADF will have big success by getting Form Developers to come over to JDeveloper and ADF.
Cheers,
Kai Liu
Hi
I can speak from my experience.
Our customers usually have 2 types of developers. Those who do the common work – build screens, use ADF BC and very little business logic. They can learn ADF in a matter of a week or two. They need very basic Java and SQL experience, no need for JSF or JavaEE experience.
Each team (or 2 teams) have one experienced ADF developer – who is a guru level guy. He needs to be very familiar with JavaEE, Java and the ADF framework in general. He assists in solving bugs, doing the complex stuff – security, task flows etc.
For the basic developers – the learning curve is very small. For the guru – it takes months until he really knows the material well.
Thank You,
Best Regards,
Liran Zelkha
Founder & Co-CEO
Aluna
Phone: 972-3-7382555
Mobile: 972-54-3010714
E-Mail: liran....@alunasoft.com