Ajax,Flex和Silverlight是制作更多交互式网络应用程序的几种方法。在决定使用哪种新Web应用程序时,您会考虑哪些因素?
它们中的任何一个是否提供更好的跨平台兼容性,性能,开发人员工具或社区支持?
答案 0 :(得分:13)
以下是每个区域的快速概述(包含大量有用的链接):
Ajax适用于可以any modern browser运行的JavaScript。 Flex需要Flash或其他任何可以处理SWF的内容,但是一旦安装了它,就兼容性而言,它是total freeride。 Silverlight是tricky and misunderstood因此,在进入富Web应用程序军备竞赛之前,请仔细考虑您的userbase。另外请记住,Silverlight仍处于测试阶段,因此在未来开发时可能会得到更广泛的使用和安装。
我担心会有太多关于性能的陈述,因为它实际上取决于您愿意优化多少以及应用程序的确切性质。此外,一些技术堆栈永远不会非常快。 Some people out there have been making comparisons,但同样是it depends on a great many factors(甚至是您正在测试的浏览器版本!)。最好根据其他因素进行选择,并在开始开发后进行优化。
三者中都有“黄金标准”开发工具:
Ajax基本上拥有无限的选项,具体取决于您的其他技术和架构选择。你实际面临的重大问题是哪些图书馆需要依赖,而谷歌已经用Web Toolkit之类的话提出了很好的回答。当你接下来的时候,它只是XML和JavaScript,对吧?
Flex来自Adobe,就像使用Flash开发一样,你最好坚持their homegrown tools,因为 - 好吧 - 他们正在制定标准。
Microsoft已将Microsoft Expression Blend版本2.0和2.5分别用于设计Silverlight 1.0和2应用程序的UI。 Visual Studio 2008可用于开发和调试Silverlight应用程序(from Wikipedia)。
所有三种选择都有正式和非官方的社区,企业和开源支持。无论你已经融入哪个并且让你感觉最贴心的是个人的事情,但我会提供这样的建议:坚持你所知道的。如果您是MS开发人员并将MSDN作为主页,您可能会认为Silverlight documentation和论坛确实非常有用。 Flex有一个非常相似的故事;论坛非常好,如果你已经是Flash人员,那么你将会在他们的documentation和user community上找到他们的正确位置。
另一方面,Ajax基本上到处都是因为你可以实现这么多不同的方法并使用如此多的各种各样的库。每个图书馆都可以拥有自己的论坛来访问和邮寄名单,以便潜伏在内。
这三家企业巨头再一次试图培养他们的社区,并为开发商提供最好的支持,以便在未来为他们提供更大的市场份额。
答案 1 :(得分:5)
在我看来,选择应该主要基于您将要构建的应用程序的性质(例如,如果您需要操作矢量图形,Ajax几乎已经完成),但这里有一些通用指南:< / p>
<强>无处不强>
选择编程语言
(由于主观性而无法解决,但请注意Silverlight提供了最多的选择。另请注意,应考虑团队中开发人员的现有语言体验。)
API稳定性和兼容性
网络/浏览器集成
开发人员工具
答案 2 :(得分:2)
像Flex和Silverlight这样的网络运行时都提供了诱人的东西,但需要付出两大代价:
即使是几乎无处不在的Flash也没有安装在每个网络浏览器上,因此通过选择使用插件运行时,您将排除部分观众。
相比之下,JavaScript(或Ajax)几乎可以在每个浏览器上使用,并且可以与普通网页进行更好的交互,但却是一种更原始,更具限制性的语言。将它用于复杂动画可能会非常棘手,您需要在更多平台上测试更多版本的应用程序以确保其有效。
跨平台兼容性不再是以前的问题,因此问题是:您是否会获得插件库功能的更多功能,而不是您在排除的受众群体中失去的功能? 强>
到目前为止,我自己的答案一直是JavaScript / Ajax,但我会在任何新项目中对其进行重新评估。
答案 3 :(得分:1)
您的受众群体是什么:公共网站或内联网业务应用程序?如果您的受控受众群体将安装运行您的应用所需的内容,则采用率无关紧要。但是,如果您需要尽可能多的受众群体来使您的网络创业成功,那么这可能是至关重要的。
你的目标是什么?以最低的成本建造东西?学习新技术?
你能利用现有的技能吗?如果你已经了解.NET,那么Silverlight会得到提升。学习Flex可能很有趣,也很有用,但是对于您来说,比使用.NET技术更有经验更有用吗?记得要考虑学习一些全新的东西的机会成本。
此时我没有看到明确的技术赢家,并且可能很长一段时间都没有,所以选择将归结为相当主观的因素。
答案 4 :(得分:0)
除了这里已经提到过的内容之外,另一个需要考虑的重要因素是你的UI将会是什么。
如果您要使用许多高级UI控件(如树,列表,选项卡控件等),请考虑以下事项:
JavaScript / HTML - 除了基本的下拉框,按钮和文本字段之外的任何东西都没有原生支持。如果你想要一个像树形控件或标签控件之类的东西,你就必须自己动手或找到第三方库。
Adobe ActionScript - 对各种高级UI控件的本机支持