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 :

We may include too :

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) : http://www.bluexml.org/static/images/sd-ecrud-dp.gif

Structure/Architecture

The E-CRUD processing may be decomposed in 3 steps :

http://www.bluexml.org/static/images/list-generation-dp.gif

http://www.bluexml.org/static/images/form-dp.gif

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.

JCKermagoret

DesignPattern/ECrud (last edited 2009-09-20 23:42:38 by localhost)