Jennifer Marsman Talks WPF

Tonight, Jennifer Marsman came out and talked to the Greater Cleveland PC Users Group C#/VB.NET SIG about Windows Presentation Foundation (WPF). Although I’m a web developer and I don’t typically play with desktop apps, I wanted to see what WPF had to offer. (That and I wanted to see one of Jennifer’s presentation, as I hadn’t had the opportunity in the past.)

Jennifer started by getting into the technologies of .NET 3.0 – WPF, Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), and CardSpace and how they come together with the .NET 2.0 core to help make up .NET 3.0.

From there, she brought user experience (UX) into the picture. Whether it’s using a can opener to open a can of soup (as opposed to the hardcore experience of using a knife) or getting with technology and using Microsoft Windows Media Center Edition (as opposed to a VCR), the UX should be considered as an integral part of the software design process. WPF, as she put it, brings a unified approach to user experience, with key features including vector-based graphics composition, support for declarative and procedural programming, and easy deployment and application management.

She brought up the classic case of the headaches between designers and developers. Let’s say you have a designer who wants a drop-down box with checkmarks within each option; as a developer, you may be prone to say “You can have the drop-down box, but you aren’t getting that check mark unless you’re willing to accept that it’s going to take {insert ungodly amount of time here}”. With WPF, that headache isn’t as bad, since it brings XAML into the picture. Designers can use Expression Blend to make their pretty controls, and that software creates XAML files, that can be manipulated in Visual Studio on the developer’s side. So there’s a better chance that the designer will get their drop-down with the checkmarks within a reasonable amount of time.

After talking about user experience, Jennifer got into the three main types of WPF applications – XAML Browser Applications (XBAP), installed Windows applications, and controlled libraries. She must have been reading my mind, as she then got into the difference between WPF XBAPs as opposed to Silverlight. Those differences are:

  • Silverlight is a subset of WPF. It doesn’t have all the features of WPF, such as not as strong 3D support.
  • WPF runs only on Windows. Silverlight has better cross-platform support, working natively on Windows and Mac. There’s also a project called Moonlight, which adds some Silverlight support to Linux.
  • Silverlight has better browser support. WPF works in Internet Explorer and in Firefox (with .NET 3.5); Silverlight works in other browsers, including Safari for Macs.

After talking about WPF in the first hour, Jennifer used the second hour for show’n’tell – demos showing off various features of WPF. The first demo she brought up was a hospital application, which showed various features of WPF, including 3D pivots of forms, moving graphs, nifty animations (like pages flipping), and working with video. There were graphs that she was able to spin around, and she mentioned that this uses something called Viewport 3D. If you want to know more about it, check out her blog and contact her – Viewport 3D is one of these topics that she likes to present on. Another demo was with Mercedes and building a car. The third demo showed how to create a spotlight in Blend and get it to animate along a path. After creating it in Blend, she opened the project in Visual Studio to show how the XAML is understood by both programs.

Overall, it was quite an interesting presentation. Thanks to Sogeti for providing the location and dinner, and thanks to everyone else who made it possible.

Recommended Resources:



“How Do I” videos:
Part 1. Animation Using Expression Blend: How to create an animation

Part 2. Animation Using Expression Blend: How to start animations on events

Part 3. Animation Using Expression Blend: How to make an animation follow a path

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.