【问题标题】:Comparing YUI and Ext JS [closed]比较 YUI 和 Ext JS [关闭]
【发布时间】:2011-01-28 04:55:23
【问题描述】:

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

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

【问题讨论】:

    标签: javascript extjs yui javascript-framework


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 关于面向公众与工作应用程序的有趣点。到目前为止,我们一直在将 ExtJS 用于内部工作,但我们正在考虑将它用于面向公众的应用程序 - 听起来我们可能希望在这种情况下使用 YUI。
    • 这就是我要划清界限的地方,不一定要那样(我相信 ExtJS 的人会说),但是像 YUI 和 jQuery 这样的框架似乎更适合一点面向公众
    • 这是一个非常有趣的观点,我 100% 同意。现在我已经更多地使用 ExtJS,我记得在我们的业务应用程序中尝试使用 YUI 的日子,我认为它很好而且相当成熟,但是很难让它处理所有你可能遇到的小事情想要在商业应用程序中。 YUI 相当成熟,但他们并不完全针对同一个人。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • Ext 非常灵活和强大,如果你知道如何使用它——它绝对不是“死板的”。我认为更公平的说法可能是它的学习曲线更陡峭,但在我看来,它是一个同样强大的框架。
      【解决方案4】:

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

      我最终选择了 YUI,原因如下: YUI 3 对于简单的任务来说非常轻量和快速,延迟加载让事情变得更快。

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

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

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

      【讨论】:

        【解决方案5】:

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

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

        YUI 优势:

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

        外部优势:

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

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

        【讨论】:

        • +1 表示“免费”作为 YUI 的第一个优势,+1 以及 ExtJs 的“未记录”部分(但我只能投票一次):)
        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2011-08-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-19
            • 2011-06-19
            • 2013-07-27
            相关资源
            最近更新 更多