The World’s Leading Microsoft .NET Magazine
   
 
The .NET Addict's Blog

My Top Tags

                                                           

My RSS Feeds








Latest Diggs - Programming

Internet Blogs - Blog Top Sites

Site Hits

Total: 2,639,015
since: 19 Jan 2005

WPF : With Great Power comes Great Responsibility

posted Thu 15 Jun 06

Lauren Lavoie did a talk this morning on creating Windows and Web applications using the Windows Presentation Foundation. From the abstract of the talk published in the session catalog, I thought it was going to be yet another bad marketing error indicating that you can create applications in WPF that will run in the browser and on the desktop without any tweaking or thinking about design.

Thankfully I was wrong! This was positively one of the best sessions of the conference. Her talk centered around the decision between using XBAP (XAML Browser Applications) and installed desktop applications. The decision about whether to use an XBAP or a Standalone app is based on the user experience requirements of your application and the deployment needs of your application. She did an excellent job explaining what XBAPs can and cannot do versus what Standalone apps can and cannot do (there's very little they cannot do).

One thing that I think she deserves a round of applause for is a graphical representation of the function of user happiness with regard to the frequency of use of features and the degree of control over the application the user has. "Happy Experts" exist in the top right of this graph where they use the application constantly, and they have a high degree of control over the application itself. "Happy Novices" exist in the bottom left where the user is a novice and doesn't use the application constantly, and is happy to be led through the process of getting things done. They don't feel confused or overwhelmed. The unhappy users are the ones where they have no control over the application, yet they use it constantly - Unhappy experts feel "held back" by the application. I have complained for a long time that every time a new technology comes out, there's a plethora of examples on how to use the new technology to do amazing things - but never any mention of whether you should actually use it that way, or how much of it you should use, or how the power of that technology should be tempered by the needs of your users and your application.

For me, the highlight of the talk was the PageFunction. One of the concerns I had with WPF when I first started using it waaaay back at PDC '03 (has it REALLY been that long??) was that there didn't seem to be any good way to get "modal dialog"-ish type functionality. For example, back then, I didn't see a way that you could pop up a window prompting the user for some information (like logon credentials), and then have the window return the data back to the point at which the window was launched. With PageFunction, you can create some incredibly powerful stuff by essentially having a page within a browser application be a "subroutine" that is invoked, executed, and returns a specific data type back to the calling page. This way, you can have a "pagelet" that prompts the user for login credentials or allows you to add an item to the source for a drop-down list. Fantastic stuff.

I won't do any more summarizing - you can get the slides for her talk from CommNet if you're a registered TechEd attendee, and you can get the video and slides of her talk from the Tech-Ed DVD when it comes out.

The bottom line is that if everyone went to her talk, and everyone followed her advice, we would have a lot more useful WPF apps and a lot less examples of "Bouncing spinning rotating 3d gradiented madness".

tags:              

links: digg this    del.icio.us    technorati    reddit




1. Jordan Vinarub left...
Tue 20 Jun 06 7:47 am

Does the page function just create a panel within the page for modal-type behavior, or is it a real popup?


2. Kevin Hoffman left...
Tue 20 Jun 06 2:28 pm

Its actually neither. Page Function simply means "evaluate the XAML contained below the page function tag, and when done, give me back a value". So you can decide whether the page function is a pop-up, or you can get fancy and make it a fading slide-out dragpanel.


Tag Related Posts

So I'm in the LA Times ;)

Wed 27 Aug 08 2:51 P GMT-05
tags:                  

NYC SharePoint Developer Needed

Mon 12 May 08 12:09 P GMT-05

CLINQ v1 Demo - Network Message Filtering

Wed 09 Jan 08 7:47 P GMT-05
tags:        

Building a Ledger Style for WPF Grids

Tue 21 Aug 07 3:30 P GMT-05
tags:    

My first "Acropolis" Application

Mon 04 Jun 07 1:40 P GMT-05
tags:      

Exploring the Delegate Design Pattern

Mon 14 May 07 6:30 P GMT-05

Core Data - Almost too Easy?

Wed 18 Apr 07 2:23 P GMT-05

Will Silverlight be DOA?

Mon 16 Apr 07 8:02 P GMT-05

Exploring the MVC Pattern in WPF

Tue 10 Apr 07 12:51 P GMT-05
tags:                      

My Little Pony .NET Unleashed 2007

Fri 30 Mar 07 1:59 P GMT-05

An experience with the Leopard beta

Mon 26 Mar 07 7:45 P GMT-05
tags:                

Authorness

Thu 15 Mar 07 1:44 P GMT-05

WPF Bindings == WTF Bindings?

Mon 12 Mar 07 6:31 P GMT-05

On MUDs

Thu 08 Mar 07 5:00 A GMT-05
tags:                    

Cocoa Programming vs. WPF : NIB vs XAML

Tue 20 Feb 07 2:09 P GMT-05

Cocoa Bindings vs. WPF Binding

Thu 15 Feb 07 5:41 P GMT-05
tags:                

Ulysses Agenda Makes Redmond Developer News

Wed 29 Nov 06 7:10 P GMT-05
tags:                

Ulysses Agenda - Network Engine Test 1

Mon 09 Oct 06 2:26 A GMT-05
tags:              

Ulysses Agenda : First Cut Networking Design

Thu 14 Sep 06 12:46 A GMT-05
tags:                  

First Impressions of Windows Vista RC1

Thu 07 Sep 06 1:30 P GMT-05
tags:                      

Localizing a WPF Application

Tue 22 Aug 06 11:39 A GMT-05
tags:            

WPF Slide Show and Photo Album

Fri 18 Aug 06 6:48 P GMT-05

.NET Framework 3.0 June CTP is out!

Fri 23 Jun 06 6:23 P GMT-05
tags:                

Tech-Ed 2006 - Session Reviews

Tue 13 Jun 06 6:22 P GMT-05
tags:                    

Tech-Ed 2006 Day 1 - Registration Day

Sun 11 Jun 06 7:17 P GMT-05

Rollin' to Tech-Ed 2006 in Style

Sun 11 Jun 06 3:18 A GMT-05

WPF/XAML and LINQ - A match made in heaven

Tue 06 Jun 06 11:32 A GMT-05
tags:                  

Lambda Lambda Lambda

Sun 21 May 06 1:01 A GMT-05

The Adventures of LINQ (Not Zelda)

Fri 19 May 06 11:21 P GMT-05
tags: