Ajax Client

From ADempiere
Revision as of 23:31, 25 June 2007 by Sendy (Talk) (Team Members)

Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Architecture

Thick Javascript Client

Rendering of UI will be done on the client side using advance javascript GUI framework like Dojo, Qooxdoo or GWT. The server-side is exposed to the javascript client as RESTian or JSON-RPC endpoint to served and process dynamic data. The primary motivation of this approach is to produce richer, more performant UI experience than the Thin Client. There should be minimum changes required on the current ADempiere core.

Thin Javascript Client

Another alternative is a server side model where the application code is mainly running on the serverside and smartly refreshing the client by using AJAX. This could be the easier path as more code from the current Swing client can be reused.

Dynamic Data Format

JSON instead of XML is use as it produces more compact representation , it is blazingly fast to parse on a client — essentially simple JavaScript eval() would do, and it is very simple to parse on a server too.

Transport

  • XMLHttp
The XMLHttp transport is the default transport. It works well in most cases, but it cannot transfer files.
  • IFrame
The IFrame I/O transport is useful because it can upload files to the server.

Proof Of Concept

A prototype should be build as a POC. The prototype should demonstrate the following features:

  • Login
  • Tree Menu
    • Standard tree navigation support
    • Find menu item
  • Application window
    • Standard CRUD operations
    • Grid and form mode
  • Form window
  • Process window
    • Process parameter
    • Execution of long running process
  • Report window
    • Report parameter
    • Preview of report

Schedule

Code to be submitted into contributions area. Current plan is to build an alpha release to demonstrate at the ADempiere Europe Conference this May.

Discussions

Resource

Team Members