I have long had a fascination with table-driven RapidApplicationDevelopment for typical CrudScreens. Almost everyone agrees that creating CrudScreens over and over again can get a bit tedious after a while. It would be grand if one could copy the RDBMS schema into a DataDictionary, tweak it a bit, and instantly get usable CrudScreens with QueryByExample capabilities. However, the dream is a bit elusive because of the EightyTwentyRule. Here are some suggestions and ideas for improving the process.
- One approach to extending beyond the EightyTwentyRule is code generation. The generated code can be tweaked as needed. But CodeGenerationIsaDesignSmell.
- Access to screens and fields can potentially turn into a hairy set of many-to-many tables. For easier entry, perhaps one can use letter codes which are then mapped to roles or some other custom determination mechanism. For example, have 2 columns called "noAccess" and "readOnly". If the user is designated a letter that appears in one of these columns, then they are restricted accordingly. Letters are sometimes considered by self-documentation, but they are easy to enter and see. Needless to say, this needs some thinking.
- A ConstantTable would be very useful.
- Have a "fieldTypes" table to define the code for developer-defined column "types".
- Mappings to the DB schema are not always one-to-one. Event snippets may need a way to split and combine target column values.
-- top