Ramblings on Windows Presentation Foundation (WPF), WPF/E and the Direction of Microsoft

November 24th, 2006 / Andre de Cavaignac : On Software

Reading through the WPF architecture documents on MSDN and MSDN blogs turned up some interesting hints about the overall direction of WPF and Microsoft. As the web matures and bandwidth increases, it is becoming ever more apparent that "mainframe" computing is back in style. Currently, Google takes the lead (however sour it is) in this department of computing. Using HTML as a delivery method for their applications and a huge server farm as their mainframe, Google has found a way to deliver rudamentrary software to consumers in a thin-client design. Microsoft is clearly the runner up in this situation, and has a genuine interest in ensuring that the market for Windows clients doesn't disappear. This being said, Microsoft, too is embracing thin-clients, just as they did with their original DHTML/ActiveX push. HTML, as few would argue, is a horrible delivery method for applications. While it has proven effective for rendering content (such as articles), higher DPI monitors and more demanding graphical needs make HTML a very weak platform for GUI development. Enter WPF. WPF seems here to change the ballgame. Not only does WPF have a significant advantage over HTML in terms of high DPI layout (see The New York Times Times Reader as an example), but it also allows for rich and responsive UIs to be created, as you get in a rich client. The most interesting aspect of WPF is its core architecture. While currently marketed as a replacement for the aging Winforms/GDI stack in Windows rich client applications, WPF is much more. The most significant (and often overlooked) feature of WPF is its remoting capabilities . For those who have tried using Flip3D in Vista over RDP, you will know what I'm referring to. WPF is a two tier system, composed of the application and the renderer (also known as milcore). In WPF, the application tier builds a "visual tree" of all the elements to be rendered and sends them to milcore through a messaging protocol. milcore then caches this tree, parses it, and renders it. Changes to the GUI are then sent as deltas to this tree. (Image from MSDN) So what does this mean for WPF? It means this tree does not have to be serialized down to an milcore executing on the local machine. In fact, version 1.0 already supports remoting of the messages to milcore over a network (ex. RDP and Flip3D). For us (consumers and developers), this means we may finally see the mess that is HTML come to an end, replaced by a rich and more powerful rendering system. For Microsoft, this is a major change. It opens the possibility that Microsoft wants to own the next HTML, and WPF/E (which is WPF running on Mac) is their road there. If Microsoft can get WPF installed on every machine, then Windows Server (running the application and serializing WPF/milcore messages) will be the only server capable of serving up these rich applications. If this is truely their direction (right now its only my speculation), it could mean that Microsoft has the potential to hit Google and others where it hurts: the rich internet application business, where Google will have no competing technology to confront WPF. One things for sure, as the battle for the web heats up, WPF will become more of a major player — and an interesting one it will be. Sources/References http://msdn2.microsoft.com/en-us/library/ms750441.aspx — WPF Architecture on MSDN http://blogs.msdn.com/greg_schechter/archive/2006/06/09/623566.aspx — WDM and WPF Concepts by Greg Schechter

Comments are closed.