Bas Geertsema

Recently I decided to investigate more in real smart clients, partly because I am just fed up with all these DHTML / AJAX workarounds. Despite how wonderfull the supporting libraries are these days, it is still in no ways comparable to a decent desktop application. Fortunately I am developing an online application in which we can get away by demanding minimal system requirements at the user’s site. Such as the use of Windows XP / Vista and the use of IE7. In this fortunate position I am investigating the use of WPF applications to create a superb interactive interface. I started out with XBAP which stands for XAML Browser Application and in short this means that XBAP applications can run inside webpages (for example within an IFRAME) and you can almost use the full WPF feature set. Unlike Silverlight, which at the moment only provides a small subset of WPF and they are still busy implementing the first primitive controls. There is a catch however, the clients needs to work on a modern Windows platform and using IE6 or IE7 and must have the .NET framework 3.0 or higher installed. In my case this was no showstopper, so I continued investigating XBAP and try to create some test applications.

What turned out to be the showstopper was the security sandbox in which XBAP applications run. By default your XBAP applications work in Partial Trust, which is severy limited. I had problems setting cookies, accessing webresources (even from the same host?) and was not able to perform any .NET Remoting due to security restrictions, although I was able to use some WCF webservices. Nevertheless, it took me some time to figure all things out and I noticed there is very, very little information about XBAP on the internet. Most of which are not positive at all. It turned out that XBAP with it’s sandbox is just too restricted to be meaningful as a smart client platform.

Just as I was about to give up, I turned my eye to developing regular WPF (desktop) applications and using Click-Once for online deployment. ClickOnce supports automatic downloads, automatic update and no local install. In short it takes care of all the hasle of software deployment, which is one of the main reasons web applications are so popular. After the initial download of your application the user is prompted with a screen to accept the installation and from that point on your application can run freely with Full-Trust and it is the smart client you really want it to be.

.. and that is ofcourse the reason XBAP has been around for a year and a half (as far as blogs and forum posts go) but is still not really used. Even though Microsoft markets XBAP as some kind of smart client toolset, it just isn’t. For a real smart client you need out of that partial trust and use a regular WPF application with click-once deployment. And for some cool graphics with no real functionality you might as well turn to Adobe Flash (widely supported) or even Microsoft Silverlight (small download and available on multiple platforms).

comments powered by Disqus