A while ago, Dax Pandhi, a Microsoft UX fanatic as far as I know him, had several rants about all the attention that Silverlight is getting, almost undermining the value of Windows Presentation Foundation (WPF). He had strong concerns that though Silverlight is a cool technology, people should not lose focus on WPF. I think the Silverlight buzz is not all hype. Like I say in many of my forums, Silverlight is one of the coolest technologies from Microsoft since .NET. Simply because by taking .NET into the web browser and across platforms, it opens up a Pandora's box of possibilities! I believe Silverlight will get faster adoption than WPF, because WPF requires the underlying platform to be XP SP 2 or Vista - with .NET 3.0 installed - which in many countries, including India, is a very small share of PCs. However, Silverlight has much lesser requirements and should catch up much faster. Note that Silverlight also has OS requirements to be Windows XP and above (with support for Windows 2000 most likely coming later), but yet does not require you to have .NET 3.0 installed.
With all the choices around now, I thought I'll take some time to write a post on how you should choose the best UX technology for your applications.
User Experience is one of the key factors for any software application to succeed. Be it the desktop or the web or a device, UX plays an important role in establishing an emotional connection and a comfort or familiarity with the end-user. This increases customer loyalty to the product/service and if your product knows how to make money from customer loyalty, you'll probably make a lot of it. All known things.
Delivering great UX requires several steps. Some of these include user behavior analysis, information architecture, blueprints, navigational models, etc. All of these then get translated into visual design and code. Design and code eventually decide how the UX vision is translated into the actual software. Traditionally, limitations of platform and tools have made very rich designs (the kind with 3D, Documents, Multimedia) a distant dream for average developers. Regular Forms-style applications are the desktop trend and on the Web, it is content mixed with form controls in various layouts.
Very few technologies were able to bring fluid design into the desktop arena - DirectX, GDI+, etc. being some of those - and even few on the Web - Java, ActiveX and Flash. Microsoft's investments into UX technologies has been aimed at reducing the barrier (both platform and tools) to high levels of User Experience. With the release of Windows Presentation Foundation (WPF) for the desktop (on Windows Vista, XP SP2 and Windows Server 2003), it is now possible to think of never before UX possibilities.
On the web, AJAX has added a shot in the arm to traditional web applications, making them far more responsive and intuitive to use. Silverlight steps this up many levels by allowing rich interactive application interfaces to be built for the Web, interspersing with the functionality of HTML, ASP.NET and AJAX. Silverlight also takes it cross-browser and cross-platform (IE, Firefox, Safari on Windows/Mac).
Again, all known things.
So how does one approach UX in this new world of multiple possibilities? Based on who your end-users are, how they will use the application, what product/service you are delivering and what platforms you are targeting, there are multiple options:
Your technology choices: Windows Forms - if it is a simple application like a data-entry application. Windows Presentation Foundation (WPF) - if it is an application that will use some rich graphical features such as vector drawings, multimedia, visual styles, etc.
Your technology choices:
Windows Forms - if it is a simple application like a data-entry application.
Windows Presentation Foundation (WPF) - if it is an application that will use some rich graphical features such as vector drawings, multimedia, visual styles, etc.
Your technology choices: XAML Browser Applications (XBAP) - which is still WPF, but a deployment model that delivers WPF applications off an URL, downloads the application, sandboxes it and runs it within the browser window (with an actual process - preshost.exe - executing it) ClickOnce - With Windows Forms, you could achieve this with ClickOnce technology. Again a deployment model, but if your application did not want heavily rich features, you could opt for lighter Windows Forms applications. (ClickOnce for WPF applications is synonymous with XBAP)
XAML Browser Applications (XBAP) - which is still WPF, but a deployment model that delivers WPF applications off an URL, downloads the application, sandboxes it and runs it within the browser window (with an actual process - preshost.exe - executing it)
ClickOnce - With Windows Forms, you could achieve this with ClickOnce technology. Again a deployment model, but if your application did not want heavily rich features, you could opt for lighter Windows Forms applications. (ClickOnce for WPF applications is synonymous with XBAP)
Your technology choices: ASP.NET with AJAX - the easiest way to take your current web applications and "AJAXify" them is to migrate to ASP.NET 2.0 and AJAX. Harish has been posting a lot around this lately and I encourage you to check his blog.
ASP.NET with AJAX - the easiest way to take your current web applications and "AJAXify" them is to migrate to ASP.NET 2.0 and AJAX. Harish has been posting a lot around this lately and I encourage you to check his blog.
Your technology choices: Silverlight - a great technology fit for developing those web applications that require high levels of user interaction and rich visualization.
Silverlight - a great technology fit for developing those web applications that require high levels of user interaction and rich visualization.
Your technology choices: WPF Smart Clients - Basically these are regular desktop WPF applications but with several features to detect if you are connected to the Internet, download data when connected, locally cache data, synchronize data when connected, etc. Smart Clients are a concept that Microsoft has had for a few years now and the basic design patterns remain the same with WPF as well. A new technology codenamed "Acropolis" and the Smart Client Software Factory are some useful tools if you are building these kind of applications.
WPF Smart Clients - Basically these are regular desktop WPF applications but with several features to detect if you are connected to the Internet, download data when connected, locally cache data, synchronize data when connected, etc. Smart Clients are a concept that Microsoft has had for a few years now and the basic design patterns remain the same with WPF as well. A new technology codenamed "Acropolis" and the Smart Client Software Factory are some useful tools if you are building these kind of applications.
I have only highlighted some of the common scenarios of applications. There are many more - including Tablet PC development, Speech interface development, mobile device development, etc. that I am not going into.
When you look at the overall UX technologies available, and plot them based on their capabilities today, you get the following:
This is the whole UX map that is available today on the Microsoft platform. So go ahead and kick some ass with snazzy user experiences!
Remember Me
Page rendered at Friday, November 21, 2008 5:21:40 AM (India Standard Time, UTC+05:30)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent the views of Microsoft Corporation in anyway.