比较YUI和Ext JS

时间:2010-03-16 16:20:58

标签: javascript extjs yui javascript-framework

我已经使用Ext JS作为我的rich-widget工具包了一段时间,但我正在考虑转移到YUI,部分原因是许可限制较少。

YUI中使用的面向组件的模型看起来非常类似于我在Ext JS中非常喜欢的模型,但我对这些相似之处的深度感兴趣。所以我对那些同时使用Ext JS和YUI的人的反馈感兴趣。什么是相同的,有什么不同?搬到YUI我会失去什么,我有什么收获?

7 个答案:

答案 0 :(得分:10)

我认为这两个库实际上都满足了不同的需求。

YUI旨在满足雅虎公司的需求。它非常擅长构建面向公众的应用程序,在这些应用程序中,优雅降级,清晰标记和可访问性等内容非常重要。

ExtJS是一个非常好的,设计良好的完整RIA框架,非常坚定地致力于构建业务线应用程序。功能强大的网格组件,强大的布局和良好的专业外观和感觉。

我已经使用了两者,虽然只有YUI 2.7.0并且已经使用框架构建了几个完整的RIA。

将现有应用程序从一个应用程序移动到另一个应用程序将会非常不同,因为尽管它们共享一个共同的祖先(ExtJS曾经是YUIext),但框架现在却完全不同。

答案 1 :(得分:3)

一个主要的区别是YUI是在非常宽松的BSD许可证下发布的,而ExtJS是在GPL的非常病毒式解释下发布的。例如,使用Sencha对GPL的解释,如果您专门编写SOAP或REST接口以与ExtJS前端通信,那么您的服务器代码必须是GPL,并且您必须提供对源的访问权限,因为您已通过授予“分发”它通过网络访问。 Sencha确实为他们的代码提供了商业许可证,但如果您仔细阅读他们的文档,您将看到他们不允许您在切换到商业版本时将您针对GPL Sencha编写的代码转换为其他许可证。 (http://www.sencha.com/legal/license-overview)

简而言之,如果您的代码需要与专有业务逻辑或商业许可系统集成,那么您必须从一开始就使用商业版Sencha进行开发。

答案 2 :(得分:2)

对我而言,不同之处在于YUI非常轻巧灵活,而ExtJS更重,占地面积更大,使用方式也更加坚固。如果你知道你在Javascript中做了什么并想要扩展你的力量,YUI是很棒的;如果你想要一个你不需要太多的UI抽象层,那么ExtJS是很好的...但是如果你想让它做它没有设计的事情,它可以是一件真正的苦差事。

答案 3 :(得分:2)

在构建最近的应用程序时,我有完全相同的决定来制作YUI或Ext JS。

我最终选择了YUI,原因如下: YUI 3重量极轻,快速完成简单任务,延迟加载使事情变得更快。

优雅降级对于这款应用非常重要。

在YUI 3中使用YUI 2小部件相当容易,距离3.1几周就会变得更加容易。

YUI文档令人难以置信,irc聊天和论坛非常有用,实际上有来自YUI开发团队的人员。

答案 4 :(得分:2)

所有应用程序迁移到网络的时代,Gareth在面向公众和商务应用之间绘制的清晰线条对我来说也没有意义。

我更喜欢其他答案,例如Robusto的答案,并在技术/财务方面比较这两个框架。

YUI优势:

  • 轻量级(HTML + Javascript)
  • 效率更高
  • 更易于学习和理解
  • 更好的文档和示例
  • 更大的社区

Ext优势:

  • 更丰富的功能和部件
  • 一些(未记录的)服务器端驱动程序(如.NET)(虽然在服务器上使用这样的库似乎设计不好)

结论: 如果您的网站不需要ext提供的额外功能,请转到YUI。

答案 5 :(得分:1)

我还没有使用很多ExtJS,还处于学习阶段,但是对于我能用它做的事情,我很确定即使比一年前我做了很多事情还要多一点对于YUI开发者来说,它会更具挑战性,结果也不会那么光滑。

不是说你不应该这样做,但我对你的建议是做一些认真的研究和一些现有功能的良好原型,你必须看看YUI是否符合你的需求。不要仅仅依靠自己的例子和“耶和华似乎会起作用”的感觉。

答案 6 :(得分:1)

使用GPLv3,它声明只要您的用户都是您不需要共享源代码的同一法人实体的一部分。该措辞在技术上表明,如果它们不属于同一法律实体,那么您需要提供来源。但这并不意味着Sencha不会在以后更改许可证。这也不意味着他们也会。