Technology Showcase: WPF/E

Introduction

Since I am into cutting edge technology I would like to showcase something that has caught my attention periodically (meaning whenever I have time to write about it without actually setting a fixed interval) to give everyone a snapshot of cool/new emerging technologies which might become the standards of tomorrow and which might be worth considering for future projects.

For this showcase I have chosen Microsoft WPF/E, which has garnered a lot of attention lately in blogs [1], [2] and press [3] and which marks an important milestone with the recent release of the December CTP [4].

WPF What?

One of the pillars of the new .NET Framework 3.0 is the Windows Presentation Foundation (WPF) [5], [6], which is the next-generation presentation subsystem for Windows:

It provides a consistent programming model for building applications and provides a clear separation between the UI and the business logic. A WPF application can be deployed on the desktop or hosted in a web browser. It also enables richer control, design, and development of the visual aspects of Windows programs. It aims to unify a host of application services: user interface, 2D and 3D drawing, fixed and adaptive documents, vector graphics, raster graphics, animation, data binding, audio and video.

WPF/E is a subset of WPF, and stands for Windows Presentation Foundation/Everywhere. Note that Microsoft treats WPF/E as a codename and the final product name might change. WPF/E is basically a mobile version of WPF, based on XAML and JavaScript, with a limited set of functionality. This enhanced functionality is provided through a browser plugin.

There are endless applications for such a graphics engine, and technology like this opens the door to feature-rich server-stored/-provided applications that blend the advantages of desktop applications with web-enabled applications seamlessly together.

Beyond Microsoft

Over the years there have been many extensions both in forms of browser plugins as well as new web standards, and few of them managed to scratch the surface of the set of established web elements (does anyone still use VRML or SVG?). Before going over to some eye candy and WPF/E samples here some arguments why I think WPF/E has a shot:

  1. Cross-platform compatibility. Maybe multi-platform would be better than cross-platform, because cross-platform is usually used when talking about something that works on all platforms. However, right from the start WPF/E supports an impressive and for Microsoft unusual range of products, which clearly show its purpose as a "beyond-Microsoft" technology: There are plugins for Windows and Mac OS (both x86 and PowerPC), and the plugin works in IE 6/7 as well as Firefox 1.5/2.0 and Safari. And by works I mean officially supported by Microsoft!
  2. Instead of being yet another new technology WPF/E integrates with existing technologies, most notably underlining the compatibility with ASP.NET AJAX. Microsoft clearly wants WPF/E to be a design platform that enables you to bring different technologies and a plethora of multimedia elements together instead of replacing any of the existing technologies.
  3. It's small! Remember how the introduction of the .NET 1.0 runtime came with a 20+ MB download that required a reboot and administrative privileges? The WPF/E plugin is a tiny 1 MB download which executes in the blink of an eye, and all that is required is a refresh of the current page in your browser (if it contains WPF/E elements), you don't even need to restart the browser!
  4. It's here now. While WPF/E has been talked about for a couple of months now, Microsoft has chosen to introduce the first Customer Technology Preview (CTP) late in the development cycle, so that users and developers don't have to wait long until the targeted final release date in Q1 2007. They probably learned from the problems that can arise from making beta technology available too early, as seen with the Windows Workflow Foundation betas which had breaking changes in almost every new beta release that caused migration headaches for early adopters.

Let me see it!

Alright, here some screenshots of the available demos (Edit: Unfortunately there were problems with uploading pictures to the blog, so I had to replace my own shots with public ones. I'll post an update as soon as I get it fixed). Install the client from [4] and try them out yourself, there are more available than shown here!

Page Turn

This is a simple picture slideshow that uses a book-page turn effect when going to the next picture. You can even drag the corner of the image and turn over to the next picture yourself.

Sprawl Game

A simple game which shows off some of the graphic abilities of WPF/E. The size of the game scales with the browser size, and the (simple) animation is fluid. Obviously this looks just like any Flash-game, however one of the main differences is that the whole graphics and animations come from one XAML file that is publicly available and loaded by the WPF/E engine. Also, WPF/E is started as an instance of a JavaScript object, not as an embedded ActiveX object.

What's next?

In a way WPF/E is only the tip of the iceberg. Microsoft has developed a whole new product line under the Expression Studio label targeting user experience and interface design as well web and desktop application design. Expression Studio consists of the following four elements: Expression Web (Web design tool which has been released already as the effective successor of Microsoft FrontPage), Expression Blend (Smart-client design tool, in Beta 1 right now), Expression Design (Illustration and graphic design tool, CTP available), Expression Media (asset management tool, not available yet). All of them will be available as final products at the beginning of next year. Expression Web will allow the creation of WPF/E-enabled web sites.

There will be Visual Studio development extensions and tools to allow direct and tight integration of WPF/E with the common development tools.

Finally, while it hasn't been talked about much yet, the E in WPF/E does stand for Everywhere, so we can expect to see applications pop up that will enhance the user experience on mobile devices as well, most likely Windows Mobile 5 (and the upcoming 6.0 version) PocketPC and SmartPhone devices.

References

[1] ScottGu's Blog: Announcing the release of the first "WPF/E" CTP

[2] Somasegar's WebLog: A key milestone on the "user experience" journey

[3] Microsoft introduces Expression Studio, enhances family of professional design tools

[4] MSDN "WPF/E" (codename) Dev Center

[5] Wikipedia: Windows Presentation Foundation

[6] Netfx3: Windows Presentation Foundation

[7] Microsoft Expression Studio

posted @ Thursday, December 07, 2006 3:24 PM

Print

Comments on this entry:

# And the award for worst product name of the year goes to...

Left by Brain Matter at 4/16/2007 11:46 AM
Gravatar
And the award for worst product name of the year goes to...

Your comment:



 (will not be displayed)


 
 
 
Please add 8 and 4 and type the answer here:
 

Live Comment Preview:

 
«March»
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910