Jax Framework: AJAX Web Applications Made Easy

[Guest blog post by Ron Cremer, of the Jax Framework project.]

AJAX, the Best Thing since Sliced Bread

I love AJAX (Asynchronous JavaScript And XML). I’ve been using XmlHttpRequest for many years. It’s just really cool to be able to make a request to the server, possibly perform some processing on the server, get the response, and update part of the page — all without doing a page reload. And with modern desktop computers getting faster and JavaScript interpreters becoming more optimized, it makes perfect sense to offload the lion’s share of the user interface work to the client — the web browser.

AJAX doesn’t necessarily involve any XML at all. In fact, a lot of applications are using AJAX to return JSON (JavaScript Object Notation)-encoded results which are then processed on the client using — you guessed it — JavaScript.

jQuery, the Great Equalizer

Over the past couple of years, I’ve introduced myself to jQuery, probably the most popular client-side JavaScript framework library. There are tons of plug-ins for jQuery, and the jQuery UI library provides an excellent beginning set of widgets.

If you’re familiar with jQuery at all, you know that it has built-in support for AJAX requests, hiding all of the messy details associated with XmlHttpRequest. This makes life much easier for the AJAX web developer.

Model-View-Controller

Out of this interest in AJAX jQuery flowed a natural progression. I thought to myself, “Why not create an MVC framework like no other?” After all, most of the MVC (Model-View-Controller) frameworks out there today are following the legacy of Apache Struts, which uses a front controller and a routing configuration. This is a fine architecture, but it is a heavy price to pay for clean URLs. I generally prefer straight PHP scripts because they run fast, and they’re simple. I do like MVC though, and I believe it’s important to separate those three pieces of functionality and not mix things up between any of them. Introduce AJAX into the mix, some of the boundaries get shifted a bit. And that’s a good thing.

A Project is Born

Enter Jax Framework. Jax Framework is a combination of several open source projects — some authored and maintained by myself; some by others. Jax Framework is designed from the ground up to be AJAX-centered. The key technologies are jQuery, AJAX, and Data Access Objects (DAO). This thing makes developing robust, AJAX-centric web applications a snap. It includes support for expressing your database schema in XML or YAML, or it can read your schema straight from your database. It also supports designing Create/Retrieve/Update/Delete (CRUD) pages completely from YAML. It uses code generators to produce complete, working, AJAX-centric CRUD pages for you. Want to customize the pages further? You can create callback “hook” functions which will get called automatically when certain key events occur, allowing you complete control over the behavior of the CRUD pages. Need a page that’s not CRUD-centric, or is beyond the scope of the included code generators? Writing AJAX-centric CRUD pages is a snap with Jax Framework.

Jax Framework combines the following technologies to produce a fully functional AJAX framework:

  • jQuery, jQuery UI
  • jQuery Data Tables Plugin
  • jQuery Field Plugin
  • jQuery Color Box Plugin
  • DateJS
  • Phpdaogen
  • Spyc YAML Parser
  • Code Generators for Searches, Loaders, and CRUD Pages

Simplicity, Ease of Customization, Faster Development Cycle

One really nice thing about Jax Framework, is that it is an application-centric framework. Instead of requiring you to conform your app to a rigid directory structure, Jax Framework can be reasonably tailored to your preferred directory structure. This makes it much easier to get an application up and running, because the learning curve is small.

It’s Fast, Baby!

Jax Framework is optimized for speed and security. Instead of using a heavyweight Object-Relational Mapper (ORM) between the application and the database, Jax Framework makes use of Phpdaogen, a fast, efficient, thin layer which implements a derivative of the Data Access Object pattern.

Minimal Learning Curve

Getting started with Jax Framework is a snap. Just download the code, then follow the simple instructions in the INSTALL.txt.

Low-Stress License
Jax Framework is licensed under the BSD licen
se. Various third-party components are licensed under MIT, BSD and other very liberal open-source licenses. Basically, you are free to use it as you like; just maintain the copyright notices and give proper attribution where required. I am not a lawyer, so this does not constitute legal advice.

I Want it Now!

Jax Framework can be downloaded at the Jax Framework Project on SourceForge. Download it, give it a spin, and enjoy!

Tags: , ,

0 comments