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.
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.
Fully supported by Oracle
Free with Oracle Database (include Oracle XE)
Skill Set Required
Skill Set Required for Customization
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
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.
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
- Web Browser
- Apache with mod_plsql/EPG web listener
- Application Express
- Meta Data
KEY FEATURES according to a Oracle APEX Specialist
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.
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.
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 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.
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
Session State Management
Logging & Monitoring
Integrating with Other Tools / Services
Migration to APEX
Direct Excel Conversion
MS Access Conversion Support
Oracle Forms Conversion Support
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.
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 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.