Where does Oracle ADF 11g stands among Java EE Frameworks?

19,397

Solution 1

We have chosen Oracle ADF in our company for one of our projects. Sadly, this proved to be a big mistake. I personally have used Oracle products, in particular their DB, but as far as fusion middleware is concerned, I would advise you to stay away from it. ADF was by far the worst framework I have ever used as an architect. Some of its features I noticed are: very complex, Oracle just "invents" or forces some development approaches that have been proven as a bad practice by the Java community years ago. ADF is very slow compared to other frameworks. With being slow I mean ADF pages run slow. The reason for this is extremely complex generated html and javascript. You can check this by opening up Firebug and inspecting the generated html...it looks like something from the 90s...Terrible. Not to be overly pedantic, but ADF pages have huge amounts of validation errors causing problems in making them run on all browsers. The architecture of ADF is, in my view, messy. Struts2 for example is a much cleaner framework which makes it very easy to integrate it with 3rd party libraries such jQuery, etc. Oracle advocates ADF as an MVC framework but frankly I failed to see the actual MVC architecture there. ADF uses its own javascript libraries, which are huge, practically impossible to modify, unoptimized and slow in comparison to others such as jQuery or Prototype. The emerging trends in J2EE are lightweight pluggable frameworks that are easily integrated with other tools such a Spring for managing dependencies, jQuery for scripting, CC for continuous integration. ADF is a heavy-weight tightly-integrated framework with other ORacle tools, which makes it very difficult to use it any other way than Oracle devised.

Not to mention the development tools that you are forced to used when developing ADF - the JDeveloper which is very buggy and crashes regularly. Developing in Eclipse is problematic, because ADF has numerous "specific" files which JDeveloper generates automatically.

All in all...ADF was a huge disappointment for us. We spent months messing with it, when finally our client decided the application was too slow and difficult for them to support it and the cancelled it altogether.

Based on my experience i can only say stay away from it. Choose one of the more supported and architecturally clean solutions such as Struts2 or Spring.

Solution 2

I have used JDeveloper 10 and 11, both with ADF, on two enterprise ADF projects for a prominent defense contractor. I agree that ADF is complex, but disagree that JDev crashes frequently, or that the pages are slow to render.

Now... why ADF? Read Oracle's synopsis below, stating that JDeveloper and ADF make Java EE development more accessible to "business" programmers. While this does not guarantee elegant programs, it does almost certainly guarantee that, when these developers get into trouble with ADF, they will probably be utterly lost and will have little idea how to open the hood and reach inside. Conversely, they would be lost even sooner trying to integrate the current J2EE open-source cornucopia.


THE SERMON Source: ADF Developer's guide (paraphrased)

"Since the early Java days in the late 1990's , the Jave enterprise platform has grown massively and today is used by a large community of developers. However, the developer community is not homogenous and includes developers who are not expert Java programmers, but are business developers who have core competencies in their industries. As the Java EE platform and community grows, the average programmer skill level is declining.

It's hard to imagine that there is a single developer who understands all aspects of the Java EE platform in depth. The problem to address in Java EE is to provide a technology that empowers developers to build cutting edge web and SOA app's without limiting their agility.

Existing Java frameworks such as Struts, Spring, JSF, EJB, GWT, etc are blankets pulled over areas of complexity that expose simpler controls to work with. Using frameworks, developers no longer work with the java core API's but instead interact with interfaces and services exposed by the framework.

Blah, blah, blah...

What seems a small problem for experienced java developers is another hurdle for business developers who are new to java and EE development. This type of developer may turn to a a single dev environment promising integration of all aspects of app development in a single technology chouice. Developers from a 4GL desktop dev background might be attracted by PLSQL, .NET, Adobe Flash.

An experienced Java developer might see this a a big mistake, but how would those developers know, unless Java too provides a single solution for them? The solution is an end-to-end framework which pulls another blanket over the technologies, one that combines different framewokrs and technologies into a single product that exposes visual and declarative development gestures as it's predominant programming methodology... ADF."

Solution 3

My perception of and experience with ADF is that it is a very solid and robust framework (unfortunately, the development tools are not.) I'm not sure there's much competition to it, at least, not from a single framework. ADF itself is really several different frameworks combined over the years into a mostly cohesive product. Now that Oracle owns Java, i really expect (hope) parts/much of ADF finds its way into Java EE-proper so we can maybe see alternative implementations and better development tools. If that were to happen, it'd pretty well solidify ADF's future (as long as Oracle doesn't screw the Java community in the meantime and push them to alternative VM platforms).

If you are already familiar with or want to work with Oracle(-related) products, ADF is what you want. Given the market penetration of Oracle, it's probably a reasonable bet that they'll remain dominant and your skills will remain marketable for years to come. Oracle is spending lots of money and acquiring lots of companies to try to own and retain the enterprise.

The SaaS question, to me, is a little harder to answer. While it does seem to be moving in that direction, it's not clear to me if it's mostly marketing's attempt to give it that push or if business-need is driving it. And there are lots of questions i don't really track such as business trust of the cloud for critical data and reliability.

Solution 4

I have been working with ADF since last 6 months, and i realise that ADF is made particularly large application with strong database integration. I haven't seen any other Framework which can provide you with so fast and easy development of database rich applications.

Yes i agree that it have some bugs, but still it works well if you know how to work with it.

Solution 5

Short answer:

  • You developing Enterpise solution, your product vendor is Oracle - ADF is a best choice
  • You indie developer, your solution is not for enterprise, you not going to use other products in the Oracle stack - ADF is not for you, look for another framework.

Long answer:

If you going to Enterprise, if your general product's stack vendor is Oracle. Your best choise is to go along with ADF. ADF becomes better with each major release. I've started using ADF since 11.1.1.2, had a look at 10.x and now using 12.1.3, while still supporting large enterprise applications on 11.1.1.6.

I see a huge improvement and its really hard to find another product that provide better integration and support for whole Oracle stack.

However, if you quite familiar with other framework or/and not going to use other Oracle products and/or your customers can't afford to pay quite a lot for ADF/Weblogic/DB/ECM etc.. - your best choise is to avoid ADF. Its good for large enterprise solutions.

Yes, in fact actually you can develop using free and limited version of ADF - Essentials, use other app server as tomcat or glassfish, but you'll be better off with the other framework. ADF Essentials is only kickstart to large enterprise world, not a solution for small lightweight application.

Share:
19,397

Related videos on Youtube

Walker
Author by

Walker

I work as a consultant in an IT company.

Updated on March 22, 2020

Comments

  • Walker
    Walker about 4 years

    This is a two part question:

    I would like to know where does Oracle ADF 11g stand as a framework to develop / deploy Web / Java EE Applications as compared to other frameworks. How much is Oracle ADF being used as a framework to Develop Web Applications. I am asking from a perspective that whether or not there are good job opportunities as an Oracle ADF Developer and what the future looks like for those holding Oracle ADF skills.

    Also as Oracle plans to use ADF as core technology for Fusion Applications, Is it good time to build Oracle ADF skills as a siebel developer? As the future Oracle CRM Applications like ERP, SCM will be based on ADF should developers start building ADF skills. Around when will customers start implementing those applications based on ADF. Will these be available On Premise or mostly On Demand in SaaS way.

  • Walker
    Walker about 13 years
    Thank you very much for sharing your experience.
  • Walker
    Walker about 13 years
    Thank you very much for sharing your experience.
  • nix
    nix about 13 years
    @vdest (i don't have rep to comment on that post), i sympathize with your issues about the development tools but it appears your complaints focus on UI aspects of ADF. But ADF encompasses far more than just building a UI/ADFFaces. But it's flexible enough to mix and match many other standard techniques and standards-based technologies. I suspect your problems were partly related to lack of training and mostly frustration with the tools rather than the framework itself. That said, your perception is not uncommon and represents a major hurdle for ADF.
  • hogni89
    hogni89 about 11 years
    I TOTALY disagree. I have been working with Oracle ADF for 16 months now. It's a pretty damn steep learners curve, but after a while the quick developement kick's in. I don't see any other framework doing all those things, that Oracle ADF manages. Shure, it's buggy, slow and JDeveloper isn't the best out there - but DAMN it's fast to swap some entity objects, create a new master-detail, and add valuable data to your application.
  • Jayram
    Jayram almost 11 years
    Question is different compared to your answer
  • Amaan Junaid
    Amaan Junaid almost 11 years
    For small size applications you can go for other Frameworks but when it comes to Large applications like ERP, then ADF is the best.
  • APC
    APC almost 11 years
    If you think ADF has a steep learning curve you should try EJB3 with Hibernate !
  • Celebes
    Celebes almost 10 years
    I TOTALLY agree. I am forced to develop in Oracle ADF right now - thinking about changing job because of it. It is the worst.
  • Sydney
    Sydney over 9 years
    Just want to add if you need help, you are all by yourself. The answers on OTN are most of the time wrong or not helpful because only 2 or 3 people really know how ADF works. Plus the time you gain on building your business services will be lost when building the UI which is the longest part of the development. Stay away !!!
  • asgs
    asgs almost 9 years
    I don't know anything (good or bad) about ADF, but the points on developers being business developers and the fact that the growth of JEE as a platform indicating that the knowledge of the developers is dwindling are very true. Thanks for this answer!
  • Dunken
    Dunken over 7 years
    from my experience with it ADF is the worst product by oracle
  • Dunken
    Dunken over 7 years
    from my exp i found that 11.1.1.6 is the less bugy one ,but if your automatic tool (ADF) have errors i prefer to go manual so i have no accidents xD