I'll chime in because it seems people missed the point of the question: What are the technical advantages of Flash vs Silverlight? (as it pertains to an in-house app)
Flash Pros
- The "artistic" interface is much better, in my opinion. If you have artists and designers that are used to using Illustrator or Photoshop, this is pretty straight forward.
- The way their environment integrates frame-based movie timelines is pretty slick and has been for years. It makes it very easy to integrate and layer many different animated elements and sounds into your movie or animation.
- All coding is done in the JavaScript-esque language ActionScript, so the learning curve for the syntax at least is pretty low for non-microsoft developers.
- Online support. There are years and years worth of posts that can help you figure out what you need to do to get what you want in Flash.
Silverlight Pros
- It uses .Net as a back end. If you have a lot of .Net developers, you'll be able to leverage the .Net framework which is a much more powerful set of tools, programmatically speaking.
- Easier to debug. In my experience it's easier to debug than Actionscript, largely due to the superior IDE.
- Bringing me to the IDE. The coding IDE is vastly superior to Flash's clunky, cobbled together, fancified textpad. It has intellisense, auto-complete, etc.
Flash Cons
- In my extensive Flash experience, If you're making a highly interactive app, it can be buggy as all get out. Some of the bugs bordering on nonsense, the work arounds being hackish at best.
- The IDE sucks. Period. It's notepad with some poorly implemented intellisense-esque keyword identification.
- The language falls on it's face at times. I've seen instances where all of a sudden a var got all type-sensitive on me, where it wasn't just two stanzas prior. My fault? Maybe. Probably. But nonetheless I've seen some weird behavior from ActionScript, whereas C# has always done what I've told it to.
- No real standard way of doing things. No "best-practice put your code here" way to do things. Flash lets you put code on anything. A frame, a MovieClip, an object, an array... sure whatever, just pop some functions on some stuff and party! This makes finding bugs in someone else's app a real chore.
Silverlight Cons
- Not a lot of documentation yet, in my opinion.
- Substandard "artist" interface by comparision. If you're going for a certain look, it may be harder for your designer to acheive.
- If you're not used to XAML, layouts can be a real pain in the butt. If you've never used XAML, and you've got a sort timeline to get this thing done, you best be prepared to put in some extra time, or be okay with a less than stellar look and feel. It's not quite as easy to get the look that you want with XAML as it is in Flash.
Again, all of this is in my own opinion and from my experiences. Other people may have different opinions.
If you have a few designers and some Flash experience, go with flash. If you want to learn something new, pad your resume, and you've got nothing but .Net experience, go with Silverlight.
In the end, do whatever it is that makes you like coming to work. (as long as it meets your deadlines. lol)
Oh, and I should note, I wasn't talking about FLEX here, but Flash.