Day One with Blend
I expect this to be a 1000 mile journey on foot. I installed Expression Blend yesterday as well as the extensions for Visual Studio 2005.
I've been reading up on WPF, watching free video training movies
from Lynda.com on Blend, and viewing video training on WPF, Expression Blend at totaltraining.com. I just attended Wintellect's 3-day Devscovery training in Redmond to see some sessions on WPF and Silverlight 1.1.
In a perfect world, Expression Blend would be the perfect accompaniment to Visual Studio. You can open the same project in both Blend and Visual Studio and you should in order to use Blend. Blend has no code-behind you can work in, and its xaml editor lacks Intellisense, but it has a terrific interactive view of the page or window.
Its properties panel is far richer than Visual Studio's. It has a list of all the properties one can apply to the selected item(s) in collapsible and expandable categories that can be searched effectively. This video shows the properties panel in Blend:Blend Properties Panel video (4:44)
You click the lightning bolt at the top-right of the properties panel for a list of all events the selected item supports. You can type in an event handler for any event, and if Visual Studio is open, the event handler skeleton is placed in your code.
Total Training offers a bit more technical video training about WPF and Blend. The guys doing the training were or are on the WPF or Expression team. The Blend training even walks through doing a simple Value Converter (DateTime to String) in code.
The WPF videos were helpful though necessarily superficial. It's fun to watch how to create a menu, but I had just read a chapter about menus that described how real applications use commands so that the same action could be done from a toolbar button for example.
You can sign up for a free guest account at TotalTraining.com and watch the first 20 minutes of any series over two days. Microsoft posts some helpful free Blend training videos
from Total Training.
As a first step in the water, I did benefit from the video training. For a gesture-intensive application such as Blend, where much functionality is accessible by clicking chevrons or little rectangular dots (to set data binding for a property of a control), it's helpful to watch someone use the application and narrate what they are doing.
In Blend, animation is done with a visual timeline, as in Flash. The beauty of a visual environment is you can have something in a storyboard at time 0, then move the play head (or whatever they call it) to some seconds later, then scale, move, change the color or transparency or rotation of that thing (setting keyframes at that time and at time 0) and Blend will do the in-between animation to get to the desired state at that future time. I know it can be done more concisely with XAML, but watching and tweaking is how a lot of us like to work.
You get identical results when you press F5 in either environment to run the project, but if there's any exception or runtime error it's best to launch it from Visual Studio with breakpoints and everything because Blend often displays a message that it encountered an error and has to close (though it just closes that file, not the Blend application itself).
Since a lot of WPF seems to be wiring things up (to resources and stuff), Blend can get out of kilter pretty easily when things aren't wired up correctly.
Again, if life were perfect, Expression Blend could be the perfect designer for the code-intensive Visual Studio, but the communication between the two is not always seamless. When you make a change in one environment, and return to the other, it prompts you whether to update the project because of the external changes. Often it seems you must build the project, not just save all files, in order for the other environment to be aware of all the changes.
I'll post more about Blend as a design tool if I have more to say that others might find interesting. I will also do a few posts about graphic design principles I've picked up that should be useful for preparing WPF and Silverlight graphic-intensive applications.