In my opinion there are two "must read" articles concerning Oracle APEX. The first, a very interesting overview of the APEX architecture, by Dr. Paul Dorsey at Dulcian Inc.: http://www.dulcian.com/papers/ODTUG/2009/2009_Dorsey_APEX.htm.
The main points to follow in this article:
– APEX is the spark between the PLSQL HTP package and the mod_plsql Apache module. APEX is stored entirely in the database and the web pages are generated using the HTP package and the mod_plsql Apache module. Simple as that!
– APEX does not currently have what we traditionaly call a model layer. A model layer is used to temporary store data between multiple web pages, as required by a stateless web application. The mode-view-controller stored the state of each web page and does a commit just "at the end", resulting in a insert/update/delete. APEX does not have this. The workaround is the items and collections. Not so frequently used, APEX collections (
apex_collection) will soon be a must for all complex applications with forms spreading across multiple pages.
The second article is a whitepaper about Hardening and Hacking Oracle XE. The minuses of APEX applications that use Oracle XE db are mainly found in the database. Oracle does not offer support for free products and patches are sparse and sometimes hard to get, if you don't have a metalink account. Proud of your XE database? Think again: it's missing most of the security patches applied to the SE versions…