6

一段时间以来,我一直在使用Ext JS作为丰富的小部件工具包,但我正在考虑转向YUI,部分原因是许可证限制较少。

YUI 中使用的面向组件的模型似乎与我在 Ext JS 中非常喜欢的模型非常相似,但我对这些相似之处的深度感兴趣。所以我对使用过 Ext JS 和 YUI 的人的反馈很感兴趣。什么是相同的,什么是不同的?迁移到 YUI 我会失去什么,我会得到什么?

4

7 回答 7

10

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

YUI 旨在满足雅虎公司的需求。它非常擅长构建面向公众的应用程序,其中优雅的降级、干净的标记和可访问性很重要。

ExtJS 是一个非常优秀且设计良好的完整 RIA 框架,它非常坚定地针对构建业务线应用程序。真正强大的网格组件、强大的布局和良好的专业外观等功能。

我已经相当多地使用了这两种方法,尽管只使用了 YUI 2.7.0 并且已经使用这些框架构建了几个完整的 RIA。

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

于 2010-03-16T16:36:46.190 回答
3

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

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

于 2011-08-13T14:38:42.300 回答
2

对我来说,不同之处在于 YUI 非常轻量级和灵活,而 ExtJS 更重,占用空间更大,使用方式更严格。如果你知道你在用 Javascript 做什么并且想要扩展你的能力,那么 YUI 就很棒;如果你想要一个不需要太多麻烦的 UI 抽象层,ExtJS 是很好的……但如果你确实想让它做一些它没有被设计做的事情,它可能是一件真正的苦差事。

于 2010-03-16T16:33:07.133 回答
2

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

我最终选择了 YUI 有几个原因:YUI 3 非常轻巧,对于简单的任务来说速度很快,延迟加载让事情变得更快。

优雅降级对于这个应用程序很重要。

在 YUI 3 中使用 YUI 2 小部件是相当容易的,并且在 3.1 之后几周之后,这将变得更加容易。

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

于 2010-03-16T17:21:01.000 回答
2

所有应用程序都迁移到 Web的时代,Gareth 在面向公众和商业应用程序之间划出的清晰界限对我来说没有意义。

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

优优优势:

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

分机优势:

  • 更丰富的功能和组件
  • 一些(未记录的)服务器端驱动程序(如 .NET)(尽管在服务器上使用此类库似乎是糟糕的设计)

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

于 2011-03-04T14:19:39.157 回答
1

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

于 2012-02-23T01:40:43.600 回答
1

我还没有大量使用 ExtJS,仍处于学习阶段,但是对于我能够用它做的事情,我很确定即使在一年多以前,当我做很多 YUI 开发时,这将更具挑战性,结果也不会那么顺利。

并不是说您不应该这样做,但我对您的建议是对您必须查看的某些现有功能进行一些认真的研究和良好的原型设计,看看 YUI 是否符合您的需求。不要只基于示例和“是的,似乎可行”的感觉。

于 2010-03-16T20:22:08.453 回答