On October 4th, Steve Ballmer was in Switzerland. The Swiss Developer & Platform Evangelism team, to which I belong, organized a public event with a keynote for him. After this keynote, I was supposed to be on stage with my colleague Sascha Corti to present the "next generation Internet application". Unfortunately, a mean virus has kept me away from stage and close to the.... Anyway, I just wanted to share with you the high-level content of that presentation that, by the way, extends pretty nicely one of my previous post (User Experience Matters)...

*** Overview ***

Let's start from the beginning. If we focus on User Interface Technologies, we can identify 3 types of them: Desktop Client, Web Client, and the new Rich Internet Applications (figure below).

 SteveB1

Within these categories, we find today excellent tools/technologies on the market. However, we don't see any of them that can cover the three types with excellence.

SteveB2

But Microsoft :-)

With the newcomer Silverlight for Rich Internet Application, we can complete a picture where

  • Windows Server/IIS and ASP.NET (+AJAX) cover the classical web applications and
  • Office and the .NET are a fantastic platform for developing desktop clients (Winforms, WPF, OBA).

And even more interesting...

SteveB3

... all these technologies rely on the .NET Framework*, making virtually any .NET developer capable of using his .NET skills at best for developing desktop, web, or RIA applications!

[* Regarding Silverlight, I am considering here version 1.1 and successors]

But it is even better...

SteveB4

... because as a developer, I can use the same, familiar tool (Visual Studio) to develop every type of application. Additionally, the latest technologies based on XAML (WPF, Silverlight - see below for additional details), allow a seamless cooperation between Designers and Developers, who can work simultaneously on the same project without disturbing each other - The one designing the user interface with Expression Studio, the other building the business logic.

Isn't this cool?

*** Web UI Technologies ***

In this second part of this post, I would like to focus on the newest Web UI Technologies: ASP.NET AJAX, Silverlight, and WPF rendered in the browser (.xbap).

In my previous post User Experience Matters, I have already started discussing them under the reach vs. rich perspective. I do think that this is an excellent approach to identify which technology should be chosen for which scenario. For this reason, I have tried to "enrich" my previous slides with more details.

If we consider reach, the requirements of these technologies on the desktop systems are the limiting factors. Here, the summary:

SteveB5

As we can clearly see, we have a situation where

  • ASP.NET AJAX runs virtually anywhere allowing us great reach
  • Silverlight runs on the latest Microsoft and Mac OS's, within their most common browsers (with Silverlight plug-in).
  • WPF runs only on the latest Microsoft OS's with the .NET Framework 3.x installed.

So, considering these limitations, for which scenarios is meaningful to consider Silverlight and WPF for Internet applications? The following slide helps to answer this question:

SteveB8

If we look at rich, it increases from left to right.

With AJAX, we are no longer forced to post back the entire web page to the server (and receive back a new one). In fact, it allows so-called partial roundtrips, where only portion of the web site are actualized through server communication. Additionally, AJAX "enables" JavaScript-based client-side processing. The combination of these 2 aspects permits the implementation of web sites that are more responsive and user-friendly, without flickering and with nice features like auto-complete, hovermenu, dragpanels,...

v The canonical example for AJAX stile site is mail.live.com.

 

Silverlight raises the bar pretty higher. In fact, it allows an XAML-based declarative definition of the user interface, which is fully scalable (vector graphic) and able of rendering rich 2D animations. Additionally, one of the strengths of Silverlight is the ability of rendering videos (and audio), even in HD format. If your goal is to develop an application with rich media integration and animation, AJAX is not the technology for you and you should look at Silverlight instead.

v Examples:  Airlines Demo, Tafiti, Halo3 Interactive Game Guide, Allblacks gadget, hsn,... and many more, some of them are listed on http://silverlight.net/showcase/

 

If you want to raise the bar even higher and you target to develop applications

  • that can render 3D animations, or
  • that contains so intensive graphical calculations that it would be better to use the GPU power instead of the CPU one, or
  • that will need to integrate with other software, like office or the OS itself - and therefore require full trust, or
  • that can support complex printing, or
  • that can be used offline

then WPF is the technology that serves you at best.

v A few self-explicatory examples: British Library, Woodgrove Finance, NY Times reader

 

*** A few more details on Silverlight ***

SteveB7

About one month ago, Silverlight has been released in his version 1.0.

In this version, the XAML Elements are steered via JavaScript, as we can see in the example reproduced in the following slide:

SteveB7b 

To help Mr. Everybody's site to include video rendering capabilities within its assets without having the sorrows of building the necessary streaming infrastructure, Microsoft offers free streaming services for Silverlight.

SteveB9

Under http://silverlight.live.com you can upload up to 4GB of (video) data for free. Microsoft Live delivers you the infrastructure to efficiently stream your videos all over the world.

Once again, isn't this cool?

 

*** Silverlight, the future ***

Silverlight 1.1 is the future of Silverlight.

In a way, it is what most of us were waiting for: The possibility of using .NET to implement applications that target non-Microsoft OS's. With Silverlight 1.1 and its CLR Core, developers will be able to use the .NET object/programming model, as well as the .NET tools (Visual Studio), to develop browser applications that will run

  • on Windows 2000, WS2003, XP SP2, Vista via Internet Explorer or FireFox
  • on MacOS via Safari
  • on Linux (Microsoft and Novell announced a cooperation to develop a Linux Silverlight plugin - more details under moonlight)
  • and later on mobile devices.

SteveB10

Another important feature that will be delivered with Silverlight 1.1 is Digital Right Management capabilities. Silverlight 1.1 will support PlayReady DRM.

 

*** Summarizing... ***

SteveB11

I hope this was helpful and that you will continue reading my post.

Take care and start silverlighting right now!