In attempting to convince others to adopt ADF, a brief-and-to-the-point
discussion on the salient points of ADF are key. However care needs to
be given to focusing on the needs, concerns and skillsets of the
audience as much as the features to successful sell ADF &
JDeveloper. The following expresses bullet-point ideas to convince
Oracle Forms Programmers, Java programmers, and management to adopt ADF
& JDeveloper at their organisation.
How to convince "Oracle Forms programmers" to adopt ADF & JDeveloper
Following are ideas that can be used to convince Forms programmers to adopt ADF & JDeveloper:
- JDeveloper has a modern, sophisticated IDE
- The Forms IDE hasn’t really changed since 4.5, and lacks many of the
features available in JDeveloper for the modern programmer. JDeveloper
competes with modern tools such as Visual Studio, NetBeans etc, and
works inside a dedicated desktop based IDE unlike Apex using a clunky
web interface.
- JDeveloper and ADF promote
two approaches to system design: simple wizards & editors &
drag n drop, versus flexible coding - Forms users will be familiar
with the wizard approach to application design, with the possibility of
using the sophistication and flexibility of Java to break outside the
bounds of the wizards.
- JDeveloper and ADF promote two approaches to system design: simple declarative properties, versus flexible coding
- Forms and 100% Designer generation users will be familiar with
setting properties to change functionality rather than writing bug
prone programming. JDeveloper extends such declarative programming to
all levels of development including validation rules, queries, LOVs and
more.
- ADF has support for the familiar: runs, optimised and productive on top of an Oracle database
- JDeveloper might be a Java tool, yet Oracle is the software vendor,
and the first product it’s designed to work with is the Oracle
database. With JDeveloper you can leverage your existing SQL, PL/SQL
and Oracle database skills to develop web applications.
- ADF Faces utilises event/trigger based programming just like Forms
- A user clicks on a button. A piece of code fires in the background. A
familiar programming paradigm to any Forms programmer. A better
approach then trying to interrogate the HTTP request/response/submit
that other web frameworks promote.
- ADF recommends a complete end-to-end choice of JEE frameworks
- Beginners in JEE development feel paralysed by the choice of
frameworks, from modeling the database layer (eg. EJB, Hibernate etc)
through the UI layer (eg. JSP, JSF etc). For Forms programmers Oracle
recommends using ADF Business Components and ADF Faces RC, a complete
end-to-end preordained solution.
To quote Steve Muench "What really are the open-source alternatives to [ADF] that would allow
someone
who is a corporate enterprise application developer with skills using
4GL tools to build sophisticated Java EE applications? I would claim
the answer is ""None, really". With all of the other available choices
you need a very, very large amount of "roll your own" application
pattern implementations. This point is not to be underestimated."
- ADF is the way of the future, the way of the past
- Oracle is touting ADF as its solution for its Fusion future. But
that's just marketing some will say. Yet many Oracle users have already
used ADF’s offering in the past with Enterprise Manager, E-
Business Suite 12 etc proving ADF is being used today.
- OraFormsFaces – you don't need to rewrite your entire Oracle Forms application
- Thanks to Wilfred van der Deijl's OraFormsFaces efforts, ADF can be
integrated with Oracle Forms via OraFormsFaces, leveraging current IT
investments and, avoiding the "must rewrite all Forms in tech X" costly
myth.
How to convince "management" to adopt ADF & JDeveloper
Following are ideas that can be used to convince management to adopt ADF & JDeveloper:
- Lower uptake costs and higher programmer productivity over traditional JEE
- The road to JEE is littered with failed ORMs, UI frameworks and Java
programs that fail to meet user requirements thanks to the complexity
of JEE. ADF provides a large amount of declaratively configurable,
ready-made implementations of all of the most common application
building patterns you need to build an enterprise application on the
Java EE platform, without losing the ability to leverage all the
goodness of Java to extend the framework yourself when needed.
- ADF is built on industry standards, avoiding vendor lock in
- ADF is built on industry standards (Java, XML, and others), that can
run on any JEE application server, support building apps for any
SQL92-compliant database, and has source available for supported
customers.
- Supported by a major IT vendor
- Support for open source products is haphazard across the entire
software spectrum. With ADF when something goes wrong you can utilise
the size and breadth of Oracle Corporation's own Oracle Support to
provide bug workarounds and patches.
- Web 2.0 through ADF Faces RC
- Users are demanding more sophisticated web interfaces given their
experience with websites from organisation like Google. ADF Faces Rich
Client (RC) delivers a rich set of web components that take traditional
web-forms based applications to the Web 2.0 world.
- The ability to provide applications as a web-delivered service
- If moving from an Oracle Forms legacy system, JDeveloper and ADF
allows organisations to provide a web-delivered application, changing
their systems from an internally focused application, to a publically
available service.
- ADF is free if you already own OAS - For existing OAS licensed sites, ADF is free to deploy, leveraging your existing expenditure.
- Supports all phases of the application development lifecycle
- JDeveloper with provisions for visual and declarative application
development support, including database modeling, UML diagramming, page
flow design, ADF BC component design and coding, web page WSYWIG
editors, deployment, integrated testing-profiling tools, and so forth,
provides comprehensive design time support for all phases of the
application lifecycle that most corporate application developers need.
- Staff retention
- Are your Oracle Forms IT staff leaving after getting bored by having
to maintain your legacy systems? ADF provides a chance to work on a new
technology which is compelling for staff.
- Training courses are available from Oracle and other parties
- Detailed training courses are available allowing managers to plan a
skills transfer or upgrade to the JDeveloper & ADF platforms.
How to convince "Java programmers" to adopt ADF & JDeveloper
Following are ideas that can be used to convince Java programmers to adopt ADF & JDeveloper:
As Oracle ACE Directors
John Stegeman and
Chris Muir
say "No matter what logical arguments you put forth ..... they [Java
programmers] still believe ADF to be an unpalatable choice". It
basically means the Java crowd isn’t listening to logical points and
positive features of ADF & JDeveloper, you can argue until you’re
blue in the face, they won’t move because they’re not interested in
moving."
In addition
Steve Muench
says "My experience is that since the typical "Java EE" guru is not
able to put him/herself in the shoes of the "mere mortal" corporate
application developer, it's hard for them to appreciate perhaps some of
this added value [in JDeveloper and ADF]."
Finally programmers are protective of their IDEs. Forcing JDeveloper down their throats will be counter-productive.
As
such a different approach is needed to convince a Java/JEE programmer
on adopting Oracle's Java offerings. The approach needs to consider
what Java programmers appreciate. They like:
- Free & open source software
- Available source code
- Software that can be integrated into any Java IDE
- The ability to pick and choose technologies (eg. Hibernate, JSF, Spring, Struts etc)
- Technology that makes JEE development easier
In
addressing these, instead suggest to the Java/JEE programmers that they
adopt two open-source options that are spins off from ADF &
JDeveloper and Oracle, namely Eclipselink as a EJB3-JPA-Toplink
derivative, and Apache Trinidad as a JSF component set.
Toplink
was considered at one time a leading JEE ORM before purchased by
Oracle, and now that it has been open-sourced again as Eclipselink
opens this preferred ORM to the Java community again. Apache Trinidad
is an Oracle supported spin off of Oracle's ADF Faces JSF component set
and provides a large set of web components.
Another approach/opinion (Shay Shmeltzer)In
recent years Java developers are more open to the concept of frameworks
that simplify Java EE development. You can see this in the wide
adoption of Spring, and the emergence of a framework such as SEAM.
So
one way to "sell" ADF to core Java EE developers it to explain it's
value in a Java EE 5 world and draw parallels to other Java EE
frameworks - and then to explain where ADF goes beyond what other
frameworks offer. Specifically the fact that JPA/EJB 3.0 can be used
along with JSF in ADF is key here since those are two widely adopted
technologies in Java EE and ADF with JDeveloper can work
very nicely with them.
So
assuming that using JSF and EJB/JPA are acceptable approaches the next
step is to look at what is missing from the core specs.
On the JSF
View front the main missing part is a comprehansive set of Ajax enabled
components - this is exactly where ADF Faces Rich Client comes into
play. It is similar in concepts to other JSF component framework - but
offer a more complete set of components when compared to iceFaces,
RichFaces, or backbase for example.
On the JSF Controller front
some of the common missing things are a conversation scope,
bookmarking, and method invocations. Different framework out there try
to address those aspects Shale and SEAM are two exampes and ADF Task
flows is another example of a JSF based framework that solves those
common needs. Again the ADF Controller is more complete then the other
frameworks and doesn't force you to use a BPM engine to get the method
invocation working. The reusability aspect of the task-flows inside
other pages is another unique aspect.
The next missing piece is
binding of JSF UI to Business Services in a declarative way - this is a
need that is recognized by the Java EE audience lately as evident by
WebBeans and SEAM. Again ADF Model layer is providing a solution for
this which is more comprehansive (not just JSF and not juse EJB) and
has better tooling support.
At the end of the day when you
compare ADF to other Java frameworks the two key differentiator is the
completeness and the coverage of the full MVC set of layers and the
tooling provided for the framework which deliver a different
development approach.
--------------
In addition it's
also important to convince Java programmers where ADF & JDeveloper
lie in the marketplace. The following points may help convince Java
programmers to adopt ADF & JDeveloper:
- ADF is built on industry standards, avoiding vendor lock in - (See the same point in the "How to convince management section")
- Leading JSR-227 ORM to UI layer binding implementation
- Oracle's was a lead implementer of the JSR-227 binding layer to tie
JEE ORMs and UI layer together, allowing programmers to focus on a
single binding layer API rather than calling disparate ORM and UI layer
APIs.
- The ooh-ah Ruby on Rails experience has been available with JDeveloper for some time
- Ruby on Rails, an area many Java programmers have jumped too, one of
its key strengths is it demonstrates generated web application based on
database tables. As John Stegeman notes
that this is nothing new for JDeveloper and ADF which has had this
ability for sometime, with a real IDE with wizards and editors to
implement this, rather than a command-line tool.
Additional reading
Contributors
The above information was summarised from the following
ADF Methodology Google Group thread "Why (or when to) adopt ADF":
Chris Muir would like to thank all the contributors to that thread.