Hi All,
Wish you all a very Happy New Year 2014. Hope this New Year brings You Joy & Happiness in your life.
Well, next going for
the topic, as everything meant for web development, I need to mention about the
Oracle's Product - ApEx (Application Express). I'll post my compilation here, which I got
collected from many resources.
"If you are
considering APEX to provide simple web based data entry and reporting, it’s
worth a look. And, the same If you are looking for an alternative to
.NET/JAVA/PHP for dynamic web content and rich UI interaction you have to look
elsewhere."
-- As it 's a bit dry topic, revealing the conclusion previously :)
ApEX - What's New in
Plate?
Browser Based Development
Rapidly and declaratively develop, deploy, and run
applications using only a web browser
Self Service Multi-Tenant
Enabled
Optionally enable self
service provisioning of Oracle Application Express workspaces
Develop Mobile
Applications
Declaratively define and develop mobile pages and
applications
Database-centric
Simple architecture that is
easy to manage, highly scalable, and runs everywhere Oracle runs
Portability
Seamlessly
move applications between environments within your corporate network and public
clouds
Packaged Applications
Productivity
and sample applications provide point solutions and learning opportunities
RESTful Web Services
Define
RESTful web service API's to provide access to your data
ApEx, An Intro
Ø A software development environment running inside the Oracle Database.
Ø Bundled along with Oracle Express Edition DB, Can be installed along
with any Oracle editions starting from 9.2, (from Oracle 11g, it comes as
pre-installed one).
Ø Have other names as the version changes : Flows, Oracle Platform,
Project Marvel, HTML DB & Application Express (APEX)
Popular
sites built using APEX are : AskTom (http://asktom.oracle.com),
Oracle's Metalink support site, Oracle's online store (http://oraclestore.oracle.com). (Why not the other commercial sites ;)))
(In)conveniences
Ø Large Installation Size.
Ø Application uses Primary keys can be at most two separate fields.
Ø Pages in APEX can display at most 200 items and forms cannot handle more
than 200 database items. So, application must be designed to work around this
limitation, for example by using multiple pages, tabular forms, or Ajax for
on-demand updates.
Ø APEX apps, can be created using Oracle's own tools and hosted only in an
Oracle database, making an implementer susceptible to vendor lock-in.
Very
few webhosts offer APEX (Oracle Database) on their hosting service package
(most of them offer PHP + MySQL). As a result, APEX applications are limited in
their choice of webhosts.
Ø Fast growing technology (?)
Ø Web-based
Ø Developers familiar with PL/SQL can use the same skill set when
developing Apex applications
Ø Easy to create mock-ups and Easy to deploy.
ØScalable (can be deployed to laptops, stand-alone servers, or Oracle RAC
installations)
Ø Strong and supportive user community (especially Oracle APEX forum)
Ø Basic support for group development
Ø Free hosting of demo applications provided by Oracle
Ø Apex applications can run on the free Oracle Express Edition (XE)
database
Ø Security Vulnerabilities are : The main classes of vulnerability that
affect APEX applications are: SQL injection, Cross-site
scripting (XSS), and Access Control.
APEX, an abstract
Ø As an application framework, it can be difficult to customize an
application outside of a set of expectations about how an APEX application is
supposed to operate. However, given that pages are built from customizable
templates, anything that is possible to achieve with HTML, CSS and Javascript is
also theoretically possible to achieve with APEX, although it requires more
work than using the built-in templates.
Under the hood
Ø Declarative Development : With Application Express, coding is
declarative. That means that no code is generated or compiled. You interact
with wizards and property sheets. Since the SQL language is used to define
reports and charts, some knowledge of SQL is helpful. If procedural logic is
needed, you can write snippets of code using PL/SQL. Declarative code yields
fewer differences between developers and this consistency makes Application
Express applications easy to maintain and manage.
Ø The Application Express engine renders applications in real time from data stored in database tables.
When you create or extend an application, Oracle Application Express creates or
modifies metadata. When the application runs, the Application Express engine
then displays the page or processes the page submission based on the metadata.
This means that multiple developers can edit the same page and changes can be
seen immediately when running the application. No compilation or deployment is
required.
Environment you work with
How
to do declarative programming in Oracle Application Express?
By Using the following
items,
Ø Forms :
Using wizards, you can easily create forms
on tables or on a stored procedure. When creating a form on a table, these
wizards provide automatic management of insert, update, and delete as well as
lost update detection. Once you create a form, you can rearrange form fields
(called form items) using a visual representation, enabling you to quickly
achieve the layout you want.
Ø Interactive Reports :
To create an interactive report,
developers either select a table or provide a SQL statement. They can then
restrict the capabilities available to end users (such as turning off download,
not allowing a column to be hidden) if desired. The end user is presented with
the report and the functionality is the same across all reports in the
application (for example, how to filter, highlight, subscribe and save custom
views).
Ø Session State : (Not Available )
Oracle Application Express transparently
manages session state in the database. There is no SET and GET, Oracle
Application Express handles it all for you. Application developers can access
session state using simple substitutions as well as standard SQL bind variable
syntax. Creating a process to clear session state for a page is as simple as a
few clicks of the mouse and specifying the desired page.
Components available for dev
Ø Application Builder - Database Applications
§ Contains
regions, for charts, reports, forms, text, calendar, web service references.
(used by developer)
Ø Application Builder – Websheets
§ Without
developer’s assitance, end users can play around with this web sheets, and
acquire the data, for which they needed.
Ø SQL Workshop
§ Tool
for managing the DB objects, provided options for export/import to/from
spreadsheets, text files, etc.
Ø RESTful Services
§ It
allows for the declarative specification of RESTful services mapped to SQL and
PL/SQL.
Ø Team Development
§ Used
to manage the life –cycle of an application provides various tasks, starting
from getting the feedback from the end-user and bug-tracking or reporting also
enabled.
Ø Administration
§ A
separate application development environment or the administration component
provides workspace management, including services (available schemas, space
requests, and preferences), users (both developers and end-users), and
workspace activity (page views, login attempts, and developer activity). Access
is limited to Oracle Application Express developers who have workspace
administration privileges.
Few more experiences in working with apex
Ø The Good
§ Incredibly easy to generate a respectable web app with basic CRUD data
entry, simple reporting and populate it with data.
§ If you are a DBA/PLSQl guru but have no experience with traditional web
development you’ll be well prepped to expose existing business logic in a web
app without stuffing around with HTML/CSS/JS if you don’t want to.
§ APEX support forum has a ton of info and is well staffed by APEX devs.
Ø The Bad
§ Not suitable for event driven dynamic web sites.
§ Web based GUI is not cool. Debugging is PAINFUL
§ Hide page and redirection logic, the program flow is both difficult to
visualize and no modular, separable and reusable code. OOP developers will be
not be impressed. It's possible to have well structured maintainable
applications with APEX but its harder than it should be. This is worlds away
from MVC.
§ PL/SQL is not and will never be the Next Big Thing in web
development. It won’t make you a better web developer. Mastering APEX is
really about PL/SQL. The portable set of skills you can take from APEX to other
web frameworks is minimal.
Conclusion
If
you are considering APEX to provide simple web based data entry and reporting,
it’s worth a look. And, the same If you are looking for an alternative to
.NET/JAVA/PHP for dynamic web content and rich UI interaction you have to look
elsewhere.
Happy Coding Reading