Design Overview - Joey AJAX Client
- Not working on this! - e-mail firstname.lastname@example.org
An aspect oriented design ( as a goal ) where CakePHP produces simplified XHTML data that is meaningful as an user interface. This interface shall be used by the Advanced Client - it could be described as an User Agent Interface. As we move forward, CakePHP content should be as semantic as possible, but at the same time we are to leave it as an 'old school' web interface, keeping its static links and forms as well. This approach should put us in a condition where the aspect of navigation and form interfaces is described separated from the Advanced AJAX navigation layer. This XHTML-based static structure should represent the navigational structure of the application. This should lead us to simplify maintenance in the CakePHP ( with simple and usable test pages ), automate tests with other tools that deals with traditional HTML page and forms. We may also simplify the usage other advanced ajax toolkit solutions.
Wishlist Architectural Aspects
- _Accessibility for Navigation_ - Back and Forward buttons working via iframe history. Use it possibly for the main flows. We need to check if the mixture of Back/Forward working and not working conditions is a good or bad thing for the end-user. Since it is a AJAX UI, we may have some high very specific operations that are not to be registered in this iframe history;
- _Localization_ - Strings binding ( probably kicked with the initial document ) and additional flow-based sentences to be loaded in JSON or other XML binding approach;
- _Accessibility for Usage_ - Check the story;
- _Performance_ - build aspect. Check the Dojo build approach, and how to package partial Dojo components;
- _Performance_ - Dojo ShrinkSafe;
Development Framework Considerations
- To keep a simplified old school XHTML interface so that the Web site can be tested and also used from a testing user agent perspective;
- To allow multiple variations and User Interface intepretations to the end-user UI, for example a future version of the application to have a stack of options and possibly layered user interface wrappers - for example a a mode to add accessibility customizations, for example zoom control, color manipulation to the theme, and more;
- Have the CakePHP end to be completible with multiple AJAX client toolkits, and keep this compatibility layer via XHTML core User Interface layer - also referenced here as the semantic layer;
- Log execution of a test case end-user flow, via dumping all the XHTML responses and REST queries.