Reach vs Fidelity: WinFX, Atlas, WPF/E, XBAP and ASP.NET

In the world of application delivery there has long been a choice between reach and fidelity: either your application is high fidelity (eg a rich client with a rich user experience) or it has really broad reach (eg an HTML page). The Nirvana is to bring these two things together so that you get broad reach with a high fidelity application.

And for many years now the Microsoft platform has been one of the few ways - maybe the only way - of getting close to that ideal. Because of the broad use of the Windows platform, applications that are developed for it have very broad reach, and of course they can use all of the power of a locally-installed application.

So far, so much history. But of course people want to go further, and the internet opened a whole lot of doors in the quest to broaden reach even further. Web pages started getting better in terms of user experience, and with the growing use of asynchronous Javascript on the client (ie AJAX-type technologies) we're starting to see rapidly increasing fidelity in web applications.

So where does Microsoft play in this space? I thought it worth spelling out where technologies like WPF, Atlas, XBAP, WPF/E, ASP.NET and WinFX fit in the "reach vs fidelity" world.

  • At the lowest end of the fidelity scale, and highest end of the reach scale,  you have HTML.
  • WinFX, by using the Windows Presentation Foundation (WPF), allows you to produce applications that have the very highest fidelity ie it's possible to produce extremely usable, beautiful, eye-popping, etc applications. And technologies like click-once in WinFX make it really easy to deploy and update such applications. But you do need the Windows platform on the client, and WinFX runtime components installed
  • XBAP applications (see my post on this) stretch WinFX reach even further by making the whole update/install cycle virtually invisible. So again, you get ultra-high fidelity on Windows clients with a minimum of fuss, running inside a browser.
  • Atlas makes it much easier for developers to produce AJAX-enabled websites. Reach is very broad ie it's cross-platform, cross browser, doesn't rely on Windows on the client. But of course the user experience is not really up to WinFX standards, so this is a bit of a compromise between reach and fidelity. And obviously has a place where you need to go really broad.
  • WPF/E (Windows Presentation Foundation "Everywhere") was announced at the PDC last year and promises cut-down WPF technology across platforms and across browsers. On the face of it this reaches closer to Nirvana, but it's still in development. If you're going to Mix06 you may well hear more about this technology.
  • And of course ASP.NET has been around for a while and also provides very wide reach. ASP.NET websites run across browsers, and can be accessed from any platform that can access the web. So again very broad reach but with - at best - Web 2.0 fidelity (ie using Atlas to get AJAX features).

Where does this leave us? Simply put, the choice is yours. Where you believe that the Microsoft platform provides sufficient breadth of reach then WinFX - either via click-once install or XBAP - gives you the best possible user experience. Where you need to go broader, you could use Atlas with ASP.NET. And when we start releasing CTPs of WPF/E, you have the option of even higher fidelity broad reach.