|
The goal of the library is to benefit from the stateful component model used in desktop applications APIs, applied to web development, instead of the traditional Model � view � controller (MVC) model. Rather than using MVC at the level of a page, MVC is pushed to the level of individual components. While the library uses a desktop application development model, it does support web-specific features including pretty URLs and browser history navigation support. A unique feature of the library is its abstraction layer of the browser rendering model. The library uses AJAX for communicating with AJAX capable browsers, while using plain HTML form post-backs for other user agents. Using a progressive bootstrap method, the user interface is initially rendered as plain HTML, and for AJAX-capable browsers, it is automatically upgraded to use AJAX for increased interactivity. In this way, it is the only server-side framework that implements progressive enhancement automatically, and the only AJAX framework with Search Engine Optimization qualities. Because of the popularity of C/C++ in embedded system environments, the library is often used in such devices, and has been highly optimized for performance as a consequence. |