I’m often asked for examples of how Microsoft are using WPF in our own applications. We’re building up quite a nice little list of teams who are taking advantage of the technology, but inevitably (and unfortunately) most of them aren’t ready for public disclosure at this stage. I’m sure most readers of this blog have seen Expression Interactive Designer and Codename “Max”, two early examples; you can expect to see other examples disclosed over the coming months.
Of course, WPF isn’t the right technology for every project at every stage of development – and that applies internally within Microsoft as well as externally. To throw away the existing Office user interface and replace with one built on WPF would be a considerable engineering challenge that would draw resources away from other, customer-requested features. There may come a time when such an effort is worthwhile, of course, but as with any other project, the return has to be sufficient to pay off the investment.
However, newer applications and utilities have no migration tax to pay, and so we’re seeing some fun things starting to emerge. One example from the Office team is the Calendar Printing Assistant for Outlook 2007, which allows you to use a variety of print quality templates to better visualize your schedule or team diary. You can download this application today from the above link; if you’ve got Outlook 2007 Beta 2 and WinFX Runtime Components Beta 2, you’ll be able to use it to print out calendars that vary from the kind of basic views that you’d get out of Outlook itself to much richer year planner views that you could print on a large-format printer and hang on the wall.
I like this application – sometimes we get so wrapped up in slick software like The North Face and iBloks that it’s easy to be lulled into thinking that WPF is simply focused on consumer scenarios. But so many of the key concepts of WPF match the challenges that business developers have: complex form layouts, rich data visualization, powerful data binding, inductive UI, and so on. One demo I like to show is an internal dogfood app called AvalonNotepad, which mimics the regular Windows Notepad on pretty much a pixel-by-pixel basis, just to show that you can build regular applications with WPF. Maybe I should start using the Calendar Printing Assistant instead…