DZone recently had a chance to sit down with Chris Anderson, author of 'Essential Windows Presentation Foundation'. In this interview, Chris discusses the origins of WPF and XAML, the benefits of Microsoft Expression Blend, and the future of WPF.
DZone - Tell us a little about what you do at Microsoft?
Chris Anderson - I work at Microsoft in the Connected Systems Division as a engineer. My primary area of responsibility is for parts of the new “Oslo” modeling platform that was announced at PDC 2008. My day job consists mostly of writing code, documentation, tests, and meeting with people. We run our team using agile methodologies where everyone performs all roles (dev, test, PM, etc.).
DZone - What was your role at the time you wrote this book?
Chris - At the time I wrote the book I was working on the WPF team (then called Avalon) as an architect.
DZone - What is WPF? Give us the nickel tour.
Chris - WPF (and its sister technology Silverlight) is a comprehensive presentation technology that attempts to provided a consistent model for UI, Text, Graphics, Media, and Animation. In addition WPF provides a base application model for client applications which includes browser and desktop based applications.
DZone - What are the origins of WPF and XAML?
Chris - WPF started out as an effort to provide a consistent presentation platform that spanned UI, Documents, and Media. We brought together experts from Internet Explorer, Windows, eBooks, and developer tools to try and build a platform that could span the scenarios.
XAML came about from this effort as we tried to figure out a model for writing down declarative definitions of WPF, something that worked for the breadth of the platform. XAML has become a general way to write declarative programs, extending beyond WPF now.
DZone - Do you see WPF someday completely replacing WinForms in .NET?
Chris - Windows Forms (aka WinForms) provides managed code access to the Win32 presentation technologies from User32 and GDI. WinForms is an extremely productive way to build desktop applications for Windows, with a great visual designer and rich control library. As long as User32 and GDI are available in Windows, I would imagine that WinForms will remain a viable option for programming client applications. I believe that over time more applications will target WPF and Silverlight, however “completely replacing” seems like a stretch.
DZone - Do you think WPF browser-based applications have a future, or will Silverlight completely take over that space?
Chris - I believe that in general a hardware accelerated native platform will always have a place in a developer’s toolbox. While many applications can run in a virtual environment (like Silverlight or Flash) there are scenarios for taking a tighter dependency on the operating system and hardware of the client. That said, based on what I have seen from Silverlight 1.0 and Silverlight 2.0 it seems that Silverlight and WPF are becoming closer.
DZone - Explain the difference between what can be done in Expression Blend vs. Visual Studio when creating a WPF application.
Chris - In my opinion, Expression Blend puts “drawing” as the center of the universe, while the Visual Studio WPF editor puts “controls” as the center. As these products mature, I expect to see the capabilities of both tools to be on par, but I believe this different approach will flavor the two products.
In my own WPF development I tend to use both products. Commonly I do my coding and initial UI sketch up in Visual Studio, and then do UX polish using Blend. I also use Blend or Expression Design to create my images and icons. The shared project system is a huge help for integration.
DZone - Who should buy your book?
Chris - People who want to understand the Zen of WPF. My book is not a comprehensive reference, but rather a tour through the key elements of WPF and some coverage around the thoughts of how we think about the platform.
DZone - Do you have any future books in the works?
Chris - No future books in the works.