What is it?
Instances can be fetched from the server using a simple querying interface, or they can be created on the client. Changes to the model are detected - including property value changes, list modification, and creating and deleting objects. These changes can trigger rules, drive UI behavior, and are replayed on the server with each asynchronous request.
Rules & Validation
Properties on the model can be calculated based on the values of other properties. When changes occur to those properties, the calculated value is automatically updated. It is also possible to define arbitrary rule logic that is triggered by property changes.
Characteristics of the server-side model can enable some validation automatically based on type metadata. These validation rules react to user input in order to provide immediate feedback, which can be styled to your liking. Information about these issues is embedded in the model until resolved.
The ExoWeb client model maintains a set of events that have occurred, whether on the client or the server. These events are replayed on the server as needed, which allows for the client and server models to be kept in sync. Also, operations can easily be moved to the client to improve performance but can remain on the server when this is not appropriate or practical.