[http://codebetter.com/blogs/jeremy.miller/archive/tags/Build+your+own+CAB/default.aspx]
UI is quite important, you should not neglect it
- important: make a big deal of care to protect the system from garbage input.
- easy to change:many changes more frequently then requirement
- takes time:event driven model, lots of external dependence; hard for testing, lots of bugs and take time to fix.
So it worths the time to build good UI: testable, splits up the concerns and responsibilities of UI.
So many responsibilities that UI takes:
- presentation to user
- catch user event
- input, authentication validation and business rule
- customization
- UI navigation and synchronization between UI widget and business object
- interaction with other parts of application