Tag Archives: Oracle ADF

One Visualization is Worth a Thousand Rows

One of the under-utilized killer features of Oracle ADF is the Data Visualization (DVT) compontents.

It is easy to build bad visualizations as Oracle themselves show in the documentation:

However, the commercial application that Oracle build with ADF (Fusion Applications, Enterprise Manager) obviously have benefited from the skills of professional visualization designers. These products use of visualizations well.

You application could probably benefit from some visualizations, too. Check out Status Meter and LED gauges as well as Spark charts. All of these are very compact and can fit into table rows, making a lot more information available to your users.

 

I covered ADF Visualizations in the latest issue of the ADF Mastery Newsletter. Sign up here for regular tips on how to learn and make the most of Oracle ADF: http://eepurl.com/0J1a1

Matching Your Database to Your Application

I’ve just been troubleshooting an ADF application that ran fine on one environment and not on another. After some searching, I discovered that a script had not been run on one of the environments so the database was different.

That reminded me of a simple database check that I often include in my applications: I simply calculate a hash value of all tables and views with an SQL statement like this:

select sum(
ora_hash(table_name)
+ ora_hash(column_name)
+ ora_hash(data_type)
+ ora_hash(data_length)
+ ora_hash(data_precision)
+ ora_hash(data_scale)
)
from   user_tab_columns
where table_name != 'PS_TXN';

I’m explicitly exclusing the PS_TXN table, because ADF might create this table to store application module passivations.

Every time the database changes, I calculate this simple checksum and store it in a constant in my application. At a central place in my application, I can then run the SQL and compare to the constant. If they don’t match, I’ll write a warning to the log. I don’t want the application to fail if my database does not match, but I do want to get a hint to check the database structure.

I place this check in the prepareSession() method in the Impl class for my root application module(s).

 

If you are working with ADF Development, I encourage you to sign up for my free ADF Mastery newsletter.

ADF 12.2.1 New Features

Oracle has just updated their ADF Statement of Direction, announcing that ADF 12.2.1 will be out in 2015. Here is what they are promising for this release:

The Next Version of Oracle ADF

Oracle is planning to deliver the next version of Oracle ADF – 12.2.1 – as part of the next release of Oracle Fusion Middleware 12.2.1 in 2015. Some of the focus areas for this version include:

  • REST and JSON Support – including enhancement to the REST data control as well as the ability to publish business logic developed with Oracle ADF Business Components through REST interfaces.
  • Responsive UI Support – further enhancements to Oracle ADF to simplify and enhance support for responsive UI design and implementation.
  • Additional Oracle ADF Faces Components – new components, as well as enhancements to existing components, that further enrich the set of JSF components provided with Oracle ADF
  • JDK 8 support – aligning with the latest version of Java to support new language capabilities

I look forward to better support for REST & JSON – it will be a nice improvement if we can publish our business components as REST web services to consume in e.g. Mobile Application Framework.

Hardware is Cheap, Developers are Expensive

When advising customers on ADF projects, I often find development environments where many or all developers are working against the same database. That introduces a hard dependency between different parts of the project – if one developer deploys a defective PL/SQL package to the database, nobody else can run the application.

This approach made sense back when hardware was expensive and databases had to be managed by high priests in glass-walled, climate-controlled rooms. Today, you can buy a development machine with a quad-core i7, 16GB of RAM and a 256GB SSD disk for $1,200. This machine can easily run an enterprise-class database, application server and IDE. Additionally, virtualization software allows you to build, distribute, and reset environments easily.

It doesn’t make sense to have expensive developers work on old hardware. As soon as they have lost a day due to an inflexible development environment, you have lost more than the cost of a proper development laptop.

Don’t waste expensive developer time because you’re too cheap to buy proper hardware.

The Future of Oracle ADF

At Oracle OpenWorld, there was a lot of Oracle ADF material. I presented on Oracle ADF Bindings as part of the well-attended ADF track on User Group Sunday, and Oracle also gave some very interesting presentations on new and coming features in ADF. For example there is now an ADF component that you can use to visualize any network of nodes and edges.

But what struck me more was the fact that when Oracle buys a cloud-based offering, they tell them to re-develop the stuff in Oracle ADF. Yes, that’s right – you will be seeing Taleo, RightNow, CPQ and other recent acquisitions move to ADF.

The reason is of course that all of Oracle’s cloud offerings must run on the Oracle cloud in a unified infrastructure, and ADF is part of that. The future of ADF is bright.

Mastering Oracle ADF Bindings: Advanced Techniques

My Oracle OpenWorld presentation “Mastering Oracle ADF Bindings: Advanced Techniques” is now available for download from the OpenWorld web site. In this presentation, I talk about

  • Reading the Bindings tab
  • Bindings in the ADF lifecycle
  • Working programmatically with bindings
  • Getting the binding from a component
  • Working with dynamic bindings
  • Creating a binding programmatically

If you are interested in creating bindings programmatically, you should read Eugene Fedorenko’s blog post on this. He also makes an example available for download.

UKOUG Tech 14 in Liverpool

I’ll be going to the UKOUG Tech 14 conference in Liverpool in December to give one of my favorite presentations: “APEX or ADF? From Requirements to Tool Choice”. I’m also leading the Development Tools roundtable, which is always lively at the UKOUG conference. If you want to discuss your options as a developer in the Oracle world, UKOUG Tech 14 is the place to be.

APEX or ADF? From Requirements to Tool Choice
APEX or ADF? From Requirements to Tool Choice

TECH14_ResourcePk_IS_v1

The Long Tail of Application Usage

A long tail is a distribution of some data point where a few data point have a high value, but most of the data points have a much lower value. When sorting the data points by value, there will be a large “head” and a long “tail”.

Application usage displays the “long tail” characteristic: A few screens are used much more than others.

Long tail of app usage

If you are re-developing your application, for example moving from Oracle Forms to ADF, focus on the head – the 10% of the application that is used 90% of the time.

For more graphics and discussions like this, subscribe to my weekly Technology That Fits newsletter.

New publication for Oracle professionals

OTech Magazine Winter 2014If you are working with Oracle software as a developer, DBA or application server administrator, you should read the new OTech Magazine.

The Winter 2014 issue is almost a book: 136 pages of high-quality technology articles by some of the leading experts in their respective fields.  My contribution is the article “From Requirements to Tool Choice” about how to choose the right Oracle development tools (ADF, APEX, or Forms).

And did I mention it was free? Head over to OTech Magazine and feed your brain.