One of the primary aims of the ULC architecture is to reduce round trips between the server and the UI Engine. ULC widgets provide many services that significantly reduce the need for traffic between the server and the client. Validators and Formatters allow widgets to validate and display input data directly in the UI Engine. Enablers allow widgets to be enabled or disabled based on the state of another widget. For example a button could be enabled when a list has a selection or a button could be enabled when the user has modified a form that needs to be committed to the server.
In addition Enablers can be concatenated together to allow any arbitrary combination of enablers to be linked together using simple Boolean logic. Widgets that accept user input have a configurable notification policy allowing the developer to choose when changes in the UI are committed to the server. For example when inputting data within a form, the developer could choose to change the notification policy to allow data in all input fields to be entered before the changes are committed to the server.
Widgets that broadcast events to the server have been enhanced to support optional events. Events that have no listeners on the server side are not sent to the server further reducing network traffic.Dynamic user interfaces are supported using a novel ULC Page book concept allowing multiple sub-forms to be automatically displayed by the UI Engine without requiring round trips to the server.