1ke*_*iff 71 .net apache-flex flash silverlight
我公司开发了几种类型的应用程序.我们的很多业务来自于多媒体类应用,通常是在Flash中完成的.然而,现在房子的这一边开始向Flex开发迁移.
我们的其他大多数开发都是使用.NET完成的.我正在努力推动Silverlight开发,因为它将更好地利用.NET开发人员.我更喜欢Silverlight平台而不是Flex平台,因为Silverlight是所有.NET代码.我们的工作人员比Flash/Flex开发人员多,我们的大多数Flash/Flex开发人员都是图形艺术家(不是真正的程序员).他们现在推动Flex的唯一原因是因为它似乎是Flash的逻辑步骤.
我用两者完成了开发,老实说我相信Silverlight更容易使用.但我试图说服那些只是Flash开发人员的人.
所以这就是我的问题:如果我要参加会议来赞美Silverlight,为什么公司想要使用Silverlight而不是Flex?除了显而易见的"并非每个人都拥有Silverlight"之外,每个人的利弊是什么?
Jon*_*way 52
我认为你应该把Silverlight视为一个长期的游戏,正如微软似乎正在做的那样.当您关注覆盖范围和安装基础时,何时使用Silverlight与Flash之间有明显的平衡,但这里有一些原因Silverlight是一个很好的方向:
第二个推动者的优势 - 就像微软用.NET构建了一个"更好的Java"一样,他们能够看到你今天如何从零开始设计一个RIA插件.它们具有了解人们今天如何使用网络的优势,这是Flash的发明者永远无法准确猜测的.Flash可以添加功能,但它们无法真实地浏览平台并重新开始.
开发人员熟悉 - 虽然Silverlight是一个新模型,但开发人员并不完全不熟悉.他们将"获得"Silverlight的工作方式比他们理解使用新的脚本语言和新的事件范例启动新的开发环境要快得多.
摆脱Flash中的时间轴模型 - Flash最初是为基于关键帧的动画而构建的,虽然有很多方法可以将其抽象出来,但它仍然是Flash工作原理的核心.对于以应用程序为中心的模型,Silverlight会抛弃它.
ScottGu - ScottGu对Silverlight很感兴趣.努夫说.
酷炫的新功能 - 虽然Silverlight在一些明显的功能(如网络摄像头/麦克风集成或3D /图形加速)上仍然有一些赶上Flash,但Silverlight内置了一些灵活的新技术 - Deep Zoom就是一个例子.我在Silverlight方面看到了更多"革命性"技术,而此时Flash似乎处于维护模式.
The*_*heo 30
这里有两个问题:Silverlight与Flash作为平台,Silverlight与Flex作为RIA框架.
第一个问题取决于您的时间表.Flash Player的覆盖率超过95%,Silverlight无法接近.但是,Silverlight可能会到达那里,它毕竟是微软支持的.如果您打算下周启动一个网站并希望获得大量观众,那么Silverlight就不是一个选择.如果您的目标是推出一个非常酷的应用程序,每个人都希望使用它有点不同,如果您的应用程序足够好,您的目标受众可能会安装Silverlight只是为了能够运行它.
至于第二个问题,它是在Silverlight中开发应用程序是多么容易的问题.Flex不仅仅是一组小部件,它是一个非常大的框架,可以完成很多工作,可以简化开发人员的工作.您可以仅使用核心Flash API编写相同的应用程序,但这将是非常多的工作.根据Silverlight中可用的内容,这在决定时应该是一个重要因素.如果你可以缩短开发时间,有两个平台值得吗?
Bri*_*ahy 22
我认为Silverlight对于拥有.NET开发人员但没有设计师经验的公司最有利.
就找到C#或VB开发人员而不是找到ActionScript专家而言,技能集将更容易找到.然而,有权衡:
设计经验不仅是对具有艺术技能的设计师的投资,也是对Adobe提供的知识和工具的投资.您几乎可以保证专业设计师使用Mac并具有Adobe工具经验.
现在,Silverlight设计工具已经半生不熟,可能会令人头疼.例如,当尝试渲染包含IValueConverter的任何xaml时Blend错误,这是有问题的.我不知道Adobe开发人员的体验是什么,我确信它是多毛的.
因此,在游戏的这个阶段,它归结为人力资源:
如果您拥有.NET经验并且很少投入设计技能,请转到Silverlight.编程技巧/工具将可转让.如果您有设计经验和技能,请选择Flex.设计师技能/工具将可转让.
无论哪种方式,两个客户端平台都需要与服务进行通信才能获取数据,因此您将始终利用后端的现有编程专业知识.
我认为你应该把Flex视为一个长期的游戏,正如Adobe似乎正在做的那样.当您关注覆盖范围和安装基础时,何时使用Silverlight与Flex之间存在明显的平衡,但这里有更多原因Flex是一个很好的方向:
第二个推动者的优势 - 正如Adobe使用Flash构建了一个"更好的Java Applet",他们能够看到你今天如何从头开始设计运行时.它们具有了解当今人们如何使用网络的优势,这是现有客户端平台的发明者永远无法准确猜测的..NET可以添加功能,但是它们无法真实地浏览平台并重新开始.
设计师熟悉 - 虽然Flex/AIR是一种新的编程模型,但设计师并不完全陌生.他们将"获得"Flex的工作方式比他们理解用新的功能差的工具和新的动画范例启动新的设计环境要快得多.
在Silverlight-.NET中摆脱RGB颜色模型最初是为windows而构建的,它是它工作原理的核心.Flex很久以前就选择了以设计为中心的模型.
您的所有工具都在Mac上运行.努夫说.
酷炫的功能 - Silverlight在一些明显的功能(如网络摄像头/麦克风集成或3D /图形加速)方面仍然有一些赶上Flash.
Aka*_*ava 15
我们正在做silverlight和flex,这是开发人员对两者的观点.
Silverlight的优点:
Silverlight的缺点:
Run Code Online (Sandbox Code Playgroud)e.g. // this is possible in flex.. // but not in silverlight <mx:TextBox id="firstName"/> <mx:TextBox id="lastName"/> // display full name.. <mx:Label text="{firstName.text} {lastName.text}"/>
Flex的优点:
Flex的缺点:
结论
Kib*_*bee 13
Silverlight的问题在于,仍然有很多人没有安装它.此外,如果他们只熟悉更传统的服务器端.Net编码,我不确定现有的.Net开发人员能够充分利用现有技能.
你将Silverlight推向Flex的原因是什么?如果您不得不向SOFlow社区询问原因,那么您是否愿意推动它似乎很奇怪.
ana*_*tik 11
Flex开发的另一个优点是您可以切换到使用相同源代码(和相同的IDE)开发桌面应用程序(Adobe AIR)并从Web分发它们.你可以看看这个
对于Flash平台的未来.
更新2011年第3季度:Flash 11支持低级3D加速,并且已经有许多支持它的框架和主要引擎(虚幻引擎3,Unity).然而,未来的卖点是AIR应用程序可以在Windows,Mac,Android,Playbook和iOS平台上运行(Linux支持已被删除).移植之间的麻烦绝对最小(至少在你有Adobe CS5.5 +时).
2015年第二季度更新:Silverlight正式死亡.Adobe AIR是活生生的,但并不繁荣 - 根据您的技能和工具链,它可能是有用的.微软和Adobe都承认HTML5是最佳选择(无论是AIR还是Apache Cordova或Visual Studio).
2017年第3季度更新:哈哈哇,甚至再使用Flash了.
不要忘记:
Flex是非常跨平台的,因为它是使用Java编译编译的,这意味着您可以在开发Flex应用程序时轻松使用Mac或Linux.我现在的巡航控制设置(使用Linux)我构建了构建Flex应用程序,但开发人员同时使用Mac,Linux和Windows.
根据我的经验,Java开发人员在Flex Builder中感觉很自在,因为它基于Eclipse.
你永远不会对这个问题得到公平的投票,因为它有这么多的微软开发者.
此外,人们可能会对这个答案进行投票,这说明了这一切.
我说让开发人员尝试两个平台,看看他们更喜欢哪个.
为了回答下面的评论,我只是注意到虽然有很多答案推荐Flash/Flex,但Silverlight的答案却有很多.这不是说谎的问题,它只是偏爱你熟悉的东西,不一定是最好的平台.
当涉及到Flex时,Silverlight程序员不知道他们错过了什么.Silverlight缺乏Flex所具有的组件模型和事件触发功能.使用XNA和C#,我的一个朋友必须跳过各种环节才能使他的Silverlight应用程序正常工作.然后,它必须交给设计师,让它看起来不错.
收听Silverlight上的deepfriedbytes.com播客,你会听到即使是真正推动Silverlight的几个人,也承认其中的一些问题.(我想,如果我没记错的话,其中一个人为微软工作,但我可能错了 - 我上周听了它).他们同意Silverlight目前还没有为任何大型应用做好准备.
我会选择Flex,以获得一个干净,直接的方法 - 特别是如果您已经熟悉Flash和ActionScript 3.0.Flex在我看来更有意义 - Silverlight仍然需要成熟.
在一天结束时,您的开发人员不应该指示您的技术.这绝对是一个应该基于您的用户的产品决策.
如果要部署到消费者Internet,则可以使用Flash Player或AJAX.如果您要部署到.net企业的专用LAN,则可以选择.
小智 5
Asa图形设计师,过去几年我使用过Flash(开启和关闭),过去1.5年使用Silverlight(以及它的大哥WPF).根据我从团队中听到的消息(所有人都是开发人员或前开发人员,如果您的.Net开发人员将完成所有编程,请使用Silverlight.我喜欢Flash,但即使对ActionScript 3进行OOP大修) Flash 9及以上版本,它仍然是一种有点古怪的语言,在AS3和C#之间来回传递可能会让你的开发人员疯狂:-).
对于您的设计师,请执行以下操作:
获取Expression Blend的副本,这是Silverlight/WPF的GUI开发工具.
Blend的初始学习曲线有点陡峭,界面抛出了大量的变量/选项,因此请投入一些培训,让设计师有时间熟悉UI.
说到培训,请订阅Lynda.com视频库,特别是.Lee Brimelow Expression Blend培训课程.
注意事项:Blend和WPF变化很快,所以有时你会遇到混合中的错误,这些错误在Blend的下一个beta/CTP中被修复.例如,Blend 2中有一个错误阻止我的故事板(动画)在最近的项目中工作.我升级到Blend 2.5CTP,它工作正常.
Silverlight内容似乎并不总是与Silverlight插件的最新Beta一起使用,如果您正在测试一些仅在最新的Silverlight插件中提供的新功能,请记住这一点.
投资强大的系统(四核,4G内存等)Blend消耗大量资源,尤其是.当你有大量的图层.例如,我正在开发一个基础应用程序中超过100层(!)的应用程序(以及一些用户控件中的另外100多个),以及大约40-50个故事板.每隔几分钟,我必须重新启动Blend,因为UI停止响应(但不会冻结).要么是这样,要么将所有内容都移动到用户控件中.
我的团队曾经在Flex中编写丰富的Web功能,现在将它们写在Silverlight中.
我们这个转换的原因:
我们项目的其余部分是.Net和C#,您可能会发现Java商店中所有这些问题都不那么重要.