Responsive Web Client Reference Implementation

29 October 2007 Off By David

This week has seen the folks at Patterns and Practices shipping a Reference Implementation for the web client bundle.  I can’t wait to have time to look into this – nuggets like this can really make your development life so much easier. Surely anything that takes 10 to 15 degrees of your learning curve can only be a good thing, no?

The Responsive Web Client Reference Implementation is a executable Order Entry sample application the demonstrates the Web client guidance in action.

Here is a brief summery of what the reference implementation shows (effortlessly pinched from Brad, who himself seamlessly stole from Blaine)

  • Composability : Building a composite web application
    • Modularity: Building complex sites based on modules that can be independently developed, tested, versioned, and deployed
    • Page composition: Creating composite Web pages that contain multiple user control views. The user controls can be used across modules and can be independently developed, tested, versioned, and deployed.
    • Testing of UI Logic: Utilizing unit tests to test Web page logic
  • Responsiveness : Improving usability and performance of the composite user interface utilizing ASP.NET AJAX.
    • Autocomplete : Providing a list of suggestions to a user that are retrieved based on the characters they have entered.
    • Validation : Validating user input on both the Web browser and the Web server. 
    • Live Form: Dynamically updating a field in the browser based on input from another field.
    • Live Search : Searching against LOB data from within the browser. 
    • Live Grid : Adding, Removing and Modifying records in a grid.
    • Popup : Utilizing AJAX popup’s to dynamically display data that is retrieved from the server.
    • JSON Service: Calling a Web service from the browser.
  • UI Appearance: Creating and modifying the look and feel of the UI
    • Layout management: Creating a common user experience across different independent modules, separating the responsibility of the UI design from UI development.
    • User profile–based UIs: Changing the behavior of the UI based on the user identity and profile information
    • Navigation: Providing role-based site navigation.
  • Security : Improving site security
    • Authentication: Identifying registered users of a site
    • Authorization: Changing permissions for different users
    • Data security: Validating input data to reduce the probability of cross-site scripting and SQL injection attacks. 
  • Manageability:
    • Easy deployment: deploying and updating modules independently of other modules.
    • Logging and Exception Management: Providing a standard logging and exception management approach to ensure the operations team can more easily operate the application.

I encourage you to join me and take a look and see if this work can help you in your next product.