Standard approach

  • Restating and enhancing information from lower layers
  • Many cross-cutting concerns in one place
  • Strong coupling among security, presentation, data and conditionals
  • Fragment duplication to capture different presentations and layouts
  • Error-prone and tedious work
  • Lots of tiny details that must reflect the underlying data
  • Every data model change impacts UI
  • Lack of reuse
  • Often must make a copy of a UI code
  • Hard to capture and adjust to runtime conditions
  • Painful and inefficient support for adaptive user interfaces
  • Time consuming and expensive development
  • Did we forget something?

AspectFaces approach

  • Aspect-driven approach
  • Inspection-based approach
  • Generative approach
  • No information duplication
  • Separate definitions of individual concerns
    • data-binding, presentations, layout, security, conditionals..
  • Runtime weaving process
  • Integration with existing code
  • Integration with third party
  • Direct support for adaptive user interfaces with minimized costs
  • Template extensions to Widgets
  • Full customization of the result
  • Automated client-side user input validation
  • Support for:
    • RichFaces, ICEFaces, PrimeFaces, Tomahawk, ADF, etc.
    • Custom form layouts
    • Generation profiles (read-only, edit, search)
    • Role base access control or third party access control (Drools, Picket link, Spring Security)
  • Reasonable development cost and time reduction
  • Java EE compatible
  • AspectFaces is not a scaffolding!
  • much more...