Wednesday, March 5, 2014

Oracle APEX Review

Overview
Oracle APEX = Oracle Application Express
Been around since 2004 under various names
Browser Based development and deployment
Think of it as a replacement for MS Access, but on the web and multi-user with an Oracle backend.
RAD tool for the Oracle Database; think Forms over data
Declaratively build web 2.0 applications
Leverage SQL and PL/SQL skills.
Multi-tenant Hosting
Departmental Solutions is focus
The Oracle store is built with APEX
Lots of options for Authentication or even custom
Built-in support to prevent URL tampering
20 canned themes or can create your own, including one for starting mobile.
Wizards to create forms including master detail, etc, but has basic layout, functionality, etc.
Create web services with wizard. A web service can be created from a region also.
Can add regions to a page and add most anything to the region including forms, etc.

Cost
Fully supported by Oracle
Free with Oracle Database (include Oracle XE)


Skill Set Required
PL/SQL
SQL

Skill Set Required for Customization
HTML
JavaScript
CSS


Advantages
Robust migration path for Oracle Forms application to APEX.
Very easy to generate data-driven CRUD data entry style applications that include simple reporting.
Migrating MS Access, or Excel files to a multi-user web environment
Similar to SharePoint lists such that you can create tables, and UI based on an Excel spreadsheet.
Free with Oracle database license
RAD or demo or POC
Built-in themes
Customization done using standards such as JavaScript, HTML, and CSS.


Disadvantages
Debugging can be painful. No breakpoints,
Business Logic written in PL/SQL. No layers such as a business layer and data access layer. SQL or stored procedures are referenced directly.
Web based development environment  feels a bit clumsy and slow.
Tightly bound to PL/SQL and Oracle.
You must work within the paradigm that is defined by APEX. If the application doesn't fit the paradigm the effort drastically increases. For instance javascript and html/css become the way of working.  This is a much different skillset. Alternatively, plug-ins can be created to extend APEX.
Migration path from MS Access to APEX is limited and works on with simple
The time you save in development time can be quickly lost in debugging, support, and customization.
No version control 


Architecture

  • Web Browser
  • Apache with mod_plsql/EPG web listener
  • Application Express
  • Meta Data



KEY FEATURES according to a Oracle APEX Specialist

FRAMEWORK
The APEX framework uses SQL and PL/SQL on the back-end, and HTML, CSS, and JavaScript for the user interface. SQL and PL/SQL are solid and proven languages and they allow APEX developers to leverage the features of the Oracle database. HTML, CSS, and JavaScript are industry standard components for building web applications.

SUPPORT FOR MULTIPLE AUTHENTICATION SCHEMES
APEX supports various authentication schemes such as LDAP, database, Single Sign on, Oracle Access Manager, custom, etc.  This makes it convenient to integrate with any existing applications and authentication systems.

DECLARATIVE MOBILE APPLICATION DEVELOPMENT
APEX is bundled with the popular jQuery mobile libraries and provides declarative support for building mobile applications. A special mobile theme provides APEX mobile applications with typical mobile features such as page transitions and gestures including swipe, pinch, and tap. Custom mobile themes can easily be created with the jQuery mobile theme roller.

RESPONSIVE DESIGN FOR OPTIMAL VIEWING ON DESKTOP, TABLET AND SMARTPHONES
APEX applications can be rendered on desktops, tablets, and smartphones by choosing a theme based on a responsive design. APEX includes a set of modern themes that are based on CSS3 and HTML5, and supports HTML5 charts, and HTML5 item types such as sliders and toggles.

PACKAGED APPLICATIONS – A FULL DEVELOPMENT SUITE
APEX is bundled with a suite of business productivity applications that can be freely used to assist with the management and control of projects. The suite contains applications for bug tracking, issue logs, checklist management, meeting minutes, group calendar, decision management, document management, and project management.

RESTFUL WEB SERVICES
APEX has built-in support for RESTful web services and allows applications to access data and services over the internet or intranet using standard web APIs. Database web services that implement SQL or PL/SQL can also be created. RESTful web services in APEX requires the APEX Listener, a J2EE based alternative for the Oracle HTTP server and mod_plsql.

DATABASE INTEGRATION
APEX is a component of the Oracle database and applications build with APEX can utilize or benefit from any feature of the database such as advanced security, RAC, Spatial, Analytics, Multimedia, XML DB, Job Scheduler, utility packages, etc.  APEX uses SQL and PLSQL to interact with the Oracle host database.

GLOBALIZATION SUPPORT
Applications build in APEX can run concurrently in different languages. Applications are developed in a primary language and can be mapped to a supported target language. Strings in the primary application are exported to a XML Localization Interchange File (XLIFF) where they are translated and imported and automatically used by the translated application.

TEAM DEVELOPMENT
Team development is a built-in feature that allows a group of developers, working on a single application, manage new features, to dos, bugs, and milestones. Users of an application can provide instant feedback which can then be classified as feature, to do, or bug.

EXTENSIBLE
The APEX development framework supports plugins that allow developers to extend the functionality of their applications with reusable custom or third-party extensions. APEX applications can also be extended with custom HTML, CSS, or JavaScript.

OTHER FEATURES
APEX is also stacked with other utilities and features that greatly improve developer productivity throughout the life of a project.

Version Control Support – Applications can be automatically exported into SQL script files where they can be included in a version control system. APEX provides an application exporter utility as well as an application splitter utility for splitting application into individual page scripts.

Error Handling – Developers can create a single error handling function that handles exception consistently across all pages in an application.

Oracle Forms Migration Tool – If Java/ADF is not for you, APEX is a viable option for converting Oracle Forms applications. APEX includes a forms migration tool to assist with the migration of Oracle Forms applications.

Accessibility – APEX applications have automatic built-in accessibility support. Applications can be rendered in high contrast mode or screen reader mode in order to meet accessibility requirements.       

Utility Reports – APEX has a comprehensive list of reports that provide real-time information on applications. Some of the more useful reports are:

  • Change History – List of changes made by developers
  • Advisor – Quality control review of an application
  • Database Object Dependencies – List of database objects used by an application
  • Debug Messages – List of debug messages generated by an application
  • Recently Updated Pages – List of pages that were recently updated


Features
Reports
Forms
Charts
Calendar
Templates
Navigation
Validations
Processes
Computations
Branches
Web Services
Email Services
Translation Services
Conditional Processing
Authentication
Authorization
Session State Management
Logging & Monitoring
Interactive Reports

Integrating with Other Tools / Services
SQL
PL/SQL
RAC
Spatial
OLAP
Flashback
Web Services
Text
Multimedia
Analytic Functions
Globalization
XML DB
eBusiness Suite


Migration to APEX
Direct Excel Conversion
MS Access Conversion Support
Oracle Forms Conversion Support

Security
Popular authentication supported as well as custom
Can hide columns based on user access level


Screenshots of the development environment





Built-in User Management



List of applications in the workspace




List of all pages in an application




Design a page




Options for creating a new application


Add a page




Create a Form




Sample User Interface
of the application created from a Spreadsheet
This is an interactive report. We can add charts, group by, add aggregate columns, filter, highlight, export to CSV, re-order columns, hide columns, save report, etc.






Conclusion
Oracle APEX may be a good choice depending on your needs. Here are some key criteria for this to be a good choice:

  • Oracle database is your database of choice
  • You know SQL and even better you know PL/SQL
  • Your application is essentially a CRUD or forms over data applications or data-centric application
  • You want to do RAD
  • You don't want to write lots of code
  • For customization you will need JavaScript and HTML/CSS knowledge
  • For writing Business logic and customizing the application you will need PL/SQL knowledge
  • To get the largest savings in time you will want to use the predefined forms and wizards, but this is not required.

It also means you are willing to give up some of the more common development practices

  • Having separate tiers for business logic and data access. Instead you must want your business logic to be in the database in packages.
  • IDE that runs on your pc
  • Robust debugger
  • Unit tests
  • Version control (Yes you can export files and them to version control, but it isn't quite the same thing in my opinion)
  • If you want to do OOP or MVC this is
  • Drag n drop files from your desktop into the IDE
  • Less control over files in your project

If the above criteria is okay with you then Oracle APEX is worth looking at. You get a lot of functionality. Similar to what you would get with SharePoint, MS Access, or meta-data tools, but with different strengths and weaknesses as noted above.


References:



6 comments:

Inyavic said...

Nice review on Oracle APEX. Thanks for the info, expecting more from you.

Joel R. Kallman said...

Thank you for authoring this blog post.

As with most blog posts, the information can become dated. That's understandable. But even at the time of this writing (March 2014), you seemed to include screen shots of APEX that were literally 10 years old. APEX has changed a lot over this period, and for anyone wishing to investigate how APEX has evolved, I encourage you to please go to https://apex.oracle.com and try it out for yourself. There is also a nice snapshot what is going on in the APEX community at https://apex.oracle.com/community.

Thanks once again.

Joel

Anonymous said...

Thank you for this information

Oracle Training in Chennai | Best oracle training institute in chennai

blackkutty said...

Much obliged to you for this data
Red Beard Press

Sugantha Raja said...

This is very great thinks. It was very comprehensive post and powerful concept. Thanks for your sharing with us. Keep it up..
Oracle Training in Chennai | Oracle Training Institutes in Chennai

Yogesh said...

Thanks a lot for sharing a valuable blog on oracle apex training. I was browsing through the internet looking for Oracle PPM Cloud and Oracle fusion applications and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject, you can find more information about Oracle Apex by attending apex oracle training. You can learn about interview questions by visiting fusion Interview Questions