Ajax,Flex和Silverlight是制作更多交互式Web应用程序的几种方法.在决定使用哪种新Web应用程序时,您会考虑哪些因素?
他们中的任何一个是否提供更好的跨平台兼容性,性能,开发人员工具或社区支持?
这是每个区域的快速概述(有很多有用的链接):
Ajax适用于任何可以运行JavaScript的现代浏览器.Flex需要Flash或其他任何可以处理SWF的东西,但是一旦安装了它,就兼容性而言,它是一个完全自由的.Silverlight很棘手且被误解,因此在进入富Web应用程序军备竞赛之前,请仔细考虑您的用户群.另外请记住,Silverlight仍处于测试阶段,因此在未来开发时可能会得到更广泛的使用和安装.
我担心会有太多关于性能的陈述,因为它实际上取决于您愿意优化多少以及应用程序的确切性质.此外,一些技术堆栈永远不会非常快.有些人一直在进行比较,但同样,这取决于很多因素(甚至是您正在测试的浏览器的版本!).最好根据其他因素进行选择,并在开始开发后进行优化.
这三者中的每一个都有"黄金标准"开发工具:
Ajax基本上可以无限制地选择,具体取决于您的其他技术和架构选择.您实际面临的重大问题是哪些图书馆需要依赖,而Google已经通过Web Toolkit等方式提出了很好的回答.当你接近它时,它只是XML和JavaScript,对吧?
Flex来自Adobe,就像Flash开发一样,你最好坚持使用他们自己开发的工具,因为 - 好吧 - 他们正在制定标准.
Microsoft已将Microsoft Expression Blend版本2.0和2.5分别用于设计Silverlight 1.0和2应用程序的UI.Visual Studio 2008可用于开发和调试Silverlight应用程序(来自Wikipedia).
所有三个选项都有官方和非官方社区,企业和开源支持.无论你已经融入哪个并且让你感觉最贴心的是个人的事情,但我会提供这样的建议:坚持你所知道的.如果您是MS开发人员并将MSDN作为主页,您可能会认为Silverlight文档和论坛非常有用.Flex有一个非常相似的故事; 论坛非常好,如果你已经是Flash人员,那么你将会在他们的文档和用户社区中找到合适的人选.
另一方面,Ajax基本上遍布各处,因为您可以实现许多不同的方式并使用如此多的各种各样的库.每个图书馆都可以拥有自己的论坛来访问和邮寄列表,以便潜入答案.
这三家企业巨头再一次试图培养他们的社区,并为开发商提供最好的支持,以便在未来为他们提供更大的市场份额.
在我看来,选择应该主要基于您将要构建的应用程序的性质(例如,如果您需要操作矢量图形,Ajax几乎已经完成),但这里有一些通用指南:
无处不在
Ajax - 跨平台的所有现代浏览器支持
Flex - Runtime(Flash Player)具有非常广泛的Windows,Mac OS,Linux安装基础.不过,我最后一次检查Linux版本有点儿错误
Silverlight - Runtime目前安装基础相当低(并且没有Linux支持)
选择编程语言
(由于主观性而无法解决,但请注意Silverlight提供了最多的选择.另请注意,应该考虑团队中开发人员的现有语言体验.)
Silverlight:任何.NET语言(C#,Visual Basic,IronPython(?),IronRuby(?))(以及用于UI定义的XAML)
Ajax:JavaScript(和用于UI定义的XHTML)
Flex:ActionScript 3(以及用于UI定义的MXML)
API稳定性和兼容性
Flex - Runtime在平台和浏览器中是相同的,目前比Silverlight更成熟和稳定
Silverlight - Runtime在平台和浏览器中是相同的,不如Flex/Flash成熟,v2.0仍处于测试阶段
Ajax - 跨浏览器的兼容性问题(可以通过Ajax库缓解)
Web /浏览器集成
Ajax - 内容在浏览器中是本机的,基于标准:可由浏览器和搜索引擎爬虫搜索,受浏览器和操作系统建立的任何标准UI实践的影响
Flex和Silverlight - 内容不是浏览器的原生内容(即在其自己的"沙箱/矩形"中运行):不一定受制于给定平台的既定UI实践
开发者工具
Ajax - 您最喜欢的代码编辑器,浏览器和浏览器调试工具包
Flex - Flex SDK可免费用于Windows,Mac OS和Linux,可与您喜欢的代码编辑器一起使用.包含命令行调试程序,但Adobe提供的概要分析程序仅在商业Flex Builder IDE中可用
Silverlight - AFAIK,SDK免费提供给Windows,可以与您喜欢的.NET开发工具一起使用