Microsoft's Silverlight 4 - more than Flash envy
MeeGo to phones, set-tops, and beyond
Print this, or not...
It is all very well listing these features, but some are poorly implemented. Printing, for example, is based on sending a bitmap to the printer, not vector fonts or graphics, which means low quality. The WriteableBitmap introduced in Silverlight 3 is too basic. WebCam support is a start, but there is no codec writer to compress the video stream for sending over the internet.
Despite these and other flaws, Version 4.0 is still a substantial improvement. In addition, the development story is better following the release of Visual Studio 2010. Silverlight has two official authoring tools, Visual Studio for code and Expression Blend for design. Blend is capable but complex, and it's not a tool that developers are likely to pick up quickly.
Visual Studio 2008 had no visual designer for Silverlight, which meant either learning Blend or hand-rolling XAML. Since XAML is horribly verbose, it was a tough choice. The new Visual Studio has a two-way visual designer that is fine for business applications.
It may seem a small point, but this one feature significantly lowers the barriers for Silverlight development. Visual Studio's ability to combine server and client code in one solution and debug both seamlessly is another advantage. Note that both Blend and the Silverlight tools for Visual Studio are at Release Candidate status, and only the runtime is fully released.
Expression Blend 4 - capable but tricky to learn
Some things count against Silverlight. One problem is that designers generally prefer Adobe's tools, often on a Mac, whereas Silverlight authoring requires Expression Blend and Windows. Blend can import from Photoshop, but it is still an issue. Another snag is that the Silverlight runtime is less widely deployed than Flash and equally unlikely to make it to Apple's iPhone or iPad. Moonlight offers some Linux support, but tends to lag Microsoft's implementation.
You can use Silverlight to create annoying little animations for web pages, but a fair proportion of those browsing the web will not see them. The fact that Microsoft has added the Windows-only COM interop feature is also a concern, casting doubt on its cross-platform commitment.
The more capable Silverlight becomes, the more attractive it is as an alternative to a Windows-only client. The .NET runtime performs well, somewhat better than before in this release. There is also strong third-party component support from the likes of Telerik, DevExpress, Infragistics, and ComponentOne.
There is no doubting Silverlight's ability to support sophisticated and good-looking applications, and it is especially strong for data visualization. Microsoft has come a long way since 2007, when .NET and WPF were Windows-only technologies, and Silverlight 4.0 with Visual Studio 2010 forms an excellent RIA platform.
However, it is application development, rather than video streaming or web site decoration, which is its greatest strength. ®