Agile design - customizable entity model, user interface and workflow
I want to achieve the following aspects in the software I create: 1. Custom Entity Model 2. Customizable User Interface 3. Customizable Workflow
I thought about an approach to this, I want you to consider this and make suggestions:
- Entity objects should be simple objects and only contain data
- Seperate entity model and DB schema using a framework (like NHibernate?). This will make it easy to modify entity objects.
- The business logic for retrieving / modifying entities should be narrow enough to be called as part of a workflow.
- Business objects should not contain any state and therefore will only contain static methods
- The workflow will make a decision based on the "state" of the object / entity for which the methods for the business object / objects are being used.
- The workflow must receive the processing results and then submit the business objects to the appropriate screen in the user interface.
-
The user interface screen should contain instructions on how to display the given entity / entites. Perhaps the user interface should be generated dynamically based on a set of user interface instructions. (e.g. XUL)
- What do you think of this approach?
- Suggest which existing frameworks (e.g. NHiberante, Window Workflow) fit into this model, so I won't waste time coding these frameworks
- Also suggested is there any asp.net framework that can generate dynamic asp.net ajax pages based on a set of UI instructions (like Mozilla XUL)?
I recently studied Apache Ofbiz and was impressed with its ability to customize most areas of the application: user interface, workflow, objects. Is there a similar (not necessarily ERP system) application developed in C # /. Net that offers a similar level of customization? I am looking for examples of applications developed in C # that are highly customizable in terms of UI, Workflow and Entity Model
source to share
I've built large dynamically generated forms prior to the workflow, but everything was done with internal code.
ORM won't help you with dynamic forms, as you have to specify tables for entity field mappings. Since in your case their dynamics, it doesn't make sense.
Here are two ways that I see how to store data:
1) EAV table (entity attribute value) - dynamic fields but a pain to report and not very efficient, but sometimes its the only way to go
2) Create DB tables on the fly as the user designs the forms
As for the GUI, check it out, havent used it yet. Microsoft responds to an environment like Ruby on Rails that generates scaffolding, ie. Graphical screens based on database table.
ASP.NET dynamic data
http://msdn.microsoft.com/en-us/library/cc488546.aspx
I didn't see anything you are looking for in another project.
You can look at the XForm engines, but they seem to be immature.
source to share
You can clarify the requirements.
Will the user of the application collect some form and define its workflow? Does every single object have a basic set of properties that is included?
You can dynamically generate asp.net code using "Page.Parse". Generate asp.net code using any method like XSLT and parse it into the page. Example here: http://www.codeproject.com/KB/XML/xmlxsltransformer.aspx
source to share