Intent
The goal of this project is to design a pattern that provides the so usual CRUD features, and if possible a little more. This paper provides a REST implementation, written with cocoon, that permits to have these features without any programming skills. E-CRUD stands for Extended CRUD features.
Motivation
Like all developers, I'm fed up to write same code again and again. So, a day, I decided to design a generic solution that I could use anywhere in any circumstances, whatever the programming language used.
E-CRUD stands for extended crud features that are :
- CRUD features
- + Search
We may include too :
- + Sort
- + Paginate
- + Report (Export, Print, ...)
Usage
This design pattern may be used in all your developments with editing facilities
Indeed, which application does not use E-CRUD feature ?
This design pattern answers the following use case :
First, I log in to the application (not part of the E-CRUD). Then, I arrive to the list screen where results from a query is displayed. Then, I may : 1. create a new record, or a new document 2. update an existing one 3. read a detail 4. search for another query If I choose 3, I arrive on the read screen. I may : 1. create a new record, or a new document 2. update the current one 3. delete the current one 4. go to the next or previous record 5. search for another records 6. go back to the list I may too : * sort data * go the 5th results page And life goes on...
Here is a state diagram that models a few translations between screens (states) :
Structure/Architecture
The E-CRUD processing may be decomposed in 3 steps :
list generation DesignPattern/ListGeneration
form generation DesignPattern/FormGeneration
form processing DesignPattern/FormProcessing
More information
This web page is available in html format on http://www.bluexml.org. You may have help on cocoon or bluexml mailing lists.