- ExoGraph is a clean abstration layer that can sit on top of any ORM and exposes the domain model of your application. ExoGraph supports robust eventing that allows subscribers to respond to changes in the underlying model or manipulate the model itself - without having a direct dependency on the model classes or the underlying ORM you choose to use. Most users of Exo will never need to understand how ExoGraph works, but its model-centric event-driven approach enables innovations like ExoRule and ExoWeb.
- ExoRule builds on the fabulous eventing provided by ExoGraph and allows you to create rules using standard .NET code that run automatically by responding to changes in your domain model. This automatic rule chaining logic is normally the stuff of commercial rule engines, but ExoRule makes this both easy and free for all developers. Specifically, rules can run during object initialization, as a result of changes to property paths, when properties are accessed (calculated properties), or even due to domain events that are explicitly raised. Additionally, ExoRule allows you to attach errors or warnings to entities in your model, which in turn can then immediately be reflected in the UI of your applications.
The following diagram shows how each of these libraries fit in with your existing technology stack. ExoGraph supports any .NET ORM via type providers. ExoRule supports defining rich rules for any domain model via ExoGraph eventing. ExoWeb supports any .NET web technology (WebForms, MVC, etc.), operating as a simple handler to process requests in parallel with you existing web application logic.
Use Exo where it make sense--for those complicated user experiences that just require crazy amounts of user interaction and complex business rules. Exo makes impossible -> possible, and difficult -> easy.
The wonderful Exo Team at VC3