Presentation Layer Frame

- J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat
There are several common issues that you must consider as your develop your design. These issues can be categorized into specific areas of the design. The following table lists the common issues for each category where mistakes are most often made.

Category Common issues
Caching Caching volatile data.
Caching unencrypted sensitive data.
Incorrect choice of caching store.
Failing to choose a suitable caching mechanism for use in a Web farm.
Assuming that data will still be available in the cache – it may have expired and been removed.
Composition Failing to consider use of patterns and libraries that support dynamic layout and injection of views and presentation at runtime.
Using presentation components that have dependencies on support classes and services instead of considering patterns that support run-time dependency injection.
Failing to use the Publish/Subscribe pattern to support events between components.
Failing to properly decouple the application as separate modules that can be added easily.
Exception Management Failing to catch unhandled exceptions.
Failing to clean up resources and state after an exception occurs.
Revealing sensitive information to the end user.
Using exceptions to control application flow.
Catching exceptions you do not handle.
Using custom exceptions when not necessary.
Input Failing to design for intuitive use, or implementing overly complex interfaces.
Failing to design for accessibility.
Failing to design for different screen sizes and resolutions.
Failing to design for different device and input types, such as mobile devices, touch-screen, and pen and ink–enabled devices.
Layout Using an inappropriate layout style for Web pages.
Implementing an overly complex layout.
Failing to choose appropriate layout components and technologies.
Failing to adhere to accessibility and usability guidelines and standards.
Implementing an inappropriate workflow interface.
Failing to support localization and globalization.
Navigation Inconsistent navigation.
Duplication of logic to handle navigation events.
Using hard-coded navigation.
Failing to manage state with wizard navigation.
Presentation Entities Defining entities that are not necessary.
Failing to implement serialization when necessary.
Request Processing Blocking the UI during long-running requests.
Mixing processing and rendering logic.
Choosing an inappropriate request-handling pattern.
User Experience Displaying unhelpful error messages.
Lack of responsiveness.
Overly complex user interfaces.
Lack of user personalization.
Lack of user empowerment.
Designing inefficient user interfaces.
UI Components Creating custom components that are not necessary.
Failing to maintain state in the Model-View-Controller (MVC) pattern.
Choosing inappropriate UI components.
UI Process Components Implementing UI process components when not necessary.
Implementing the wrong design patterns.
Mixing business logic with UI process logic.
Mixing rendering logic with UI process logic.
Validation Failing to validate all input.
Failure to validate on the server for security concerns.
Failing to correctly handle validation errors.
Not identifying business rules that are appropriate for validation.
Failing to log validation failures.

Last edited Feb 2, 2009 at 5:19 PM by prashantbansode, version 1


No comments yet.