Welcome to MSDN Blogs Sign in | Join | Help

First public drop for Web Client Guidance Available on Codeplex

The first public drop of Web Client Guidance is available on http://webclientguidance.codeplex.com.

As I mentioned in a previous blog, patterns & practices will have two Web deliverables in 2010.

  • Port of the Web Client Software Factory (WCSF) to Visual Studio 2010 and .NET 4.0
  • Web Client Guidance

Web Client Software Factory

For WCSF, we will port it to Visual Studio 2010 and .NET 4.0. We do not plan on adding new functionality to this release. This effort has started as Don Smith recently blogged.

Web Client Guidance

The Web Client Guidance will provide guidance on how to create rich responsive Web Applications. The focus of the project will be to:

  • Build Rich Responsive Web UI’s using ASP.NET MVC 2, jQuery, and AJAX library
  • Unit test JavaScript clients and ASP.NET applications
  • Separate concerns (application logic and domain model)
  • Create a UI architecture that includes:
    • Separate presentation views from view logic
    • User interface built using MVC 2 or Web Forms
    • User Interface components are dynamically composed
  • Provide guidance on improving Web client security (authentication, authorization, prevent cross-site scripting, prevent cross-site request forgery)
  • Create application modules that can be developed, tested and deployed separately; flexible architecture that allows change
  • Allow incremental adoption of the guidance

Since we are in the early stages of creating the guidance, you will need to bear with us. We have not had a designer help us with the UI yet and the code has not gone through all its refactorings. What we have now will change based upon your feedback and our internal processes. So, give us your feedback to help us improve the guidance.  

Reference Implementation Scenario

For this project, we picked a Music Store scenario. Currently you can browse songs, add your rating, write a review, see the average rating, see other users reviews, and your friends favorites.

image

As you can see on the page above, we added text that describes the guidance that we are demonstrating. This text defaults as hidden.

What have we done so far?

This is the first public drop of the Web Client Developer Guidance and our 5th iteration. Currently we have a Reference Implementation and 3 QuickStarts which include:

  • RI using MVC
  • RI_WebForms. This is a port of the RI, developed using MVC, to Web Forms.
  • Validation QuickStart. This shows server and client-side validation.
  • WebFormsMVCHybrid. This shows MVC functionality within a Web Forms application.

The Reference Implementation (RI) and QuickStarts currently demonstrate:

  • Web UI Responsiveness (JavaScript, AJAX, jQuery, and JSON)
  • Unit tests for JavaScript and ASP.NET MVC
  • Acceptance tests
  • Separate Presentation Patterns
    • Model View Controller (MVC)
    • Web Forms with Model View Presenter (MVP)
  • Separation of concerns (application logic and domain model)
  • Authentication, Authorization, and Input Validation
  • Reuse of MVC widgets across pages

UI Responsiveness and Separate Presentation have been our biggest focus thus far. Let’s look at what we have explored in these areas.

UI Responsiveness

Architecture & Design

  • Progressive Enhancement: Displays an ASP.NET Web page if JavaScript is not enabled
  • Usage of jQuery and ASP.NET Ajax Library
  • Separation of business logic from views for both MVC and Web Forms

JavaScript

  • Optimize page load time and transitions using Microsoft Ajax Minifier and Microsoft Ajax Client Script Loader. Check out CombineAndMinifyHandler.cs
  • Follow Yslow guideline where appropriate
  • Unit test JavaScript using QUunit. Check out the Scripts solution folder in the MusicStore.Web.Tests project.
  • Browser back & forward buttons (works when URL does not change). Check ResultsController.debug.js

UX Patterns

  • Predictive Fetch. See ResultsController.debug.js
  • Inline edit (profile fields & rating). Edit.aspx page.
  • Single page interface.  See the documentation
  • Unique URL Pattern. See ResultsController.debug.js
  • Progress Indicator. See SearchResultsUI.debug.js

Separated Presentation

For separate presentation, we are exploring three scenarios – Model View Controller (MVC), Web Forms with Model View Presenter (MVP), and Hybrid with MVC and Web Forms/ MVP.

MVC

For MVC we demonstrate how to unit test both the browser and the Web server. Additionally we demonstrate how to compose the user interface from reusable “widgets”. Check out Index.aspx where we display FriendsFavoriteSongs. When you run the RI, you need to login as User to see the Friend’s Top Songs.

MVP

For MVP we are in the process of porting the Music Store RI to Web Forms and MVP. Checkout the RI_Webforms QuickStart in the QuickStart folder. In this QuickStart we are reusing the JavaScript code from the RI where it makes sense.

Hybrid

We know that many of you have Web Forms sites that you want to start taking advantage of MVC so we decided to provide some guidance on the hybrid scenario. Right now we have a simple QuickStart called WebFormsMVCHybrid.

Documentation

The documentation includes draft guidance on cross-site scripting, cross-site request forgery, update panel, optimizing page load times, progressive enhancements, single page interface, UX Patterns and more.

 

What’s coming in future drops?

The next drop we are focusing on finishing the Web Forms QuickStart and starting modularity. Once these are complete and we address your feedback, we will move on to exception management,  logging, skinning the user interface, and potentially some form of automation to help you create rich responsive Web applications. Additionally we will create a lot more documentation to go with the code.

 

Where do you get it?

You get it from codeplex. The current drop is the one from Nov 13th.

How do you consume the guidance?

There is a readme.txt in the drop that provides a list of dependencies as well as where you can get them. It also provides instructions on how to run the reference implementation, run JavaScript unit tests, and acceptance tests.

 

Feedback

As I stated earlier, we are early in the process of creating the Web Client Guidance. Check it out and let us know how we are doing? You can either leave feedback on the Codeplex site with a tag of “Web Guidance v-Next” or you can leave comments on my blog.

Posted by blaine | 0 Comments
Filed under:

Another Prism Class Available Jan 11 – Jan 14

I have been asked recently where to find training on Prism. The good news is David Platt is offering another Prism Class from January 11 through January 14, 2010 (I cannot believe that I am writing 2010). You can go to www.programprism.com to get signed-up for the class.

Posted by blaine | 0 Comments
Filed under:

Prism release for Silverlight 3.0

We just posted a new version of the Composite Application Guidance for WPF and Silverlight (Prism 2.1) to run on Silverlight 3.0.

This minor update includes:

  • Projects refreshed to target Silverlight 3.0
  • Changes in DelegateCommand and CompositeCommand to no longer hold on to CanExecuteChange handlers.
  • The TabRegionControlAdapter was updated to set the context for the Header item to retain the same behavior as Prism 2.0.

You can download the bits from here and you find more details about the changes on the MSDN page.

If you are interested in a customer that is using Prism, check out my recent blog post.

Posted by blaine | 0 Comments
Filed under:

Customers using Prism

Over the past several months, I have been asked who is using Prism. While I know lots of customers that are successfully using Prism, I cannot share their names.

The good news is I have a number of customer quotes that I can share based upon a study from Nucleus Research and I also can share that Fit BPO created a club management system that is used by UFC Gyms. The club manage system uses Prism, WPF, Silverlight, and DevForce.

Ask: If you are using Prism on a project let me know how it is going – both good and bad. 

Nucleus Research conducted a study on the usage of patterns & practices and one of the areas they researched was Prism. Here are some of the quotes from the research.

If you didn’t have Composite Application Guidance you would spend a week figuring out what it would have told you to do, then lose a few months trying to write the things Composite Application Guidance already writes — or you’d shortcut it. But where you would really get stuck is after v1. But you’re in a much better position with Composite Application Guidance, because it’s designed for change so every change is not going to cost you months.”

Composite Application Guidance saves you tons of code and when you go back later and try to change the application it’s very loosely coupled so you can change it. If you just write what was initially asked for you can paint yourself into a corner. With Composite Application Guidance it’s very loosely coupled and you can just extend it. If you have any composite application and you’re not sure how it may evolve, you should invest a few days in learning Composite Application Guidance. If you’re going to have an application that lasts any period of time, it’s definitely worth it.”

For more information check out the report.

Fit BPO

Fit BPO is using Prism (Composite Application Guidance for WPF and Silverlight) to create a client in both WPF and Silverlight.  The project team used Prism’s guidance and tooling which allows them to share code between WPF and Silverlight. Additionally Fit BPO is using Prism to create modular applications that can respond to change.

For more information on the project check out the following videos and Web pages:

 

clip_image002

Watch David Smiling (Project Manager) and Ward Bell of IdeaBlade demo and discuss the application.

(You can also click here to download the video)

clip_image004

Read the Customer Profile.

clip_image006

Watch Microsoft's John Stame and Ward Bell on using WPF and Silverlight on the UFC Gym project. Watch Ward discuss their usage of Prism and how they reused code between WPF and Silverlight.

Posted by blaine | 0 Comments
Filed under:

patterns and practices wants you to take the Web guidance survey

As I mentioned in a December blog post, the patterns & practices team plans to create new Web guidance. We need your help prioritizing the requirements through a survey that just went live. My blog post outlines the process that we will go through to define scope for the Web Guidance.

As an update, we decided to split the effort into 2 projects. The first project will be to update the Web Client Software Factory (WCSF) to run on Visual Studio 2010. The second project will take a fresh look at creating new Web Guidance. We took a similar approach when we created Prism (Composite Application Guidance for WPF and Silverlight). Your feedback from the survey will help define the scope for this second project.

So, go take the survey and let us know your priorities.

Posted by blaine | 0 Comments
Filed under: ,

Listen to Elegant Code’s recent Webcast on Prism 2.0 with Bob Brumfield and Blaine Wastell

David Starr and Scott Nichols of Elegant Code recently interviewed Bob and I regarding Prism 2.0 (aka Composite Application Guidance for WPF and Silverlight). Check it out for a good walk through of Prism, the differences between Prism 1.0 and Prism 2.0, and the differences between CAB and Prism.

Posted by blaine | 1 Comments
Filed under: , ,

Prism training is available from Rolling Thunder

David Platt from Rolling Thunder is offering a training course on Composite Application Guidance for WPF and Silverlight on May 18 – 20. David provides training for both Prism and CAB/Smart Client Software Factory. Check it out if you are looking for training.

As I mentioned in a previous blog post we also have videos that walk through Prism concepts.

Posted by blaine | 1 Comments
Filed under: , ,

Have you taken the Prism survey

We (the patterns & practices client team) need you to take the Prism survey to tell us how we are doing. If you have evaluated or used the Composite Application Guidance for either WPF or Silverlight, go take the survey now. The survey is less than 20 questions and should take less than 10 minutes to fill out.

We use this information to understand where we need to improve the guidance for the next release of Prism. If you have ideas for what is needed in the next version of Prism, reply to my blog or send me an e-mail letting me know. I also want to hear your stories about using Prism on your project. I want to hear what went well and what did not go so well. We are only as good as the feedback we receive.

So go take the survey now and tell everyone you know about the survey so we get the feedback. I used to live in Chicago and we had a saying with regards to voting. We would say “Vote Early and Often”. You got to love the Chicago politics. As an fyi, the survey is for either Prism 1.0 or Prism 2.0.

Posted by blaine | 2 Comments
Filed under:

VB QuickStarts and How To’s Now Available for Prism

We had a number of customers ask for Visual Basic Versions of the Composite Application Guidance for WPF and Silverlight. As Bob stated in his blog, we are excited to announce that QuickStarts and How To’s are now in Visual Basic. This provides guidance of how to use Visual Basic with the Composite Application Library which is still in C#.

You can download the guidance from the Microsoft download center. Give us your feedback on this new guidance from the patterns & practices client team.

Posted by blaine | 7 Comments
Filed under: ,

Learn Prism

We just created a page on Codeplex that will help you learn more about Prism (Composite Application Guidance for WPF and Silverlight) through videos and blogs. We currently have 6 videos for Prism 2.0 listed on this page. Please reply to my blog and let me know what other video's would be helpful to you.

The video's are divided into Overview and How Do I.

Overview:

Blaine and Adam  

Prism V2 - Composite Application Guidance for WPF and Silverlight
Blaine and Bob
What is Prism V2

 

How Do I:

Bob and Erwin put together a series of videos that tell how to modular Silverlight Application. For more information see Bob's blog.

image  

Creating a solution and adding a module (10 minutes)
image

Composing views
(10 minutes)
image  

Implementing a view and using services (22 minutes)
image  

Communicating between views (24 minutes)

 

You can download the source from here for this application from the Codeplex page.

 

 

Posted by blaine | 2 Comments

Update on SCSF, WCSF, and Software Factories

A number of customers have asked about our plans for the Web Client Software Factory and the Smart Client Software Factory (SCSF). In a previous post I announced that we are planning on updating the Web Client Software Factor for Visual Studio 2010. We also plan to update SCSF to run on Visual Studio 2010.

Don Smith posted a blog with our high level plans for the software factories and GAT/GAX for Visual Studio 2010. Check it out here. The key message here is that we at patterns and practices are committed to refreshing the software factories and GAT/GAX for Visual Studio 2010. As Don says in his post, help us understand the most important scenarios for you. Post a comment to this blog.

Posted by blaine | 1 Comments

Update to Prism 2.0 Available on Download Center

After we published the Composite Application Guidance for WPF and Silverlight - February 2009 release, we discovered that the Composite Application Library (CAL) test projects do not build successfully with the new Silverlight version 2.0.40115.00 (GDR1) so we decided to fix this issue. For details on the issue see the knowledge base article.

Additionally we had a report that the Active view in TabControl behaves differently in Prism 2.0 than Prism 1.0. We decide to fix this give the fact that we already decided to update the download. For details on the issue see the knowledge base article.

The new download is available from the same location as stated in my blog post that announced the release. You can verify if you have the latest version of the self-extracting archive by examining the Digital Signature timestamp it should read 'Tuesday, February 24, 2009 12:00:07 PM'.

Based upon requests from customers we created a PDF version of the documentation so you can print it. You can download the PDF file from here.

Posted by blaine | 1 Comments
Filed under:

Prism 2.0 is Live

We are excited to announce that the Composite Application Guidance for WPF and Silverlight (Prism 2.0) is live. You can download the release from here.

The Composite Client Application Guidance is designed to help you more easily build modular Windows Presentation Foundation (WPF) and Silverlight client applications.

These types of applications typically feature multiple screens, rich, flexible user interaction and data visualization, and role-determined behavior. They are "built to last" and "built for change." This means that the application's expected lifetime is measured in years and that it will change in response to new, unforeseen requirements. This application may start small and over time evolve into a composite client—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application. Applications that do not demand these features and characteristics may not benefit from the Composite Application Guidance.

 

Dd458809.PrismV2StockTraderRIShell(en-us,MSDN.10).png

What's new Prism 2.0?

- Composite Support for Silverlight: We provide guidance on modularity, UI composition, commanding, and event aggregator in Silverlight. The Reference Implementation demonstrates how to use the Prism library with Silverlight.

- Multi-targeting: Ability to share code between Silverlight and WPF. We provide guidance in the form of patterns, documentation, and tooling on how to share code between Silverlight and WPF. The tooling has its own msi that you can download.

- Improved UI Composition: We added View Discovery to UI Composition. View Discovery: when a region is created, the region looks for all the ViewTypes associated with the region and automatically instantiates and loads the corresponding views. This is a simple approach to create new views.

- Hands-on-Lab for Silverlight: We provide a Hands-on-Lab for Silverlight that walks you through how to create your first application using Prism.

- New UI: We upgraded the UI with this release which includes new Silverlight and WPF animations.

- New XAML Guidelines for Creating Composite UIs

- Improved Separated Presentation Pattern Guidance:   With this release we provide more information on Separated Presentation Patterns which includes Supervising Controller and Presentation Model (also known as Model View View Model).

Included in this release:

- Composite Application Library (for both WPF and Silverlight)

- Reference Implementation (Stock Traders application in WPF and Silverlight)

- Quick starts (9)

- How-Tos (26) and

- Lots of documentation for everything you want to know about UI patterns  and client architectures

There are four files that you can download with this release. These files are as follows:

- Composite Application Guidance: Which includes the library, reference implementation, quick starts, how to's, patterns, design concepts, and technical concepts

- Project Linker: Tooling to help manage multi-targeted projects.

- Project Linker Source: Source code for the project linker.

- Prism 2.0 Documentation in CHM format: We include the documentation in CHM format if you want to download this separately. The documentation is included in the Guidance and is also available on MSDN.

 

Click here to see the detailed list of assets in the guidance.

Dd490814.DocMap(en-us,MSDN.10).png

 

Evaluating Prism

If you want to evaluate whether Prism is right for your next project, we created a topic in the documentation that helps walk you through the process. The process includes steps to determine if it is right for you, an initial evaluation, an in-depth evaluation, and how to adopt the guidance. The idea with the section is to help you quickly decide if the guidance makes sense for your project. I am very interested in feedback if this hits the mark as we want to minimize your investment of time to make a decision on whether you should use Prism.

Upgrade from Prism 1.0

We tried to minimize the changes to the library that would affect your applications. That said, we do have some changes that are due to Silverlight, improved extensibility, or improved understandability of the library. We have a topic on MSDN that discusses how to upgrade from Prism 1.0.

Migrate from Smart Client Software Factory (SCSF) and Composite UI Application Block (CAB)

If you are interested in migrating from SCSF / CAB to Prism 2.0, we provided guidance in this release on how to upgrade your application from SCSF/CAB to Prism 2.0. This version took into account the feedback that we received on Codeplex.

 

Prism 2.0 Videos

Prism 2.0 Introduction: Adam Kinney and Blaine Wastell

clip_image002

Prism 2.0 Overview: Ajoy Krishnamoorthy, Bob Brumfield, and Blaine Wastell

clip_image002[4]

 

Check out the posts from the other Prism team members:

- Bob Brumfield

- David Hill

- Erwin Van Der Valk 

- Julian Dominguez

- Larry Brader

Posted by blaine | 4 Comments

pnp Summit Videos Available online

Ajoy just announced that 3 p&p summit video's are now available on-line. He provides a link to a presentation that Francis and I gave regarding SharePoint Guidance. Check it out.

Posted by blaine | 0 Comments

Roadmap for WCSF

A number of customers have asked about the future of the Web Client Software Factory. I want to announce that we are starting to plan for the next release of the Web Client Software Factory. We plan to start the project in the spring of 2009 and plan to deliver this next version with Visual Studio 2010. I need your feedback as to the scope for this next release. The overall process for this release is the following.

  1. Announce intent for release and ask for scope requests
  2. Obtain feedback from you and other customers to create candidate scope list
  3. Publish survey to prioritize candidate scope
  4. Build vision/scope from prioritized scope
  5. Start project & deliver the project (if only it were this easy 

We will take feedback from the following sources for the release:

  • Obtain feedback from my blog and Michael Puleio's blog
  • Obtain feedback from www.codeplex.com/websf
  • Obtain feedback from advisory board
  • Obtain feedback from direct customer discussions
  • We are considering a number of new features for Web Client Software Factory. This list is to get the discussion started but it will not be the final scope which is why we need your feedback. We will not have time to implement all of these features and I am confident that you will provide many other ideas that are not on the list.

    List to start the discussion:

    • Unity for a container
    • Composite support for MVC
    • Support for Web pages through dynamic data
    • Eliminate the use of a base class similar to what we did for Prism
    • Allow library to be pluggable so you can use your own components including the container
    • Support for Silverlight controls on your Web pages
    • Allow Web Client Software Factory controls to be reused with SharePoint
    • How to distribute logic between layers of the architecture
    • Improve performance of CWAB

    I need your feedback on what you think we should focus on. I also need your help to build a list of customers that are using the Web Client Software Factory. I constantly have customers that are asking who else is using it. Additionally it is helpful to have this list to put the business case together for how much budget we should spend on this next release. So please help me build my list of customers.

    As for support, we will continue to provide support for WCSF through our Codeplex site.

    image

    Posted by blaine | 10 Comments
    More Posts Next page »
     
    Page view tracker