We need your feedback on Web Client Guidance

Last week we posted our 2nd public drop for the Web Client Guidance project. We have over 1000 downloads of our first two drops which is great. We now need to your thoughts on how we are addressing the challenges of responsiveness and modularity which is why we created a discussion topic on Codeplex to get your feedback.

We are only as good as the feedback we receive, so let us know how we are doing.

Drop 2

As background, this last drop made the following changes from the first drop.

Reference Implementation

  • Upgraded to MVC2 Beta.
    • Consistentely using RenderAction to render views (No longer using ActionFilters+RenderPartial). See SongDetails, EditProfile and Home pages.
    • Removed jQuery validations and replaced them with new custom validator attributes. Attributes are used in ViewModels and by JavaScript validation methods. See Register and EditProfile pages, validators are located in the /ViewModels/Validation folder and JavaScripts are in the CustomFormValidation.debug.js file.
  • Added modularity infrastructure.
    • Different supplier interfaces (IServiceSupplier, IRouteSupplier, IInitializable, and so on) are used to provide new Routes, Services, Initialization, and Endpoints to the main application. Registrars (ServiceRegistrar, EndpointRegistrar, RouteRegistrar, etc) are used for registering those items during the application startup (See global.asax). These allows to develop each feature in a decoupled way.
    • An agnostic DI approach was used by using the CommonServiceLocator project in all infrastucture classes and interfaces. Particular implementations (such as the UnityControllerFactory and Service suppliers) are usign a UnityContainer.
    • The modularity feature is not complete yet, and will be more stable in the next drop.
  • A new MyLibrary module was Introduced.
    • The module provides a controller. See the LibraryController.cs for reference.
    • Views for the Library controller are shared using MVC Areas. See /Areas/MyLibrary folder for reference.
    • The module exposes a contextual rendering endpoint when the song search results are displayed. The “Add to Library” link is displayed only when this module is loaded.
    • The module registers a shared service. See the MyLibrarySongDetailsProvider.cs. The Shell provides the SimpleLogger service.


  • Enhanced the WebForms RI QuickStart. Song reviews can be added and deleted (Authorization). A preview is shown in the song results. This QuickStart is still in progress.


  • Added the Script Loading document that leverages Webforms ScriptManager and MVC ScriptLoader information and considerations.
  • Added the UX Patterns document.
  • Added Webforms: Top Ten Tasks for improving responsiveness (very early draft).