Introducing WPF

7/25/2010 5:11:04 PM

Some time ago, the folks at Microsoft sat down and designed the next generation of UI technology for the Vista operating system. The system would be vector-based and use XML. The final system is called Windows Presentation Foundation (WPF).

WPF is an integral part of all .NET Framework versions beginning with version 3.0, which is installed by default on Windows Vista and is an additional download for Windows XP and Windows 2003. Other parts of .NET 3.0 include:

WCF (Windows Communication Foundation)

Communication subsystem

WCS (Windows CardSpace)

Digital identity subsystem

WF (Windows Workflow Foundation)

Workflow subsystem

WPF applications either run in the browser or as standalone desktop applications. Both scenarios require that .NET Framework 3.0 or higher is available. Currently, most WPF applications are standalone because Vista does not have a high market penetration, limiting the number of PCs on which WPF can run, and because .NET 3.0 is a sizeable download. This is a key reason for why Microsoft created Silverlight, a similar technology targeted at the browser world. Let's take a closer look at WP more background information.

The main focus of WPF is in vector graphics, but pixelated graphics are supported as well. WPF also supports multimedia content in forms of audio and video data. One of the highlight features is the support for text, which includes some typographical specialties such as justified text, kerning, and ligatures.

It is certainly no surprise that most WPF coding is done using .NET languages such as C# and Visual Basic. The .NET Framework—or to be exact, the CLR (Common Language Runtime)—defines every possible type of element in a WPF application and enables a good development experience in Visual Studio (think IntelliSense) and rapid prototyping.

Already, several WPF prototype applications, including several "virtual newspapers," are available that showcase text flow, such as the reader (see Figure 1; download it at The next version of Yahoo! Messenger will also feature a slick WPF interface.

Vector Graphics and XML

There were (and still are) several other projects trying to create vector graphics (and maybe some animation or business logic support) using XML. One of the oldest is the World Wide Web Consortium's (W3C) Scalable Vector Graphics (SVG). SVG graphics are created using XML, support scripting, and are supported by most modern browsers except Internet Explorer. However, SVG has not reached mainstream market penetration yet, so it is successful only in some niche markets, including mobile phones and cartography.

Another related approach comes from Adobe. Flex uses yet another XML dialect (called MXML) to dynamically create Flash content.

Figure 1. The Forbes newsreader uses WPF

Top 10
Microsoft ASP.NET 4 : Using the SqlProfileProvider (part 4) - The Profile API, Anonymous Profiles
Microsoft ASP.NET 4 : Using the SqlProfileProvider (part 3) - Profiles and Custom Data Types
Microsoft ASP.NET 4 : Using the SqlProfileProvider (part 2) - Using Profile Properties,Profile Serialization
Microsoft ASP.NET 4 : Using the SqlProfileProvider (part 1) - The Profile Databases, Defining Profile Properties
Microsoft ASP.NET 4 : Profiles - Understanding Profiles
Using SQL Server 2005 Integration Services : Programming Integration Services (part 4) - Connecting the Source and Destination Adapters with a Path
Using SQL Server 2005 Integration Services : Programming Integration Services (part 3) - Setting Up Column Information
Using SQL Server 2005 Integration Services : Programming Integration Services (part 2)
Using SQL Server 2005 Integration Services : Programming Integration Services (part 1) - Creating Packages Programmatically - Data Flow
Silverlight Recipes : Creating Application Services
Most View
Managing and Administering SharePoint 2010 Infrastructure : Using Additional Administration Tools for SharePoint
Binding Application Data to the UI objects in Silverlight
iPhone Application Development : Getting the User’s Attention - Generating Alerts
Understanding and Using Windows Server 2008 R2 UNIX Integration Components (part 2)
iPhone Application Development : Creating and Managing Image Animations and Sliders (part 3) - Finishing the Interface
Cisco Linksys X3000 - The Link to Connectivity
HP LaserJet Pro CM1415fnw - Print from The Clouds
Building Your First Windows Phone 7 Application (part 2) - Using Your First Windows Phone Silverlight Controls
Determine Your Need for Server Core
Mobile Application Security : Bluetooth Security - Overview of the Technology
Using System Support Tools in Vista
Windows 7 : Using Windows Live Calendar (part 3) - Scheduling Appointments and Meetings & Viewing Agendas and Creating To-Do Lists
Advanced ASP.NET : The Entity Framework (part 3) - Handling Errors & Navigating Relationships
Graham Barlow: the Apple view
Ipad : Presentations with Keynote - Adding Transitions (part 2) - Object Transitions
Windows Server 2003 : Troubleshooting Group Policy
Microsoft XNA Game Studio 3.0 : Controlling Color (part 2)
Building the WinPE Image
Programming the Mobile Web : HTML 5 (part 3) - Offline Operation
Windows Phone 7 Development : Using Culture Settings with ToString to Display Dates, Times, and Text