As Blaine and Glenn mentioned, this week the great folks at Patterns and Practices where able to ship a Reference Implementation that for the web client bundle.  I love these releases because the P&P folks think about the problems directly from building out real world applications.  They take the products we have such as ASP.NET 2.0, ASP.NET AJAX and the AJAX Control Toolkit and fill in any missing gaps to build out real world applications... they include all the source code for what they build and have active support channels for you to get your questions answered. 

Here is a brief summery of what the reference implementation shows (seamlessly stolen 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 take a look and see if this work can help you in your next product.