Just when you get really good at a tool, you find something better.  This happened to me when I moved from C++ to C# for desktop application development.  I see it happening again with Expression Blend which you can use to design windows user interfaces and Silverlight applications.

Here is simple application that I built recently to create Silverlight streaming applications and upload them to http://silverlight.live.com.  I built it using C# and Windows Forms on Visual Studio 2005.  This week I am learning about .Net 3.0 which includes WPF. 

The application that Microsoft delivered for designing WPF applications is called Expression Blend and it is aimed at User Interaction Designers like Lars Jensen and Gerelee Goltsev at Mindjet  (You'll see their talent when MindManager 7 comes out at the end of the Month with the Office 2007 Fluent Ribbon UI).  Typically user interaction designers use tools like Photoshop to communicate design intent to software developers.  They typically don't use the Form designer in Visual Studio.  I have used Microsoft Visio in the past to design interfaces and that worked well for me.  The problem is that there tends to be a disconnect between the tools used to design the UI and the tools used to implement the UI.  The workflow is not fluid because the design surface that the user interaction designer works on is not the same design surface that the developer uses to builds the software. The creators of Expression Blend at Microsoft knew that and created it to address the design/build workflow that is common in software development.

As an exercise in learning WPF and Expressions, I reimplemented the user interface in Expressions:

I experimented with using a gradient background.  This was done entirely in Expressions Blend.  I know when we did visual effects in MindManager like gradient backgrounds, it was done in C++ code and not in the design tools, where it should be done. Now If I want to make any changes to the user interface, I don't have to touch the C++ or C# code at all.  Designing and making changes to the UI of an application just got much easier!