我将从我的执行摘要开始:
如果我现在必须选择,我会选择Flex.数据绑定和服务器通信非常简单,直观且快速设置.您会发现,如果您正在进行大量布局和MVC风格的框架视图,那么Flex可能会让您更快地设置,并且更容易阅读.
比较标记
Flex专注于MXML,它是标记语言.它对于大多数开发人员来说都是全新的,所以如果他们已经知道HTML / JavaScript / CSS,那么这可能是一个重点. Flex的优势在于它不像HTML那样受限制.如果需要属性或数据绑定,可以直接在标记上进行.也许并非总是最好的做法,但你可以.
ExtJS采用了使用JavaScript扩展标准标记的方法,所以虽然你的HTML确实需要做得很好,但它确实是JavaScript贯穿始终,完成工作.
组件/功能
Flex在数据处理方面更胜一筹.它使用E4X,它是一种使用点语法的内联XML查询语言. BookCase.Books.Book [@ id = 43].@ title,例如.
ExtJS也进行数据绑定,但它更冗长,并不像Flex那样简单.
Flex为布局建模,输入和图表提供了许多非常好的内置组件.它们易于使用,具有通用的样式界面(通常),并且可以具有自定义样式和CSS的子集,以及一些专有扩展. ExtJS使用标准的CSS标记,而不仅仅是一个子集.
ExtJS拥有比Flex更多的插件和组件,而Menu控件更具可定制性,看起来更好. ExtJS中的默认样式也有点漂亮.
布局引擎
在我看来,Flex赢得了这一手牌.如果您想要一个列布局,您可以使用网格或流布局来实现它,并在大约4行MXML中. Ext中的相同内容要求Javascript对象通过布局类传递.国际海事组织,实际工作更难.
履行
两个系统都易于部署和维护.复制文件,如果您正在进行持续集成,两者都将起作用.
可测性
您可以将jsUnit用于ExtJS,将FlexUnit用于Actionscript.这种可测试性管理的难易程度完全取决于您对开发风格的控制.这两个框架都会导致UI与具有测试价值的代码混合在一起,而ExtJS默认需要更多分离.
如果你设置正确,这里没有明显的优势.
性能
Windows上的Internet Explorer具有最佳的Flash性能,令人遗憾.如果您使用的是Mac,则在初始插件加载期间可能会看到速度缓慢.生产中的Flex需要运行生产版本,您需要运行生产Flash播放器,而不是调试版本.在我们的环境中,生产版本生产Flash Player将初始加载减少了4-6秒,因此请确保比较苹果.
动画在Flash中会更快,但老实说,除非你正在进行繁重的数据处理,否则你不会真正看到很多性能问题.如果这个应用程序有很多动画图表,滑动动画和那种性质的东西,你应该使用Flash.这就是它的基础,并且擅长它.如果您只是隐藏并显示部分屏幕,并且可能正在进行基本动画,ExtJS将获胜.
可维护性
两者都有成为怪物的巨大潜力.如果每个人都用MXML编写所有代码并且从不编写脚本或外部CSS,Flex将成为一个怪物.如果你是如何处理数据和布局管理器的话,ExtJS将是一个怪物.
好消息是两者都可以以开发人员友好的方式成功维护,并且两者都可以适应持续的集成过程,从头到尾.
希望这可以帮助.