Monday, 12 November 2007

Improving the user experience

Session 18
Web Client Software Factory (WCSF): Building Rich Internet Applications with ASP.NET, AJAX and WCSF.

Glenn Block started with a demonstration of a non-RIA web application without client side support from AJAX in order to highligh how poor the user experience was.

"Why are design patterns important?" Glenn mused. "Because they have a common taxonomy whilst being technology independant."

Patterns as good as they make sense no matter which framework your are working with. They are also useful for discussing requirements with peers. They define both the problem and the solution. Apparantly, there are 70 set patterns for developing applications with AJAX.

When we look at taking an application towards a RIA, it is not a black/white, all or nothing issue. The speaker utilised a pattern called "Suggestion" in order to demonstrate his point. "How can we help users enter data when they don't always know the allowed values." he quipped.

Solution: Assist user with list of useful suggestions by offering a list in real time. The speaker showed how you don't have to wait for full-postback in order to achieve this. AJAX ContextSensitiveAutocompleteExtender can implement the suggestion pattern by retrieving a list of suggestions from a web service and is triggered by either number of key strokes of a delay.

Next, a demo of the basic AJAX autocomplete control (or filtered list). The problem is with the control shown on the speakers demo site was that it gave a full list of cities in the USA even though Washington has already been selected as a state (i.e. not just cities in stage WA).

Solution: was to hook-up the city and the zip code and drop on the acsae*. This then only returns the cities and zips for washington. A call is made to a web service with the zip and city sent as parameter.

Another problem identified was the "pop-up problem". How can we provide the user with a quick method of looking-up valid field entries such as cities and states?

Another problem was the "display morphing problem". How can we make the interface more interactive? Weel, we need to update the display dynamically as the context changes and this can be done with via an updatePanel - automatically updates portion of the screen with server content via a partial postback. - Supports naive and third party server controls - but can be heavy.

* acsae: If anyone knows what I was trying to type, please let me know.

2 comments:

Jafar said...
This comment has been removed by the author.
Glenn said...

I think you mean Context Sensitive Autocomplete Extender. I am glad you got something out of the session with all the mishaps.