9

我想将带有 MVC 的 javascript 框架用于数字档案中的 Intranet 的复杂 Web 应用程序(这将是一组相关的应用程序和页面之一)。我一直在研究 SproutCore 和 JavascriptMVC。我想选择一个框架并坚持下去。

有谁知道比较这两者时的区别特征是什么?

我想要一些简单、直接的东西,我可以轻松地自定义/破解,并且不会妨碍我的工作,但同时也为我提供了保持我的代码组织良好和事件驱动的基础。我还计划大量使用 jquery。

我知道 sproutcore 得到了 Apple 的支持,而且看起来它越来越受欢迎,而且它有一个不错的绿色网站 :),而 JavascriptMVC 看起来不那么专业,追随者少,背后的动力也少。

我已经完成了两者的教程,而且我对 SproutCore 印象深刻(在 JMVC 教程中,你并没有真正做任何实质性的事情)——但在我的脑海深处,我觉得 JMVC 可能会更好,因为它没有不要尝试做太多 - 它只是为您提供基于几个 jquery 插件的 MVC 功能,您可以将 jquery 用于其他所有内容,因此它很灵活。而 SproutCore 似乎有更多自己的 API 等......这在某种程度上也很好......但是你有点陷入其中......嗯,我很困惑:)。

任何想法将不胜感激。

4

4 回答 4

9

作为一名 JavaScriptMVC 贡献者,我非常有偏见。但我会尽力给出最好的答案。

JavaScriptMVC 也花费了数年的时间来开发。但它没有专注于 ui 功能,而是专注于其下方的层。这有几个原因:

  1. 你可以找到一个 jQuery 小部件来满足几乎所有的需求。没有理由与这些插件竞争。相反,JavaScriptMVC 尝试使用它们。
  2. 大多数人需要一两个自定义小部件/控件。JavaScriptMVC 希望尽可能轻松地构建和维护这些部分。
  3. 灵活性+API。我不知道该怎么说……但这是我最好的选择……使用 JavaScriptMVC,我们希望应用程序的每一层都尽可能易于理解和维护。这就是我们选择 jQuery 作为我们的低级库的原因。它的 API 是关于 dom 的最佳抽象。人们通常直接从低级 API 构建 Widget/Control。这就是为什么大多数 jQuery 小部件的代码看起来非常不同的原因。我们想要一个中间层来组织我们的代码并促进最佳实践,同时提供足够的灵活性来满足几乎任何要求。因此,使用 JavaScriptMVC,您可以获得非常可靠的低层和中层。但是,你没有得到小部件。

JavaScriptMVC 在框架中包含测试、错误报告和文档。测试是最令人印象深刻的部分。它集成了 selenium 和 envjs 测试。

我的建议是使用 SproutCore,如果您的需求可以使用 SproutCore 非常简单地构建。但是,如果您了解 jQuery,必须构建大量自定义控件,或者需要非常棒的测试,请使用 JavaScriptMVC。

于 2010-07-20T22:05:21.490 回答
8

有趣的是,就在一个月前左右,我们的团队对这两个框架进行了准确的评估。我们最终选择了 JavaScriptMVC,我已经亲手使用它大约一个月了。

我喜欢它……但是,我是 SproutCore 的大力支持者。在我们对它们进行评估之前,我从未听说过这两种框架,但是当我看到 SproutCore 并深入了解它们时,我印象非常非常深刻。老实说,我认为没有任何东西可以给你它所赋予的那种力量。是的,你会有一个学习曲线,但这是一种一旦你知道它就可以让一个人完成 5 或 10 的工作的东西。

所以我会立即使用 SproutCore。

话虽这么说,JavascriptMVC(又名“JMVC”)很好。它并没有真正为您提供 jQuery 本身的大量信息。您仍然需要自己构建一些基础架构(取决于您的要求有多复杂)。这既是优点也是缺点。关于它的一件好事是,如果您需要深入了解 JMVC 的某个部分的细节,您可以……它并没有大到难以理解的程度。

总之,JMVC 没有问题。但是,在我看来,即使在 SproutCore 的球场上也没有任何东西。

于 2010-11-26T02:19:33.000 回答
2

我认为它们之间的主要区别在于 SproutCore 包含一个 GUI,而 JMVC 是没有任何图形的低级别的东西,所以如果你需要一个 GUI,你不能在不包含其他脚本(如 jQuery UI 或 jQuery 插件)的情况下使用 JMVC。

您说“JMVC 可能会更好,因为它不会尝试做太多事情”我不同意这一点,SproutCore 1.0 发布需要数年时间,因此开发人员有时间制作出色的产品。

我建议你使用 SproutCore,也许你需要学习更多的东西,你会花更多的时间来练习和理解一切,但你会学习如何使用一个非常好的框架,它对未来的项目也很有用。

于 2010-05-27T08:34:38.383 回答
1

Sproutcore-2.0 消除了 ui-constraints 并与完全自定义的 app-uis 配合得很好。

http://blog.sproutcore.com/announcing-sproutcore-2-0/

http://blog.sproutcore.com/dispatches-from-the-edge-dropping-in-a-sproutcore-2-0-application/

于 2011-06-01T20:38:15.643 回答