Crud Patterns

Typical patterns and/or design issues to addrress regarding CrudScreens (typical editing, search, and report forms and tools).

Cross-cutting Concerns


Adobe is expending their Adobe Forms products with more validation and database connectivity. You can tie it to a scripting language, but it has many options that can be controlled by menus and dialog boxes without coding, and seems fairly extensive. For example, you can set input masks that differ from display mask and the database's view mask for the same field. (Masks are similar to RegExp's.)

PageAnchor Integration-Complexity

There is a meta-design similarity between CRUD frameworks and WCMS, and perhaps email/calendar/planners/project-tracker suites. If you make a "complete" list of typically requested features, the list will total roughly 40 to 100 feature items, depending on partitioning choices. By themselves, most of these features seem straight-forward conceptually and would be relatively easy to create a demo app that implements them. However, the hard part is the integration of them all: making them all play nice together. Most cannot be simply tacked on in isolation. If you add them incrementally, the effort and risk is non-linear because it impacts more features, which themselves grow more complex in order to integrate.

Generally each new feature will impact roughly 1/3 of existing features. Thus, if you have 12 features already, then adding #13 will impact about 4 features. If you have 21 features already, then adding #22 will impact roughly 7 features, which is about twice the effort of doing it when you had 10 features. It's a form of the NetworkEffect. Further, the coding to each feature grows over time, so modifying a given feature costs more as the project matures. -t

See Also: TheRadBottleneck, CreateReadUpdateDelete, FormValidation, FunctionallyCompleteCrudGenerator, StaffingEconomicsVersusTheoreticalElegance, CampusExample

CategoryInteractionDesign, CategoryBusinessDomain

EditText of this page (last edited October 8, 2014) or FindPage with title or text search