Review: Microsoft Silverlight 4 vs. Adobe Flash 10.1
Microsoft Silverlight 4 The Silverlight platform includes the Silverlight developer runtime and SDK, which are supported on Windows Vista, Windows 7, Windows XP SP3, and Windows Server 2008, along with desktop and browser clients for Windows and Mac OS X. Silverlight 4 Tools for Visual Studio 2010 lets Visual Studio developers target Silverlight projects with WCF RIA Services templates, libraries, and tools for managing desktop (out-of-browser) apps. It also includes the F# Runtime for Silverlight and an update for Microsoft Visual Web Developer Express 2010, which is a separate but freely available tool for developing Silverlight and AJAX-based apps.
Microsoft also offers additional apps that enhance Silverlight creation. Expression Blend 4, like Adobe's Flash Catalyst, streamlines prototyping and threading together UI interactions. Expression Encoder 4 is a free tool for encoding audio and video content, although you'll need the Pro version for H.264 encoding and support for IIS Smooth Streaming.
Silverlight's impressive development tools are a cut above those for Flash, and Microsoft's user interface design tools are tightly integrated. However, an RIA platform doesn't stand on tools alone, and Silverlight is a step behind Flash in such areas as native codec support, digital rights management, and hardware support.
Improvements on the latter front allow Silverlight 4 developers to incorporate input from webcams and microphones into their apps and to support output to printers, although Silverlight's bitmap-based printing pales in comparison to Adobe's crisp vector-based implementation. Silverlight 4 also ushers in touch support for tablets and smartphones, a new addition to Adobe's offering as well.
Complementing Windows Media DRM 10, Microsoft's latest PlayReady DRM technology secures digital content streams and downloads to Silverlight clients. Like Adobe's Flash Access 2, PlayReady can manage subscriptions and rentals, and it can persist licenses on the client for offline access.
But the most important addition in the Silverlight 4 release is the comprehensive developer support added to Visual Studio 2010. Previously, Visual Studio lacked a design interface for Silverlight, requiring developers to bang out their own XAML (Silverlight's XML-based UI description language) or use Microsoft Expression Blend. In either case, it was a cumbersome process. Visual Studio's new built-in XAML designer lets you drag and drop GUI components into place, while it generates the code in the background. There's no need to pop back and forth between Visual Studio and Expression Blend.
Visual Studio 2010 and Silverlight 4 Tools for Visual Studio 2010 and WCF RIA Services and tools install painlessly and include additional RIA services for SOAP and JSON endpoint mapping. Developers now gain an editable design surface with drag-and-drop data binding and property settings, as well as unified debugging inside a world-class IDE. Further, the ability to cross-compile the same code base for both .Net and Silverlight helps reduce dev cycles.
Under the hood, Microsoft's XAML parser was also given a much needed overhaul. Richer namespace management, direct content encapsulation, better whitespace handling, and error reporting all improve the framework.
Microsoft has a second authoring tool for Silverlight in Expression Blend 4, a user interface design tool akin to Adobe Catalyst. Expression Blend provides a graphical interface to prototype and thread Silverlight UI interactions without ever touching XAML.
Strictly a design tool in version 3, Expression Blend has been elevated to a Visual Studio-type coding facility in version 4 with full IntelliSense support and drag-and-drop element binding that really streamlines the process. I found it both more comprehensive and easier to work in than Adobe Catalyst.
Expression Blend wows with enhanced features like conditional behavior modeling. The new DataStore, a local dictionary for variable and state information, truly reduces coding to mere configuration, helping to close the designer-developer divide.
One of the bigger stumbling blocks for developers in Silverlight 3 was plugging in line-of-business data. Although these hurdles were surmountable via WCF (Windows Communication Foundation) services, Silverlight itself lacked connection options (such as Entity Framework and ADO.Net) available for Web and desktop apps. With WCF RIA Services in Silverlight 4, n-tier apps now have more flexibility in data access, validation, and authentication. By tapping the ASP.Net mid-layer, developers can better manage data-driven apps across the network.
New COM Interop access for trusted applications is a no brainer for Microsoft Office shops looking to use local system libraries. And finally, the the ability of Silverlight 4 applications to draw on Microsoft's MEF (Managed Extensibility Framework) -- a .Net 4 addition that simplifies pushing code updates -- is yet another hallmark of the professional-grade tools that Silverlight developers have at their disposal. Flash developers never had it this good.
Flash or Silverlight? Adobe has long dominated the RIA scene thanks to the ubiquitous Flash Player, estimated to run in upward of 93 percent of the world's Web browsers. But that domination was born in a near-vacuum of competitive choice. Adobe has improved the developer experience and finally constructed a bridge to its formidable design suite, but Microsoft has come further faster. To be fair, although Microsoft has made great strides with each release of Silverlight, much of the distance it has crossed had already been trod by Adobe.
Ultimately, innovative feature sets and powerful development tools will eke out an RIA category killer. Development of a solid mobile framework will be essential for both vendors as data consumption continues to shift from traditional desktop and laptop computers to smaller, touch-screen devices. Time will tell how Flash will fare on Android and whether Silverlight will join it there or remain faithful to Windows Phone 7.
For the moment, the decision is between Microsoft's strong developer orientation and Adobe's emphasis on design. For any enterprise project requiring heavy programming or data access, especially in-house applications that would benefit from Windows desktop integration, Silverlight is the top choice. The available codecs are sufficient by today's standards, and in most cases the user interface designs can be ported from Adobe Photoshop or Adobe Illustrator without degradation -- although workflow will be somewhat encumbered.
However, if your application will be making basic service calls to feed data and won't require a lot of processing overhead, or if your goal is eye-popping layouts or 3D graphics for customer-facing communications -- i.e., whenever the development process is design-intensive -- then you'll benefit from Adobe's designer-oriented approach. If you're already an Adobe shop, or you've already begun with Silverlight, you're undoubtedly happy with what you've got. Both platforms are strong, and the competition will keep both vendors working hard to make them better.
This story, "InfoWorld review: Microsoft Silverlight 4 vs. Adobe Flash 10.1," was originally published at InfoWorld.com. Follow the latest news in software development at InfoWorld.com.
Read more about developer world in InfoWorld's Developer World Channel.