用于Web应用程序开发的sproutcore vs javascriptMVC

时间:2010-05-27 08:14:00

标签: javascript web-applications sproutcore javascriptmvc

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

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

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

我知道sproutcore是由Apple支持的,看起来它在今天变得越来越受欢迎,并且它有一个漂亮的绿色网站:),而JavascriptMVC看起来不那么专业,后面有更少的跟随和更少的动力。

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

任何想法都会非常感激。

4 个答案:

答案 0 :(得分:9)

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

JavaScriptMVC也需要数年时间才能开发出来。但它不是专注于ui功能,而是专注于低于此的层。这有几个原因:

  1. 您可以找到一个jQuery小部件来满足几乎所有需求。没有理由竞争这些插件。相反,JavaScriptMVC尝试使用它们。
  2. 大多数人需要一个或两个自定义小部件/控件。 JavaScriptMVC希望尽可能简单地构建和维护这些部分。'
  3. 灵活性+ API。我不确定该怎么说这个......但这是我最好的镜头......使用JavaScriptMVC,我们希望应用程序的每一层都尽可能易于理解和维护。这就是为什么我们选择jQuery作为我们的低级库。它的API是关于dom的最佳抽象。人们通常直接从低级API来构建Widget / Control。这就是为什么大多数jQuery小部件的代码看起来非常不同。我们想要一个中间层来组织我们的代码并推广最佳实践,同时提供足够的灵活性来满足几乎任何要求。因此,使用JavaScriptMVC,您可以获得非常可靠的低级和中级层。但是,你没有得到小部件。
  4. JavaScriptMVC将测试,错误报告和文档融入框架中。测试是最令人印象深刻的部分。它集成了selenium和envjs测试。

    我的建议是使用SproutCoreif,你的需求可以通过SproutCore非常简单地构建。但是如果你知道jQuery,必须构建很多自定义控件,或者需要真正棒极了的测试,请使用JavaScriptMVC。

答案 1 :(得分:8)

很有趣,因为仅仅一个月左右,我们的团队正好评估了这两个框架。我们最终选择了JavaScriptMVC,并且我已经用它实践了大约一个月。

我喜欢它...但是,我是SproutCore的巨大支持者。在我们评估它们之前,我从来没有听说过任何一个框架,但是一旦我看到SproutCore并且看到引擎盖下,我就非常非常感动。老实说,我认为那里没有任何可以给你带来的力量。是的,你会有一个学习曲线,但是一旦你知道它就可以让一个人完成5或10的工作。

所以我会在心跳中使用SproutCore。

话虽如此,JavascriptMVC(又名“JMVC”)很不错。它并没有真正给你jQuery本身。您仍然可以自己构建一些基础架构(取决于您的要求有多复杂)。这既是赞成也是骗局。关于它的一个好处是,如果你需要深入了解某些JMVC的细节,你可以......它不是那么庞大而且难以穿透。

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)