Silverlight vs. Flash: Difference between revisions
imported>Ganggang Hu No edit summary |
imported>Ganggang Hu No edit summary |
||
Line 11: | Line 11: | ||
*Tools product line integrity | *Tools product line integrity | ||
=== Animation | On the other hand, both of them have their unique features. For example, [[Flash]] has offline document support, while [[Microsoft Silverlight|Silverlight]] has hardware-assisted editing and encoding solutions, [[XML]]-based presentation for SEO, and content access protection (DRM). | ||
=== 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. | [[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, [[Microsoft Silverlight|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. | Instead of frame based, [[Microsoft Silverlight|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 | === Audio decoder === | ||
[[Flash]] supports multiple video formats, | [[Flash]] supports multiple video formats with high quality codec and nice bandwidth usage, such as scalable full screen video up to HD(720p). The price of its media server licensing(unlimited bandwidth) is only one forth of that of [[Microsoft Silverlight|Silverlight]]. But except that its Sorenson’s proprietary H.263 implementation is loosely based on a standard, [[Flash]] has no industry standard video codec yet. Also, the audio formats [[Flash]] supports are all proprietary, except for MP3 and ADPCM, whose quality of compression is not so impressive, and still requires licensing fees and third party conversion libraries. | ||
Compare to [[Flash]], [[Microsoft Silverlight|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. | Compare to [[Flash]], [[Microsoft Silverlight|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 | === 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 [[Microsoft Silverlight|Silverlight]] uses text based XAML, which can be output using an [[XML]] object. So users don't need to buy special libraries or write their own libraries. | [[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 [[Microsoft Silverlight|Silverlight]] uses text based XAML, which can be output using an [[XML]] object. So users don't need to buy special libraries or write their own libraries. | ||
Line 28: | Line 30: | ||
However, with the capability of compiling down into a binary, [[Flash]] can stream tasks to progress events during the runtime, which is more satisfying than the pure text files in [[Microsoft Silverlight|Silverlight]], which brings the runtime from zero to hero before one can do anything. Furthermore, [[Flash]] has plenty of functionality encapsulated in the runtime. It has its own JIT compiler, its own language [[ActionScript]] and a healthy set of controls. But [[Microsoft Silverlight|Silverlight]] uses [[JavaScript]] as the scripting language and depends on the [[Web browser|browser]] for most of the interaction processing. | However, with the capability of compiling down into a binary, [[Flash]] can stream tasks to progress events during the runtime, which is more satisfying than the pure text files in [[Microsoft Silverlight|Silverlight]], which brings the runtime from zero to hero before one can do anything. Furthermore, [[Flash]] has plenty of functionality encapsulated in the runtime. It has its own JIT compiler, its own language [[ActionScript]] and a healthy set of controls. But [[Microsoft Silverlight|Silverlight]] uses [[JavaScript]] as the scripting language and depends on the [[Web browser|browser]] for most of the interaction processing. | ||
=== Platform and | === Platform and browser support === | ||
=== Programming | === Programming tool === | ||
Users can reuse [[C# Programming Language|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 [[Web server|server]] components, users need to switch back to [[.NET Framework |.NET]] and discard all the classes that the run time is using. | Users can reuse [[C# Programming Language|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 Framework |.NET]] classes to handle the author time experience and [[Flash]] classes to handle the run-time. If there are [[Web server|server]] components, users need to switch back to [[.NET Framework |.NET]] and discard all the classes that the run time is using. | ||
Unlike [[Flash]] that is largely built for graphic designers, [[Microsoft Silverlight|Silverlight]] allows users to create contents with the same tools they use on a daily basis (such as [[.NET Framework |Visual Studio .NET]]) in order to keep all the code for the [[Web server|server]] components, the authoring tool components, and the runtime/player components inside the same project. | Unlike [[Flash]] that is largely built for graphic designers, [[Microsoft Silverlight|Silverlight]] allows users to create contents with the same tools they use on a daily basis (such as [[.NET Framework |Visual Studio .NET]]) in order to keep all the code for the [[Web server|server]] components, the authoring tool components, and the runtime/player components inside the same project. |
Revision as of 11:42, 14 August 2008
Technology
Flash and Silverlight are obviously competitors when it comes to general technology features. Both of them have the same functions and benefits as follows:
- Rich 2D animation/graphics with audio and video
- Choice of standards-based and high-performance languages
- End-to-end server and application platform
- Client side playlists for ad-insertion
- Robust video publishing tools
- High-performance, multi-core enabled lightweight client
- Data exchange with web server
- Easy installation support for platform requirements
- Tools product line integrity
On the other hand, both of them have their unique features. For example, Flash has offline document support, while Silverlight has hardware-assisted editing and encoding solutions, XML-based presentation for SEO, and content access protection (DRM).
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
Flash supports multiple video formats with high quality codec and nice bandwidth usage, such as scalable full screen video up to HD(720p). The price of its media server licensing(unlimited bandwidth) is only one forth of that of Silverlight. But except that its Sorenson’s proprietary H.263 implementation is loosely based on a standard, Flash has no industry standard video codec yet. Also, the audio formats Flash supports are all proprietary, except for MP3 and ADPCM, whose quality of compression is not so impressive, 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 an XML object. So users don't need to buy special libraries or write their own libraries.
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.
However, with the capability of compiling down into a binary, Flash can stream tasks to progress events during the runtime, which is more satisfying than the pure text files in Silverlight, which brings the runtime from zero to hero before one can do anything. Furthermore, Flash has plenty of functionality encapsulated in the runtime. It has its own JIT compiler, its own language ActionScript and a healthy set of controls. But Silverlight uses JavaScript as the scripting language and depends on the browser for most of the interaction processing.
Platform and browser support
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.