title: Flexible design - customizable entity model, UI and workflow
body: <p>I want to achieve the following aspects in the software I am building:
  1. Customizable entity model
  2. Customizable UI
  3. Customizable workflow</p>
  
  <p>I have thought about an approach to achieve this, I want you to review this and make suggestions:</p>
  
  <ol>
  <li>Entity objects should be plain objects and will hold just data</li>
  <li>Separate Entity model and DB Schema by using an framework (like NHibernate?). This will allow easy modification of entity objects.</li>
  <li>Business logic to fetch/modify entities has to be granular enough so that they can be invoked as part of the workflow. </li>
  <li>Business objects should not hold any state, and hence will contain only static methods</li>
  <li>The workflow will decide depending upon the "state" of an entity/entities which methods on business object/objects to invoke.</li>
  <li>The workflow should obtain the results of the processing and then pass on the business objects to the appropriate UI screen.</li>
  <li><p>The UI screen has to contain instructions about how to display a given entity/entites. Possibly the UI has to be generated dynamically based on a set of UI instructions. (like XUL)</p>
  
  <ul>
  <li>What do you think about this approach?</li>
  <li>Suggest which existing frameworks (like NHiberante, Window Workflow) fit into this model, so that I will not spend time on coding these frameworks</li>
  <li>Also suggest is there any asp.net framework that can generate dynamic asp.net ajax pages based on a set of UI instructions (like Mozilla XUL)?   </li>
  </ul></li>
  </ol>
  
  <p>I have recently been exploring Apache Ofbiz and was impressed by its ability to customize most areas of the application: UI, workflow, entities. Is there any similar (not necessarily an ERP system) application developed in C#/.Net which 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</p>