在Ajax、Flex和Silverlight之间进行选择

在Ajax、Flex和Silverlight之间进行选择,ajax,silverlight,apache-flex,Ajax,Silverlight,Apache Flex,,和是制作更具交互性的web应用程序的几种方法。当你决定使用一个新的Web应用程序时,你会考虑什么样的因素?p> 它们中有哪一个提供更好的跨平台兼容性、性能、开发人员工具或社区支持 像Flex和Silverlight这样的web运行时都提供了诱人的东西,但要付出两大代价: 它们只在页面上的一个矩形内运行,不与普通的web小部件交互 它们仅对安装了该插件的用户可用 即使是几乎无处不在的Flash也不是安装在每个web浏览器上,因此,选择使用插件运行时,您就排除了部分用户 相比之下,JavaSc

,和是制作更具交互性的web应用程序的几种方法。当你决定使用一个新的Web应用程序时,你会考虑什么样的因素?p>
它们中有哪一个提供更好的跨平台兼容性、性能、开发人员工具或社区支持

像Flex和Silverlight这样的web运行时都提供了诱人的东西,但要付出两大代价:

  • 它们只在页面上的一个矩形内运行,不与普通的web小部件交互
  • 它们仅对安装了该插件的用户可用
即使是几乎无处不在的Flash也不是安装在每个web浏览器上,因此,选择使用插件运行时,您就排除了部分用户

相比之下,JavaScript(或Ajax)在几乎所有浏览器上都可用,与普通网页的交互效果更好,但它是一种更原始、更具限制性的语言。将其用于复杂的动画可能会很棘手,您需要在更多平台上的更多版本中测试应用程序,以确保其正常工作

跨平台兼容性已不再是过去的问题,因此问题是:插件库的功能是否会比排除在外的受众中的功能获得更多?


到目前为止,我自己的答案一直是JavaScript/Ajax,但我会在任何新项目中重新评估这一点。

您的受众是什么:公共网站还是内部网业务应用程序?如果你有一个受控制的用户,他们将安装运行你的应用程序所需的东西,那么采用率是不相关的。然而,如果你需要尽可能多的受众才能使你的网络创业成功,那么这可能是至关重要的

你的目标是什么?以最低的成本建造一些东西?学习新技术

你能利用你现有的技能吗?如果您已经了解.NET,那么Silverlight将得到提升。学习Flex可能很有趣也很有用,但它对您来说是否比更多的.NET技术经验更有用?记住要考虑学习新事物的机会成本。


在这一点上,我看不到一个明确的技术赢家,而且可能在很长一段时间内不会有赢家,因此选择将归结为相当主观的因素。

这里是每个领域的简要介绍(有很多有用的链接):

跨平台兼容性 在可以运行的环境中工作。Flex需要Flash或其他任何可以处理s的东西,但一旦安装,就兼容性而言,这是一个很大的挑战。Silverlight是如此仔细地考虑您在使用这个MS进入富Web应用程序军备竞赛。还请记住,Silverlight仍处于测试阶段,因此随着它的开发,将来可能会得到更广泛的使用和安装

演出 我害怕对性能做太多的陈述,因为这实际上取决于您愿意优化的程度以及应用程序的确切性质。此外,一些技术堆栈永远不会很快,但同样,(即使是您正在测试的浏览器版本!)。一旦开始开发,最好根据其他因素进行选择并进行优化

开发工具 以下三种工具都有“黄金标准”开发工具:

  • Ajax基本上有无限的选项,这取决于您对其他技术和体系结构的选择。你实际上面临的一个大问题是依赖哪些库,而谷歌已经给出了一个很好的答案,比如。当你开始讨论它时,它只是XML和JavaScript,对吗

  • Flex来自Adobe,就像Flash开发一样,你最好坚持下去,因为——好吧——他们正在制定标准

  • Microsoft已将Microsoft Expression Blend 2.0版和2.5版分别用于设计Silverlight 1.0和2应用程序的UI。Visual Studio 2008可用于开发和调试Silverlight应用程序()

社区支持 这三种选择都有官方和非官方的社区、公司和开源支持。无论你已经融入了什么,让你感觉最自在的都是非常个性化的事情,但我会给出以下建议:坚持你所知道的。如果你是微软的开发人员,并且有MSDN作为你的主页,你可能会认为和论坛真的很有帮助。Flex有一个非常相似的故事;论坛相当不错,如果你已经是一个喜欢Flash的人,你就可以在家里和他们的和

另一方面,Ajax基本上无处不在,因为您可以实现多种不同的方法,使用多种多样的库。每个图书馆都有自己的论坛可以访问,邮件列表可以隐藏在里面寻找答案


再一次,这三家公司的巨头都在努力培育他们的社区,并向开发者提供尽可能最好的支持,从而在未来为他们提供更大的市场份额。

我认为,选择应该主要基于您将要构建的应用程序的性质(例如,如果您需要操纵矢量图形,Ajax已经非常过时了),但这里有一些一般的指导原则:

无处不在

  • Ajax——所有跨平台的现代浏览器都支持它
  • Flex——Runtime(Flash Player)在Windows、Mac OS和Linux上的安装基础非常广泛。不过,上次我检查Linux版本时,它有点问题
  • Silverlight——目前运行时的安装基数很低(并且不支持Linux)
  • 编程语言的选择

    (由于主观性,所以未排序,但请注意Silverlight提供了最多的选择。还请注意,应考虑团队中开发人员的现有语言经验。)

    • Silverlight:任何.NET语言(C#、Visual Basic、IronPython(?)、IronRuby(?)和XAM)