This project is read-only.

Rich Client Scenarios Frame

- J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat


  • Business Layer
  • Communication
  • Composition
  • Configuration Management
  • Data Services
  • Exception Management
  • Maintainability
  • Presentation
  • Security
  • State Management
  • Workflow


Category Scenarios
Business Layer Decide how to update business rules on the client
Design for business event management
Design for message correlation and context management
Decide how to represent business entities
Decide how to represent business rules
Determine how to expose business functionality to your presentation layer
Design service for interoperability
Determine how to manage your metadata
Design for service request dispatching
Design for loosely coupled and/or tightly coupled components based on system requirements
Communication Determine your communication scenarios
Determine your communication strategy
Design for asynchronous communication and threading
Design for offline or partly connected scenarios
Decide on data-centric or service oriented design
Design for communication dependencies (offline)
Determine your communication technology
Determine how to secure your communication
Design for communicating large data sets
Composition Determine what technologies to use (office, IE, winforms, etc)
Determine your composition strategy (which tech’s will subsume)
Determine a versioning mechanism to track components
Determine auto-update for composite scenario
Configuration Management Determine how to manage configuration information
Determine how to secure configuration information
Determine which options will be in configuration files vs. code
Data Services Design for persistence of objects in a Relational DB
Design for data-access concurrency while offline
Determine your concurrency strategy for server-side conflicts (pessimistic, optimistic)
Determine your service access strategy (synchronous/asynchronous)
Design for batch processing
Design for service request dispatching
Design for a domain model
Design for a database driven model
Decide between a domain and a database driven model
Design for management of large data sets
Exception Management Determine a strategy for exception handling
Determine exceptions your application will throw
Determine error notification strategy for the user
Determine if you need custom exceptions
Design exception logging
Maintainability Determine your install deployment mechanism
Determine your update deployment mechanism
Design for auto-update
Design for reduced dependencies
Design logging with maintainability in mind
Determine your versioning strategy
Determine your library installation strategy
Presentation Determine your user presentation requirements
Design for management of large data sets
Determine how you will represent view flow
Determine how you will separate presentation from data
Determine how you will update the UI when data changes
Design for offline, disconnected work
Design reporting interfaces
Design user notification
Design for document-based input and output
Design your menus and toolbars
Design for globalization & localization
Design for accessibility
Design for testability
Security Determine your authentication technology and method
Determine the trust boundaries that require authentication
Design for offline authentication
Determine your authorization strategy
Determine your authorization role store (SQL, AD, Custom)
Decide role-based vs. resource-based authorization
Choose course grained or fine grained authorization
Design for offline authorization
Design for single-sign-on
Design input and data validation
Design for multiple users
Determine how to protect sensitive data
Design for auditing and logging
Determine if you need to obfuscate your code
State Management Determine what information to cache
Determine how to update your cache
Determine where you will cache your data (memory vs. disk)
Determine how to manage your state
Design for transactions
Determine how to secure your state
Determine how to secure your cache
Workflow Determine how to manage workflow
Determine how to manage workflow
Determine what technology to use for workflow
Determine where your workflow components should live
Determine how to handle errors in workflow

Last edited Jan 30, 2009 at 11:04 PM by prashantbansode, version 2


No comments yet.