Noah Subrin's DEV Blog
Technology for Business minds

Overview of Windows Presentation Foundation (WPF)

Print the article

This entry was posted on 12/23/2006 9:11 AM and is filed under .Net University.

On Thursday, December 21, 2006 I delivered an internal webcast on the Windows Presentation Foundation (WPF) as part 3 of the four part SRA .Net University series. I had 22 people register and 10 attend. Participants attended from Virginia, Maryland, New York, Geogia,  and Washington DC. Windows Presentation Foundation (WPF) is the next-generation presentation sub-system for Windows. It provides developers and designers with a unified programming model for building rich Windows smart client user experiences that incorporate UI, media, and documents.

I began my presentation with a discussion of what makes up "user experience" in terms of an application. User experience is more than just the UI for an application. For example, when comparing a Yugo versus a BMW, the perception is that the BMW is more secure, reliable, faster, and performs better.

There are challenges associated with measuring the return on investment (ROI). It is easy to measure in objective terms, the number of transactions per second, availability, response time etc. IIt is difficult to measure User Experience and ROI in quantifiable terms. Most developers and stakeholders feel that "functional" is good enough for an application.  As a result, the user experience is typically not defined as a top level requirement for a project. Also, in many cases, the developer may not have the tools or skills to create a compelling user interface.  The cost of creating a great UI frequently becomes a drain on project resources and as a project deadline approaches, we tend to "get the features working", with a great UI falling by the wayside. ROI metrics on a user interface are just emerging - as I mentioned previously, it is hard to quantify what makes a great UI.

WPF addresses a lot these challenges. It allows us to deliver innovative user interfaces. It increases developer-designer productivity, and also is backwards compatible with existing technologies such as WinForms, MFC, and ActiveX. We can create WPF apps that use WinForm components, and also create WinForm apps that use WPF components.

WPF provides a unified approach to UI, media, and documents. It has a vector-based composition engine, hardware acceleration, and a resolution independent graphics engine. It works on Windows Vista, Windows XP and Windows Server 2003. It tries to take advantage of the graphical processing unit, rather than the CPU. If hardware rendering is not available, it uses software rendering.

WPF is available as part of the .Net Framework 3.0. If we download the recent CTP (Community Technology Preview)  and the Orcas extensions we can create WPF projects. The next full version of Visual Studio will contain enhanced tools for creating WPF apps.

It increases developer-designer productivity through the use of XAML. Although XAML is not exclusive to WPF (it is also used in Windows Workflow Foundation) - it allows designers to create a UI in one of the Microsoft Expression suite of tools and pass that on to developers. Developers can create projects in Visual Studio 2005 and save them as XAML and pass these on to designers.

The functionality provided by WPF is truly exciting. Things like 2D and 3D animation and vector graphics which previously had to be done by GDI and/or GDI+ are much more easily done. Creating custom buttons that play video can also be created using a few lines of XAML code. To create this type of custom button in the past, we had to use "owner drawn" buttons which required a greater investment in time and complexity.

There are also new fonts and entire WPF document APIS. A great place to learn more about WPF can be found here!

 

What did you think of this article?




Trackbacks
Trackback specific URL for this entry
  • Trackbacks are closed for this entry.
Comments
    • No comments exist for this entry.
Leave a comment

Comments are closed.