CodeFluent Entities Aspects allow you to modify and extend the meta-model built by CodeFluent Entities before production. Aspects are platform independent, external to your model and therefore reusable in future developments. Moreover since aspects intervene upstream generation, they have an application-wide, cross-layer scope.
Aspects (formerly known as CodeFluent patterns) introduce a new notion allowing you to plug into this process. Using aspects you'll be able to work on this in-memory representation of the model, before anything is produced, and dynamically add/remove/modify elements in your model: this is what we call dynamic modeling. In a nutshell, in CodeFluent Entities, dynamic modeling is materialized as aspects and it allows developers to inject extra-behaviors in models.
A set of aspects are shipped out-of-the-box along with the product: the official aspects. Those aspects are shipped in the form of XML files and placed in the Patterns folder of your installation directory. Among them, you'll find aspects allowing developers to add data localization or Google-like text search to their application by importing them in their model. Likewise, you can create your own custom aspects in order to add specific behaviors which you'd like to industrialize.
Official Aspects are:
- The Localization Aspect: provides developers a way to easily support data localization on an entity,
- The TextSearch Aspect: provides developers a way to add Google-like text search in their application,
- The HierarchyDeepLoad Aspect: provides developers a way to load a complete inheritance hierarchy using a single server call,
- The AssociationManage Aspect: adds methods to entity classes allowing developers to manipulate many-to-many relations without loading the corresponding collection,
- The AutoFormattable Aspect: adds enhanced formatting capabilities to entity classes.