This article is about APEX – some of my initial impressions from the pending (deep into 2010) APEX 4.0 release. And the title is in no way meant to be ironic, contrary perhaps to popular belief. Yesterday I saw a presentation/demonstration by Mike Hichwa and David Peake from the APEX team and it provided me a with a number of new and useful insights. And I want to state clearly: I was impressed by some of the information about and demonstration of APEX.
The Enterprise Cloud (for Application Development)
I was at JavaOne earlier this year and one Sun’s proud announcements there was ‘application development in the cloud’ with Zembly. And while that is nice, it really is a first attempt that does not even come close at what APEX has been doing for quite some time now: provide a cloud based shared development environment, centrally managed and fully accessible through a browser.
Through APEX, the DBA / IT Department can create an environment that can be administrated centrally – through the normal procedures for back up and recovery, software upgrade and patching, security and availability. The creation of application can be done via the browser by any authorized developer in any department across the company. What has been going on for years through Excel and Access – departmental applications, developed out of sight and control of the IT department – can now be done in more organized fashion: local development and usage, central administraton. Like a cloud service, within the enterprise.
Oracle offers http://apex.oracle.com – a internet based cloud service for developing demo/sample/trial/R&D Style applications. It contains close to 10,000 workspaces, some 2700 application with a total number of 3.8 Milion page views per week, from 3000+ active users. This has been running for several years now on commodity hardware, bought for just under $4000 in 2007: 16GB RAM, Dell PowerEdge 1950 2x dual core XESn , 2.33 GHz.
While apex.oracle.com is not intended for production use, over 12 companies provide APEX hosting services.
The APEX community is huge and thriving. Very active on the OTN forum, the blogs and at conferences. Very developer driven – no high brow architects involved (they only frown at this two-tier highly proprietary, non-standard, moderately scalable and secure architecture), quite pragmatic. Over 250.000 developers are listed as APEX developers; the APEX forum is the third largest on OTN (after SQL & PL/SQL and Database General, but well ahead of JDeveloper/ADF).
For me usually ADF is a more logical choice for developing web applications. I have seen a number of featues that are part of APEX out of the box, for example for data presented in tables that are really quite nice. Some of them maybe available out of the box in ADF as well – but several certainly are not and it would be nice to try to implement them in ADF in generic, reusable fashion. And perhaps the ADF development team can pick up some of the ideas from APEX to add to the framework proper.
- user editable calculation (add calculated column)
- control break + aggregates
- user defined charts (select what to base chart on)
- bulk change (set value in multiple rows at once)
- search/replace in data records
- derive selectlist from actual current values (like Excel does)
- tagging and search on tags
- notes and search
- notifications (schedules reporting of record that comply with specific conditions)
- integrated flashback ("timemachine")
Some of these features are available with ADF from WebCenter Services (such as notes, tagging)
Some interesting new APEX 4.0 features
- Websheets – on line Excel-like – as Mike and David put it :right now: APEX is easy for good developers; we try to make it easy for Excel en Access users
- team development – project management, task tracking,
- Declarative tab forms
- Support for REST web services
- Improved charting (including Gantt Charts and Maps), interactive reports
- Dynamic action – declarative way for defining client trigger/actions (validation, calculate/derive,…)
- Concept of plugins: easily create and (re)use new components
- Integration of jQuery
- Combo box (editable select list)
- JS (Rich) Date picker
- Resizable textareas
An interesting concept is the ‘feedback on application’ feature that allows any end user to provide feedback on a page or feature in the APEX application. Such feedback can be forwarded into the Team Development side of things where it can be processed as enhancement request/feature that is composed of several tasks.