我认为Silverlight最适合那些拥有.NET开发人员但没有设计经验的公司。
就技能需求而言,相对于寻找ActionScript专家,寻找C#或VB开发人员会更容易找到。然而,这种选择存在权衡:
设计经验不仅需要具备艺术技能的设计师,还需要Adobe提供的知识和工具进行投资。你几乎可以保证一个专业的设计师使用Mac并且具有Adobe工具的经验。
现在,Silverlight的设计工具质量还不够好,可能会带来麻烦。例如,Blend无法呈现包含IValueConverter的任何xaml时会出错,这是个问题。我不知道Adobe开发者的经验会怎样,但我确信它也会面临类似的问题。
因此,在当前阶段,问题归结为人力资源:
如果你有.NET经验但很少涉及设计技巧,那么选择Silverlight。编程技能/工具是可转移的。
如果你有设计经验和技能,那么选择Flex。设计师技能/工具是可转移的。
无论哪种客户端平台,都需要与服务通信以获取数据,因此您始终会利用后端的现有编程专业知识。
从不同的角度,对Jon的观点进行了改述:
我认为你应该把目光投向长期发展,就像Adobe似乎正在做的那样。当你关注覆盖率和安装基数时,使用Silverlight与Flex之间存在明显的平衡,但以下是更多选择Flex的好处:
第二波优势 - 就像Adobe使用Flash构建了“更好的Java小程序”一样,他们能够从现在开始重新设计运行时。他们知道人们如何使用网络,这是现有客户端平台的发明者永远无法准确猜测到的。.NET可以添加功能,但不能真正放弃该平台并重新开始。
设计师熟悉度 - 尽管Flex/AIR是一种新的编程模型,它仍然依靠Adobe Creative Suite等已经非常熟悉的工具。 这意味着更容易找到设计师来提高产品质量。
跨平台支持 - Flex支持Windows,Mac和Linux,以及移动设备(iOS,Android),而Silverlight当前只支持Windows和Mac,未来可能会更少。
总结:Silverlight适合那些具备.NET技术但缺乏设计经验的公司。如果你希望选择长期发展,更好的选择是Flex。
对于设计师来说,这种方式不完全陌生。他们将比启动新的设计环境、使用功能欠佳的新工具和新动画范例更快地理解 Flex 的工作方式。
在 Silverlight 中摒弃 RGB 颜色模型——.NET 最初是为 Windows 构建的,并且它是其工作原理的核心。Flex 已经很久以前就放弃了这个模型,转而采用以设计为中心的模型。
你所有的工具都在你的 Mac 上运行。没什么好说的。
酷炫的功能——Silverlight 在某些明显的功能上仍然需要赶上 Flash(如网络摄像头/麦克风集成,或 3D/图形加速)。