Smashing Magazine - we smash you with the information that will make your life easier. really.
Flash vs. Silverlight: What Suits Your Needs Best?
With the release of Silverlight 1.0 and its subsequent versions, a debate started among designers and developers regarding choosing between Flash and Silverlight. Silverlight faces difficulties in capturing the market because of the maturity of Flash. However, Silverlight has managed to keep up by including certain features that designers and developers have always wanted to see in Flash, such as search engine optimization. In this article, we will discuss some of the technical differences between Flash and Silverlight to help you choose the technology that best suits your needs.

Animation
Flash uses the frame-based animation model. In frame-by-frame animation, we create an object for each frame to produce an animation sequence. For example, if you want to move something across the screen in 3 seconds, calculate how many frames 3 seconds will take, then calculate the matrices required for each frame along the way. Keep in mind that the player won’t actually maintain a frame rate unless you embed a blank audio track; otherwise, 3 seconds might turn out to be 2 or 6 or 5.
Silverlight is based on the WPF animation model, which is time-based instead of frame-based, so you define the start and end conditions, and it figures out how to do it. No need to deal with matrices like with Flash. Also, no need to calculate the positions of objects in various frames.
File Size
Flash uses a compressed format, and text and images are embedded in the movie, hence the file size of a Flash component is relatively small.
Silverlight uses XAML for its description language, and it is non-compressed, so the size of a Silverlight component is usually larger.
Scripting
ActionScript is used to program Flash objects. ActionScript is an object-oriented language with a full range of controls for designing user interfaces. And it can be integrated with back-end technologies that use other languages and frameworks, such as PHP, ASP and Ruby On Rails. It comes with a huge, powerful class library for developing online browser-hosted applications and stand-alone desktop applications.
For Silverlight scripting, you can choose from among a number of programming languages such as Visual C#.Net and Visual Basic.Net, including client-side scripting with JavaScript. C# and VB.NET can be used to write managed code that runs on and uses all of the enhancements and capabilities of Microsoft’s .NET framework.
Video And Audio
Flash supports multiple video formats. The latest codec is very high quality, and the bandwidth usage is nice. There is one problem, though: if you create a tool that outputs Flash content, the formats it supports aren’t really used by anyone else. The original video codec, Sorenson’s proprietary H.263 implementation, is a mutant version of H.263. The compression follows the spec fairly closely, but a bunch of features were left out, and you can’t exactly just go find complete specs on how to build your own encoder.
Silverlight implements the industry-standard VC-1 codec for video, and supports WMV and WMA. Just about everyone already has Windows Movie Maker, but if someone doesn’t, it’s not a big deal because Microsoft makes available a free SDK encoder for producing WMA and WMV. So, not only would you be using formats that people would more likely be able to encode themselves, but Microsoft provides your product with SDKs if you want to do the encoding yourself.
Sound Processing
ActionScript offers a set of sound classes that can be used to generate and control sound in a movie. You can add sounds from the library while the movie clip is playing and control those sounds. If you do not specify a target when you create a new sound object, there are methods to control sound for the whole movie.
Silverlight doesn’t have the low-level audio APIs you would need to write an audio application in the browser. It doesn’t even support playback of WAV files because .NET has very little audio playback support.
Accessibility
Flash provides rich accessibility features for those who have hearing and vision problems or who rely on keyboard shortcuts. Providing captions for video solves accessibility challenges for people who are deaf and hard of hearing, but people who are blind or have low vision or other physical disabilities need the video playback controls to be keyboard-accessible and to function properly with assistive technologies such as screen readers and screen magnifiers. Users who rely on keyboard access can use a variety of familiar shortcuts to control video. Buttons such as “Play/Pause,” “Stop,” “Rewind,” “Mute” and “Closed Captions” can be tabbed to and activated with the spacebar. Slider controls such as for volume and playhead position controls can be accessed via the arrow keys, and the “Home” and “End” keys can be used to skip directly to the beginning or end of a range. The volume slider also accepts numeric keys to set playback audio levels in one quick step.
Silverlight 3 is the first browser plug-in to provide access to all system colors, allowing people with partial vision to use familiar operating system controls to make changes, such as switching to high-contrast color schemes for ease of readability. These features are far fewer than those provided by Flash.
Platform Compatibility
Flash supports Windows Vista/XP/2000, Windows Server 2003/2008, Mac OS 10.1/10.5 (PowerPC), Mac OS 10.1/10.5 (Intel), Linux 5, openSUSE 11, Ubuntu 7.10 or later and Solaris 10.
Silverlight supports only Windows Vista/XP/2000, Windows Server 2003/2008, Windows Mobile 6, Mac OS 10.1/10.5 (PowerPC) and Mac OS 10.1/10.5 (Intel). Because Linux and Solaris support is missing, users of those operating systems won’t be able to experience Silverlight on their machines.
Text Representation/SEO
Flash stores fonts using shape definitions and the player doesn’t understand TTF, hence we cannot separate the text layer from the movie. Typically the text written on a flash component was not SEO friendly however Adobe has made the modifications to Flash so that it will be indexable, and the search engines have begun to index Flash.
Currently Google is the only search engine that is noticeably reading Flash files. They have worked closely with Adobe to develop the right toolset for the Googlebot in order to read the files for indexing. Yahoo is working on it and MSN is working with their own format, Silverlight, so they probably won’t be developing the toolset necessary to read Flash files.
To read more about how to make Flash SEO friendly, please read the following articles:
In Silverlight applications, user interfaces are declared in XAML and programmed using a subset of the .NET Framework. XAML can be used for marking up the vector graphics and animations. Text is deployed on web server as separate entity and can be read and accessed separately. Textual content created with Silverlight is searchable and indexable by search engines as it is not compiled, but represented as text (XAML).
Supported Image Formats
Flash supports almost all image formats.
Silverlight supports only PNG and JPEG file formats. Some other file formats are supported by Silverlight but in a limited way. A full list can be found here.
Socket Programming
The XMLSocket object implements client sockets that allow computers running the Flash player to communicate with a server computer identified by an IP address or domain name.
To use the XMLSocket object, the server computer must run a daemon that understands the protocol used by the XMLSocket object. The protocol is as follows:
- XML messages are sent over a full-duplex TCP/IP stream socket connection.
- Each XML message is a complete XML document, terminated by a zero byte.
- An unlimited number of XML messages can be sent and received over a single XMLSocket connection.
Silverlight doesn’t support socket programming. Silverlight supports sockets programming through the System.Net.Sockets namespace. Silverlight supports asynchronously sending data back and forth across a socket over ports ranging from 4502 to 4534. Silverlight supports cross-domain socket communications between a Silverlight application and any server, provided that a special security policy file is in place on the server.
Webcam Support
Flash has webcam and microphone support for live video and audio transmission, and using them is really easy in Flash. It takes only a few lines of ActionScript code to invoke the camera object.
| Camera.get | Returns a default or specified camera object, or null if the camera is not available. |
| Camera.setMode | Sets aspects of the camera capture mode, including height, width and frames per second. |
| Camera.setMotionLevel | Specifies how much motion is required to invoke Camera.onActivity(true) and how much time should elapse without motion before Camera.onActivity(false) is invoked. |
Silverlight doesn’t support webcam or microphone.
Deployment
The Flash deployment package contains only a single Shockwave (SWF) file, and all images, text and animations are incorporated in this file. Because of the compressed nature of a Flash component, its images and text are not indexed by search engines, and thus not searchable.
The deployment process of Silverlight is far more complex; all individual components need to be deployed separately. The following components typically get sent to the client for each Web request of Silverlight:
- XML files,
- DLL files (if necessary),
- Silverlight.js file,
- Any other JavaScript file,
- Resources (images, audio, video).
Read the full documentation on Silverlight deployment.
Windows Application
A Flash movie can be compiled into a Windows application and run as a standalone EXE file. It can also be played on a desktop that has an appropriate Flash player.

Silverlight doesn’t support playing the movie as a Windows application.
Media Streaming
Flash provides no such service to host the content and application with them. Thus, building a video website with Flash is not as cost-effective as building one with Silverlight.
Microsoft Silverlight Streaming by Windows Live is a companion service for Silverlight that makes it easy for developers and designers to deliver rich media as part of their Silverlight applications. The service allows Web designers and developers to host and stream cross-browser media and interactive applications that run on both Windows and Mac. This service can be combined with Microsoft Expression Studio and other third-party tools to create and develop interactive contents.
Silverlight Streaming by Windows Live is currently in beta testing and offers 10 GB of free hosting for rich-media applications.
Conclusion
Selecting the right technology for rich Internet applications is often critical, and choosing between Flash and Silverlight depends entirely on your requirements. If you expect that some of your users will be on Linux or Solaris, then you should go with Flash. If you want your website to be indexed by search engines, then Silverlight may be better.
Besides, as Doug S. is points out in the comments, it’s worth noticing that a minority of web users actually have a Silverlight plugin installed on their machine, while most users do have Flash-support. The Flash Player 9 and higher support streaming of the H.264 video codec which means anyone with a video program that can output an MP4 can stream to Flash. There are literally hundreds of free apps on Mac, PC and Linux that can do this. It’s also important to mention that the latest version of Flash Player supports 3D rendering while Silverlight does not and that SWF, FLA, FLV, and AS are all open-standard formats, while Silverlight is 100% proprietary.
The following table summarizes the features discussed above. Rather than including arrows to indicate whether each platform has a particular feature, we’ve simply marked “better” to show the areas in which each technology beats out the other.
| Features | Flash | Silverlight |
|---|---|---|
| Animation | better | |
| File size | better | |
| Scripting | better | |
| Video/Audio | better | |
| Sound processing | better | |
| Accessibility | better | |
| Platform compatibility | better | |
| Text representation/SEO | better | |
| Supported image formats | better | |
| Socket programming | better | |
| Webcam support | better | |
| Deployment | better | |
| Windows application | better | |
| Media streaming | better |
Further Resources
The following articles are suggested for further reading:
- An Overview of Silverlight
- Silverlight vs. Flash: An Analysis Report
- Flash vs. Silverlight: Theming and Styling
- Flash vs. Silverlight: Words and Numbers
(al)
- 279 Comments
- 251
- 252June 8th, 2009 11:26 am
Very biased article.
- 253June 9th, 2009 2:38 am
Nice article. It seems to me that flash is a little light technology. Can be created on flesh such site http://www.windows4all.com?
- 254June 10th, 2009 12:28 pm
I want to add here, that the most flexble power of Flash is the code based animation. The Flash have various scripting libraries to make animations based on ActionScript. You have the native Tween, the Tweener (caurina), gTween, bTween, TweenLite, TweenMax, and much more. With Flash you have a community on the back giving you support arround the world, and powerfully tools, like Gaia Flash Framework.
The Silverlight should work so much to become a tool better than Flash!
(sorry for weak english) - 255June 13th, 2009 2:26 pm
Did somebody care to mention that Flash has lead of few years over Silverlight. All MS haters at the end are writing S/W supported on MS environments to make living.
Like it or not, a pure OO is much better than kludgy scripting environments. Its matter of time when both technologies will be comparable apples to apples. - 256June 13th, 2009 6:19 pm
I used to love Visual Studio, then I discovered Flex Builder (Flash Builder now), based on Eclipse, which is a great development environment to build SWF files. I been using it for 2 years now, it rocks, and I won’t try to learn Silverlight.
The funny thing is that I found a lot of support from flex developpers on the internet, whereas in ms world, it seems people don’t give information so easily…
Also, the open source flex SDK is free to use, so no need to buy a flash license if you don’t want to. - 257June 22nd, 2009 7:52 pm
I personally know flash. But I have 1 question? why doesn’t famous browsers like firefox have lastest flash player install by default.
My user face difficulty to browse my sites when they don’t have flash installed and its a pain to setup plain html navigation just for them.
- 258July 7th, 2009 5:11 pm
I own Adobe Create Suite 4 Production Premium, Expression Studio 1, and Visual Studio 2005/8. I really like everything about CS4 and Visual Studio. I don’t like Expression Suite because it’s not mature, has poor documentation, and Microsoft keeps nickeling and diming me for upgrades to get the tools that support Silverlight. I like ActionScript 3 and C#. I like Flash, AfterEffects and Premier Pro. I like Media Encoder from both products, but I favor the Adobe Media Encoder because I use it more, and I refuse to upgrade my Expression Studio.
I agree with 18. Phillip above. If you are building a web application, use Flash. If you are building a LOB application or an Intranet application in a Windows environment, use Silverlight.
I have tried to keep an open mind with both products because I really don’t care. It’s up to my clients what development environment I’m going to use. So I can use both, which makes me more productive. I love this stuff, and I don’t care who wins.
- 259July 9th, 2009 2:18 pm
I’ve been develop applications for years and Silver Light is not easy task. There are a lot of bugs that you would expect to work but does not. There are standards in controls that are the same in both web and windows development. When you move to silver light for get it. Someone at MS wanted to redesign the entire wheel. The property Text for a textbox has been changed to Content. Give me a break! MS should have extended the Windows development environment to compile to a Silver Light app.
- 260July 14th, 2009 6:45 pm
God grief I actually read them all, and now I know.
- 261July 28th, 2009 6:45 pm
Hamranhansenhansen:
First of all, you are very blind by your preferences. So blind, that u got to lose don’t know how many hours writing your endless post. Obviously, I didn’t lost so much time reading it because of this:
You said:
“You can load HTML and CSS into Flash at runtime, as well as easily get the results of PHP scripts. ”That is a piece of cake for whatever platform!
But what I meant in my previous post is that actually you can write Silverlight applications using the language you want. Even PHP. I’m not fucking talking about taking PHP data into Silverlight nor FLASH. Im talking about writing the APP using a non propietary language.So having read that, I noticed you don’t even read well, so It wasn’t worth for me reading your entire bible.
- 262July 28th, 2009 7:07 pm
I’ve written lots of technical facts in my previous post for this thread, showing all the Silverlight advantages. Not gonna repeat them…
Just a final words:
Flash! Oh yeah! It have been in the market like… hum… forever? Yeah.. that’s true.
Flash! Yeah… it have 3D! It have a huge animation library. It is all around the world! Great!
But…
How long have been Silverlight around there?
Just a little fraction of the time Flash have.How many features have Silverlight included in this short term? A LOT!
Is now better than flash? Or have all its features? Maybe not…No enemy births as stronger as it could be, my flashers… but keep being afraid, cuz in it is lil infancy SL is stepping hard and the using statistics are grown and grown.
- 263August 7th, 2009 8:22 am
Coming from both an artist and developer background, I definitely see Flash and Silverlight as two sides of a coin: Design versus Development.
Flash is an amazing tool for artists, and if you’re making an animation or simple interface with a lot of (excuse the pun) flash, this is the de facto tool to use.
If, however, you’re creating a web-based game or complex interface, Silverlight is most likely the optimal choice. It is built upon a development environment that is meant for this kind of extensibility.
Coding a game in ActionScript is a pain. It uses the idea of frames, so the game loop can look a little funky. Its object-oriented support is also a bit weaker, due its reliance on Javascript. Being able to code a Silverlight game in C# definitely makes that process easier.
- 264August 8th, 2009 12:25 pm
Gay people will want to use silverlight – microsoft has always been gay and its “campus” is dedicated to homosexual activities and IE was designed to make it easier to hook up with gay folks on the Web.
Straight people have been using flash for years and they are unlikely to move to silverlight. Just consider it another example of the “sanctity of marriage” excuse the repugs use against gay marriage.
- 265August 9th, 2009 3:31 am
lol, the comments on here are crazy.
Just to throw in my two cents, I’m not a fan of Microsoft or anything but from the direction it took, I prefer Silverlight over Flash.
Flash does nothing that HTML5 hasn’t proposed, Silverlight goes on to support other languages and even offline usage.
Plus Flash always seems to tax my computer, and I’m using a 2008 Mac Book Pro.
In the future I don’t see Flash being used much except to include features for outdated browsers (audio, video, etc…), Silverlight I see being used for complete applications that compete with desktop apps.
I won’t say it’s the death of Flash though, there’s nothing to say Adobe can’t just update Flash and add features to ensure it’s significance but right now I’m leaning towards Silverlight.
- 266August 9th, 2009 11:07 pm
A Good Article but I think if You compare Adobe Flex Vs silverlight then it will be better because Adobe Flex and Silverlight are companions and i am sure Adobe Flex will get maximum marks, as a adobe lover i believe Its Always the best as for as graphic and media soft wares are concerned
- 267August 14th, 2009 4:16 pm
Microsoft’s development tools make things SO easy to use. Just look at the Flash vs. Silverlight screenshots used here; it’s a no-brain comparison. Anybody who prefers framerates over the WPS animation model is someone who likes (prefers) arcane mess. AJAX is pretty dang, though. :)
- 268August 14th, 2009 4:20 pm
Microsoft’s development tools make things SO easy to use. Just look at the Flash vs. Silverlight screenshots used here; it’s a no-brain comparison. Anybody who prefers framerates over the WPF animation model is someone who likes (prefers) arcane mess. AJAX is pretty dang, though. :)
- 269August 27th, 2009 8:39 am
one of the previous posters said: “4. SWF, FLA, FLV, and AS are all open-standard formats. Silverlight is 100% proprietary.” How can this be true if you are required to have adobe installed to open/read FLA and FLV files? where as with silverlight all you need is notepad to open the XAML.
- 270August 27th, 2009 8:44 am
Besides, its fun to see the 2 (Adobe & MS) compete like this. very exciting, especially from a developers perspective.
- 271September 20th, 2009 3:40 pm
Simple to understand and Neutral comparison and the features taken to compare were practical.
- 272September 30th, 2009 4:39 am
Mr.Muhammad Usama Alam and ur friend Anand Vedapuri…I am sorry to say tht u have not done enough research. And ur examples of comparision were not at all practical, they were actually lame……!!!!! All I want to say is before reaching to a definitive opinion please do some damn research. I am not a great developer or a microsoft enthusiast but I hate when people blab without proper research.
. I am not a flash hater nor a Silverlight fan, but recently I just started learning Silverlight. So far except for the comment on the frame by frame animation..which u may be right, but for most of the other comments, they are lame and obviously lack research. Pathetic for a technically experienced and a magazine contributor. Sorry for the rant but I couldn’t help my self. Sorry. and a request.. please do research. pleaseeee. For gods sake ur a kind of journalists.
- 273October 1st, 2009 6:10 am
you didn’t mention flash lite. It’s a very good implementation, and huge phone manufacturers like nokia now ship their phones with flash lite already installed.
- 274October 5th, 2009 10:20 am
I am a software developer (I don’t develop on flash or silverlight). I develop on Linux at work and my personal box at home is also Linux. I used to be the windows hater guy few years ago, but I’ve learned to judge things on merit rather than propaganda.
So I watched last night’s football game on nbc.com, which uses silverlight for streaming and let me tell you I am impressed. I did a bad job with cooling my personal desktop at home and whenever I try to watch hulu videos on it, it gets my processor so hot that the computer shuts down automatically. Flash just sucks life out of processors. Silverlight in comparison is way way better. I can watch it without killing my computer. It adjusts the bitrate automatically and does not use much of my processor.
I, as a user, think silverlight is better than flash.
- 275October 19th, 2009 1:21 am
“but show me an ajax site that can have all its dynamic content indexed. Not happening because it’s not possible.”
Of course that is possible!
My website using AJAX and it’s completely indexed on Google: http://www.babaei.net/And I’ve done a complex project (A Website + A Desktop Based CMS) about a year and half ago (A multilingual website) totally based on Ajax and it’s completely indexed by Google!!
http://www.kermanshahchhto.ir/?lang=enTry Googling it!
- 276October 21st, 2009 5:37 am
Remember too that Flash has a high level of support for Mobile devices like phones, PDAs and non-Windows netbooks – which is already turning into a huge market compared to Desktops.
Microsoft will make sure Silverlight is only available to Windows systems.
- 277November 7th, 2009 5:22 am
‘Microsoft will make sure Silverlight is only available to Windows systems.’
FAIL
- 277
- 278October 21st, 2009 5:30 pm
An important distinction between Silverlight and Flash animation should be made. Silverlight allows users to create ‘hand-off animations’ (animations that just define the end state of the animation). This allows users to create an animation that will resolve to the correct end regardless of the state of the app. Flash requires animations start with a keyframe making flash developers resort to code-based animation (tweening) to get the same results. However, a major disadvantage with silverlight is that audio and/or video can not be attached to an animation. This makes syncing animations to sound in Silverlight much more difficult.
- 279October 23rd, 2009 4:26 am
Miscrosoft is paying a lot of blogger these days, when I see articles like this one with so many mistakes I just remove it from the bookmark.
- 00
There are no trackbacks at this time. If you are interested in leaving a trackback, please use this URL.
Leave a Comment
Make sure you enter the * required information where indicated. Please also rate the article as it will help us decide future content and posts. Comments are moderated – and rel="nofollow" is in use. Please no link dropping, no keywords or domains as names; do not spam, and do not advertise!
Interact
Popular
- 100 Wordpress Themes
- Photoshop Tutorials
- Fantastic Wallpapers
- 40+ Excellent Freefonts
- Dual-Screen Wallpapers
- Wordpress Themes for 2009
- Illustrator Tutorials
- Incredible Free Icon Sets
- High-Quality Free Fonts
- 30 Scripts For Galleries
- Photoshop Text Effects
- Useful Icon Sets
- Web Design Trends
- iPhone Wallpapers
- Before Launching a Website
- CSS Layouts And Templates
- Photoshop Actions
- Stunning Pictures and Photos
- Fantastic HDR Pictures
- Logo Design Tutorials
- Free Design Templates
- 10 Mistakes In Logo Design
- Photoshop Custom Shapes
- 40 Creative Design Layouts
- 8 Layout Solutions
- 53 CSS Techniques
- Photography Techniques
- Black & White Photography
- Styling Design Elements
- CSS-Based Forms
- 50 jQuery Techniques
- 50 Portfolio Websites
- 50 CSS Techniques
- Creative Logo Designs
- Desktop Wallpapers
- 25 Open Source Mac Apps
- 50 Free Icon Sets
- The Big Showcase Of Online T-Shirt Stores - http://bit.ly/5Tq8uA
- @ilmv oh ok then ;)
- @ilmv no, the SM Book will not be out of date :) We made sure it contains universal design, usability and marketing principles.
- Apple ad bombing Windows 7 on Google - http://bit.ly/28ctPq
- Atatonic - a fresh CSS framework - http://bit.ly/4oOV2w (via @umutm)
- @HrvojeKC yes, that's an interesting idea. Maybe when the waiting is over, we'll write a detailed post about it.
















Why are you m$ guys dickriding on microsoft, obviously adobe is better in all aspects, the author forgot to mention several features in Flash that Silverlight does not have like 3D, ByteArray, Threading, & Video. I personally like flash, but since silverlight came out, my flash apps seem to crash in ie everytime, I figure that microsoft did that by design of having a ie update to disable or make flash unworkable in ie, anyways I use Chrome and Firefox which is way better.