Silverlight vs. Flash

From Citizendium
Revision as of 09:36, 14 August 2008 by imported>Ganggang Hu
Jump to navigation Jump to search

Technology

Animation manipulation

Flash is frame based, which requires users to compute the duration of an animation. For example, there are 12 frames per second in Flash animation model. If users want an object to move 5 seconds continuously, they need to calculate how many frames 5 seconds will take. Also, the player doesn't maintain any frame rate unless users embed blank audio tracks.

Instead of frame based, Silverlight supports the time based WPF animation model, which allows users to define the start and end conditions without calculating positions on various frames. Then it can generate animation process automatically.

Audio Decoder

The audio formats Flash supports are all proprietary, except for MP3 and ADPCM, whose quality of compression is not good enough, and still requires licensing fees and third party conversion libraries.

Compare to Flash. Silverlight implements industry standard VC-1 codec for video, as well as offering support for WMV and WMA. Microsoft makes available a free Encoder SDK for producing WMA and WMV so that people are able to encode by themselves with easier integration and cheaper cost.

Binary or Text file

Flash stores shapes using binary shape records. In order to write shape definitions, users need to either license a third party Flash file format SDK, or build libraries by themselves. While Silverlight uses text based XAML, which can be output using a simple XML object. So users don't need to buy special libraries or write their own libraries, which can save plenty of time.

Flash stores fonts glyphs using the same exact shape definitions that are used for any other shape. The player does not understand TTF files, so users need to use the Win32 APIs to figure out intricacies of fonts in the Flash file format documentation by themselves. But in Silverlight, WPF/E lets users embed true type font information directly into projects, and download that information with the downloader object without doing extra work.

Browser support

Platform

Programming Tool

Users can reuse C# classes from their tool inside exported contents. But there is no development environment for creating desktop applications which is based on ActionScript. In Flash route, users have to write all the classes and objects twice to keep pace with the tool changes. They need .NET classes to handle the author time experience and Flash classes to handle the run-time. If there are server components, users need to switch back to .NET and discard all the classes that the run time is using.

Unlike Flash that is largely built for graphic designers, Silverlight allows users to create contents with the same tools they use on a daily basis (such as Visual Studio .NET) in order to keep all the code for the server components, the authoring tool components, and the runtime/player components inside the same project.

Market

Conclusion