This project is read-only.

Rich Internet Application (RIA) Scenarios Map

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


  • Authentication and Authorization
  • Business Layer
  • Caching
  • Communication
  • Composition & Controls
  • Data Access
  • Deployment & Maintainability
  • Exception Management
  • Logging
  • Maintainability
  • Page Navigation
  • Page Layout
  • Security
  • State Management
  • Validation


Category Scenarios
Authentication and Authorization Design authentication on the client to access service interfaces
Design for the use of ASP.NET authentication from your RIA app
Design for the use of ASP.NET authorization from your RIA app
Design for user profile controlled logging and caching on client
Business Layer Determine if you should place business components in the RIA app
If on Client, design for possible x-domain authentication to external services from client (vs from server as in normal web app)
Caching Design to use the “isolated storage/supercookie” feature (50MB max local storage)
Design to check isolated storage quota level and request increases from user (1MB default)
Design for use of the browser cache
Determine how to protect cached data
Decide what to cache on client
Communication Design using a SOA architecture
Decide the type of service (REST, WS*/SOAP, POX, RSS, sockets, and standard HTTP services)
Decide how the application will communicate with web service (WebClient class, WCF proxy)
Decide if cross-domain network access is required.
Determine how to properly secure web service communications (basichttpBinding only)
Design for event handlers and asynchronous calls and to all web services
Design for intermittent connection to server
Design for no access to Local peripherals (camera)
Design for low bandwidth situations
Composition & Controls Design for streaming media
Design for use of Silverlight, WPF and/or HTML controls
Design considering Silverlights X-browser and X-platform support (Firefox, Safari, IE – Linux, Mac, PC)
Design considering adaptive streaming support
Design considering built-in Vector graphics, Animation and shape support
Design considering built-in dynamic language support (python, Ruby, VB*, Jscript)
Design considering background threading support
Data Access Design your RIA application for databinding
Determine how to protect sensitive data
Determine technology option to use (LINQ to objects, LINQ to XML, external services)
Deployment and Maintainability Design application for default experience when viewing in browser that has Silverlight installed.
Design application for “upsell” experience when viewing in browser that does not have the correct version of Silverlight installed.
Design for JIT install of components
Design to deploy a library assembly in-package.
Design to deploy a library assembly on-demand.
Design for auto-update of assemblies
Design for varying bandwidths
Exception Management Define exception handling for synchronous method calls (try-catch)
Define exception handling for asynchronous method calls (OnError)
Design for web service SOAP exceptions (not supported)
Design for Unhandled exceptions (get javascript error from Browser)
Logging Design and account for default user store logging on the client
Design integrate logging combining user store logging and server log
Design for transmitting client logs to the server from on machine users store
Design for inability to access OS level logging on client
Page Navigation Design for navigation inside the RIA app
Design using URI trapping of bookmarks for multi-page applications
Design for browser back/forward button interception via DOM
Page Layout (UI) Design considering view options using CSS - Grid view, Flow view
Decide the built
Design layout considering pixel snapping and anti
Security Design considering Browser sandbox doesn’t allow local box API access
Decide the security level for code (Transparent, SafeCritical, Critical)
Decide if transparent assemblies need to call critical assemblies
Determine if you need to obfuscate your code
Design for web service security (basichttpBinding support only)
Design using siliverlight Crypto API support
Design considering local client cache and security of downloaded cached assemblies
Design considering media DRM support
Design considering no Access to browse or write ability for local file system
State Management Design for deep linking (how to bookmark state in case of a refresh)
Design for cross-browser state management
Design considering server and/or isolated store for state tracking and session management
Validation Design custom client-side validation using regex
Design server-side validation

Last edited Jul 14, 2010 at 7:05 PM by paulenfield, version 1


No comments yet.