With the release of Silverlight 3, Microsoft continues its race to catch up with the product’s main competition-namely, Adobe’s Flash. To a large degree, Microsoft has done a good job, adding many features that Silverlight lacked compared with Flash.
But Silverlight still lags behind Adobe’s Flash-and behind Adobe’s related products, AIR and Flex–when it comes to providing the capabilities that one expects from an RIA (rich Internet application) platform.
Further, Silverlight is still well behind Flash in terms of market penetration, which means developers looking to reach a wide audience will still choose Flash. (This is well-illustrated by the fact that Microsoft itself uses Flash for the much-talked-about video preview feature inside the company’s new Bing search service.)
Still, Silverlight 3 is a promising entry in the RIA arena, and it is significantly improved over Version 2, especially in the areas of high-definition code support and in its ability to run outside the browser. While Silverlight may not overtake Adobe’s offerings (or, for that matter, Java, AJAX or HTML 5), it could prove to be a powerful new tool in the arsenal of Microsoft platform developers.
The Mono-based Moonlight project provides Silverlight functionality for Linux users, although Moonlight’s capabilities are not as rich as those of Silverlight 3.
To the Test
I loaded Silverlight onto Windows and Mac OS systems, and tested it using sample applications, publicly available Silverlight content and applications, and my own content.
From a user perspective, one of the biggest new features in Silverlight 3 is the ability to run applications out of the browser and offline. This capability which must be enabled by the developer, allows users to run Silverlight applications as stand-alone desktop applications, complete with the ability to run on startup and handle basic local data storage.
In tests, this capability worked well, but it isn’t on the same level of a desktop platform such as Adobe AIR. For the most part, it is more similar to Mozilla Prism or Google Gears, though with richer media capabilities.
Defining an application for use outside the browser was a simple task. I simply chose Enable Applications Outside of Browser from the Project menu. Users of the application would then have the option to run it out of browser and to create Desktop and Start menu icons.
Another nice Silverlight 3 feature is Smooth Streaming, which is actually provided by delivering content using Internet Information Services on Windows Server 2008. This makes it possible to deliver content and have the content adjust its quality and bandwidth usage on the fly depending on the user’s connection quality.
On the video side, Silverlight 3 joins Flash in its support of H.264 video and AAC audio, which provide high-quality Internet-based video and audio, respectively. Silverlight 3 also includes several interactive and 3D enhancements, providing greater content manipulation and control for users.
Building Silverlight Apps
The traditional method for building Silverlight apps has been to use Microsoft Expression Blend for rich design of applications and Visual Studio for the development tasks.
This is probably still the best way to go, but with Expression Blend 3, which is due out in August and which I tested as a release candidate, it is possible to build entire Silverlight applications within the one development environment.
One of the more interesting new features in Expression Blend 3 is called SketchFlow, a tool for building prototypes for Silverlight applications. However, SketchFlow makes it possible to build a prototype that has more in common with a rough take on the back of a napkin than the classic software prototype.
The idea behind this, which appears to pull from the book “Sketching User Experiences” by Microsoft’s Bill Buxton, is that rough sketches encourage discussion and collaboration more than clean prototypes that look like a final product.
With SketchFlow, I could build a workflow to show the application process and then build sample interfaces using drag-and-drop elements that looked like they were drawn with a pencil. I thought this worked well, though traditionalists can still build prototypes that don’t look like they came from the back of a napkin.
SketchFlow could also be exported as a Web application that could be easily shared with team partners for commenting and review. With this application, team members could collaborate on a prototype by adding notes and sketching changes to the prototype.
For those who want to develop in Expression Blend or for developers who may build in Visual Studio but don’t want to jump between environments to make small changes, the inclusion of a much-improved code editor in Expression Blend 3 will be very welcome.
With this code editor, along with the traditional ability to edit XAML code, it was also possible to edit C# and Visual Basic code from within Expression Blend. In addition, the editor provides the standard Microsoft IntelliSense ability to autocomplete and suggest code.
Also new in Expression Blend 3 (though already available in Adobe Creative Suite tools) is the ability to define sample data for use when building and testing data-based Silverlight applications. With this feature, I could either manually define data points or use an XML file to serve as the datasource for my application while in Expression Blend.
The Behaviors capability in Expression Blend 3 essentially makes it possible to create, use and reuse snippets of code that can be directly applied in the design environment without the need to write additional code. So, for example, a simple Play control for media could be dragged and dropped onto the design surface.
Also, taking into account the fact that a great deal of rich content comes from Adobe tools such as Photoshop and Illustrator, Expression Blend 3 can directly import the native file formats of these tools and preserve elements and layers from them.
Chief Technology Analyst Jim Rapoza can be reached at firstname.lastname@example.org.