Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
MSDN
The Beta Experience

Avalon

by Corrado Cavalli .NET MVP


Comparing today's Windows applications with those of 20 years ago it is immediately obvious that the significant introduction of object oriented programming, the large adoption of the .NET Framework, and tools like Visual Studio, have changed radically the way in which Windows Forms applications are developed.

One thing however has not changed, or at least has changed only marginally: The User Interface.

In fact, we still use the same 2D engine as used 20 years ago, and we still live with the same limitations in spite of the obvious exponential increase in the power of hardware available today. That is why, after many years, Microsoft has decided to create WPF (Windows Presentation Foundation, formerly known as 'Avalon'). A unified object based presentation engine based on DirectX and therefore able to maximise the enormous potential offered by new graphics boards.

WPF is designed to become the base for the user experience of tomorrow's applications.

Obviously, to create a rich client application requires significant experience in the field of graphics design, this is why, in tandem with the programmer, the profile of a 'designer' will become more and more prominent.

In order to avoid the designer's and developer's work interfering with each other, WPF also introduces in Windows applications the clear separation between the user interface and related functionality. The former being written using XAML (Extensible Application Markup Language), the latter using managed code.

XAML is an XML based markup language that facilitates rich and detailed descriptions of each element of the user interface, allowing association of code to each element, whilst remaining a neutral language.

The amount of XAML required to be written even for a simple user interface is significant, and it is for this reason that Microsoft is creating two new tools capable of exploiting the potential of both XAML and WPF : The first (codenamed 'Sparkle'), is intended mainly for non programmers whilst the second (codenamed 'Cider'), will be an integral part of the next edition of Visual Studio (codenamed 'Orcas'), and will be mainly used when the roles of designer and developer coincide.

What distinguishes WPF is the capability to autonomously manage each function of the user interface that previously was managed through application code.

Being vector based, a WPF application is able to adapt itself and supply the same level of detail for any type of display. It can autonomously control the data binding functions, and can be totally 'themed' due to the fact that in WPF, as in the WEB, all elements can be controlled by styles, or described through predefined templates.

How many times have we wanted to write elements of our application in 3D, or even introduce animation without writing tons of code? Well WPF not only offers 3D primitives support, but also allows animation handling by simply declaring them via XAML and then allowing the WPF engine to sort it all out ,it having direct control of the graphical hardware, is able to autonomously render each element without requiring the complete redraw of invalidated parts.

WPF is not just a prerogative of Windows applications; it opens up the new interesting scenario of Navigation Applications: Windows applications residing on a web server that can be downloaded and hosted by Internet Explorer via URL, thus obtaining new 'WEB-like applications' with the potential of Windows applications and the attractive and modern look of WPF.

Of course Windows Forms applications won't blow away when WPF will be officially launched; there will be a long overlap period where both technologies will co-exist. The good news is that we will not have to decide which one to use because both technologies can be easily hosted with each other.

As you can easily understand WPF will be in a certain way, a revolution. Therefore it just remains for us to get ready in time starting playing with the various CTP, and immediately separating the user interface from the code on today's applications, thus making the move to this new and enthusiastic experience called WPF easier.


© 2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement
Microsoft