It was just a few weeks ago when Microsoft released the first release candidate (RC) of Silverlight, formerly known as WPF/Everywhere. As a software product, Silverlight seems to have a curious relationship with its own fate. Here are a few points to think over:
- Everybody agrees that Silverlight rocks and is going to have a brilliant future. Some even arrive to state that it is one of the pillars on which future applications will be built;
- Nobody (hopefully, outside the circle of the various program managers) could today honestly say more about the shape and contents of such a "guaranteed" brilliant future;
- Silverlight is the first soon-to-be product that is kind of publicly declared obsolete before reaching even the Beta stage of its version 1.0. It happened when Microsoft released the alpha of version 1.1 at the same time of the first beta of version 1.0;
- Silverlight is the sole product I'm able to list that has its destiny set in the code-name rather than in the name. The destiny is, bringing WPF everywhere. For some reasons, no islands in no part of the world (like Whidbey, Orcas, and latest Hawaii for the successor of VS 2008) were involved to keep the ultimate goals of the product secret during the development stage;
- Potentially designed to do virtually everything in any future versions (local file I/O, offline access to resources, hardware control over the Web), Silverlight appears to be in the uncomfortable position of some predestinates who know their future (sic!) but ignore most of their present;
Currently split in version 1.0 (RC1 at this stage) and the much more powerful version 1.1 (Beta 1 at this stage), Silverlight is clearly a powerful platform for rich Internet-based applications of the future.
Imagine It. Done. But Later.
I suggest you think of Silverlight as a virtual product and forget about the crazy versioning story and the sequence of releases and upgrades that we observed and still will observe in the next months. Let's reason as if it were a complete and released product. Who should care about it?
Nearly all developers involved with the Web from a .NET platform should care about Silverlight. The product enables you to embed a shrinkwrapped version of the CLR in the browser on a variety of operating systems. Again, the ultimate goal of Silverlight is in its original code-name: taking WPF and the .NET Framework everywhere, including Mac and Linux, thanks to the efforts of the Mono group. By loading a CLR-like engine, actually called Dynamic Language Runtime (DLR) in the browser, you have a tremendous tool to build Internet applications that are so rich to look nearly identical to desktop applications over the Web and through the browser. (Still something significantly different from special forms of deployment of Windows applications such ClickOnce.)
Silverlight as a Complete Product
You can read the feature matrix of current Silverlight versions here. Version 1.0 is limited to media and graphics. Not bad, but is it really worth the hype? A much stronger and rocking version 1.1 is said to be released towards the end of 2007. If confirmed, version 1.0 will be officially gone in three months, fully replaced by version 1.1. It's nonsense to me. But it could just be my developer-oriented mindset. Probably, from a marketing perspective in this way Silverlight started fighting against Flash a long time before its actual availability. By the way, Silverlight may find a more aggressive and qualified competitor than Flash in Adobe Flex.
To be a complete and mature product usable in line-of-business applications, Silverlight needs to grow bigger and taller. And incorporate key core features such as layout, input/editing, data binding. Maybe this will happen in version 1.1, if not in a futuristic version 2.0.
The Bottom Line
To use a developer metaphor, I see Silverlight today like a base class where only a few methods contain a concrete and executable body. And the team is rushing to fill more and more methods with a significant run time behavior.
As of version 1.0, Silverlight is good to play media without requiring any players to be installed on the client browser. Great achievement, anyway. As of version 1.0, Silverlight is also able to render XAML scripts into a beautiful and colorful graphics. Look at Tafiti.com for an example. Core graphics is important but is far from being a killer feature without related features such as layout and data binding. And these are being added to Silverlight 1.1 as I write this. If not later on.
No question: Silverlight is important. No question: I'll be using it and recommending it to clients of any size and portfolio. But I'm talking about Silverlight as a complete and completed product. Which is not now. What are customers hearing from me these days?
I won't be recommending Silverlight in a line-of-business application for about a year and anyway not until the feature matrix is complete and there will be just one de facto version of Silverlight.
But it's going to be great. Trust me.
Dino Esposito is one of the world's authorities on Web technology and software architecture. Dino published an array of books, most of which are considered state-of-the-art in their respective areas. His most recent books are “Microsoft ® .NET: Architecting Applications for the Enterprise” and “...
This author has published 54 articles on DotNetSlackers. View other articles or the complete profile here.
Please login to rate or to leave a comment.