Metadata includes any information that affects application behavior. Your data schema (table and field structure and associated constraints) is metadata. Your rules for viewing, updating, deleting and creating a given record based on application data (e.g., the role of a given user for a particular location in the organization) is metadata.

Much of this data in most applications is directly connected with the User Interface, This mixing of metadata with application code is a recipe for confusion: are all aspects needed to implement a given business rule met? And then the mad scramble to look at all the places where it needed to be implemented.

No one tool can help you (or us -- we write these tools for ourselves) out of this complexity trap: the answer has to be implemented from the first step in designing data, and from there has to permeate every step of the application development process, up to and including that happy day when you are deploying an update to an application (which means it has been delivered, and is being maintained, hence the happiness).

The PSP4Lianja system does (or will do: we're in development of the Lianja version of our tools):

  • design the data (manually, or using a great Entity-Relationship Diagramming tool, xCase, through the PSP Metadata Manager and the xCase2Lianja integration tools.
  • create Referential Integrity triggers handling cascading deletes for entities and updates at the table and field level.
  • create and update the database and all related elements, through the PSP Schema Update Manager. This includes derivation from the data model (the schema) of Referential Integrity triggers for cascading deletes and updates, based on the relationship data entered into the model.
  • add additional metadata that controls data and UI actions through the PSP Metadata Manager (or through the xCase UI).
  • implement metadata-driven builders (part of the PSP Library) that populate control and section properties through the PSP Metadata Extension.
  • manage multi-dimensional user role security through the PSP Security Manager, at the page, section and field level, with permissions following the data.
  • when available (it's on the Lianja Roadmap), use the PSP Subclasses of UI objects as an option to using the PSP Metadata Extension builders. Note: because this will have no use in web apps until the Lianja Native Apps for Mobile are avalable, this will be a low-priority item.
  • define Business rules, and assign metadata entries to those business rules, seeing where a given rule is implemented over all layers of your application, using the PSP Business Rule Manager.
  • update deployed applications using the PSP Schema Update Manager.
  • integrate the PSP Security Manager in your application, exposing the functionality you want to be available to users.

This will take time to complete. The order listed is approximately the order of development. Most of the items reflect what we created for our VFP development environment (building on top of a commercial framework, as we are doing this time). The final piece, the Business Rule Manager, has been planned for a decade (by when VFP was decreed to be at a dead-end by Microsoft), waiting for the right time to be built. That time is here, now.