Earlier this month Smashing Magazine posted a broad review of Flash and Silverlight. The review covers the way the two products handle things like animation, publishing to the desktop, scripting, small file sizes, socket connections, capturing web-cam content, etc.
While the article doesn't get into much depth about which is better or why, it presents the basics of how these things are implemented and lets you decide which fits your needs better. If you're a new RIA developer wondering which of these technologies to use on a client project, this article might be a good place to start.
While the article does a great job hitting a wide number of topics, I feel it lacks a little in depth on a few. The most notable of these is the comparison for accessibility - Smashing only covers the differences between which colors you're allowed to access. While color usage is an important part of accessibility, the far more daunting part of implementing a section 508 compliant application is integrating with screen reader technologies. As we've found on a few recent projects, implementing a screen reader in Flash or Flex is downright painful. Microsoft did a lot of work paving the way for web accessibility standards, and so Silverlight promises to integrate far more cleanly, though I haven't had the good fortune of building a 508 compliant application in Silverlight yet.
The biggest factor the article barely touches on is Silverlight's ability to tie in to other Microsoft products. With this like Azure and Live Mesh just peaking above the horizon, Microsoft is gearing up to provide a very seamless development experience from hosting to developing to deployment. These services do and will continue to support open APIs that Flash or AJAX developers can take advantage of, but expect some easier integration for Silverlight in Visual Studio. This is both the huge strength and huge weakness of everything Microsoft offers web-developers: seamless integration provided you use all and only Microsoft products. This is very compelling to traditionally Microsoft-friendly developers but total anathema to others. You can find any number of flame-wars raging on blogs across the net covering this topic, so I won't go into more depth on that here.
One interesting thing I learned from the article was how deep SEO support is in Silverlight. I didn't realize that since Silverlight files are stored as XAML and not a compiled format (like .SWF), textual content is freely searchable by all search engines. Currently only Google and Yahoo have the special technology Adobe provides to introspect and index a .SWF.
It was also interesting to note that while you can easily port a Silverlight application to WPF for the desktop, there's no way to directly publish one. Flash, on the other hand, provides the ability to produce a "projector" file, that publishes as a .exe or .app file and executes directly on the desktop.
The most important take away from this topic is the growing importance of Silverlight in the RIA market. Just last year the comparison between the two tools was pretty easy, and Flash was the clear winner, but with what's coming in Silverlight 3 it's time for RIA developers to take Silverlight a little more seriously.