Sproutcore和JavaScriptMVC哪个更适合Web应用程序开发?

9

我希望使用一个带有MVC的JavaScript框架来开发复杂的Web应用程序(它将是一组相关应用程序和页面之一),用于数字档案馆内部网。我一直在研究SproutCore和JavascriptMVC。我想选择一个框架并坚持使用它。

有人知道比较这两个框架时的区别吗?

我想要简单、直接、易于定制/修改,不会给我太多麻烦,但同时又能为我提供保持代码整洁、事件驱动的基础。我还计划大量使用jQuery。

我知道SproutCore由苹果支持,看起来越来越受欢迎,而且它有一个漂亮的绿色网站 :), 而JavascriptMVC看起来不太专业,拥有的追随者和动力也少。

我已经完成了两个框架的教程,我更喜欢SproutCore(在JMVC教程中,你没有做任何实质性的东西)- 但在我的脑海里,我觉得JMVC可能更好,因为它不试图做太多- 它只是基于几个jQuery插件提供MVC功能,您可以使用jQuery进行其他所有操作,因此它很灵活。而SproutCore似乎有更多自己的API等... 在某种程度上也很好... 但是你会陷入其中.... 嗯,我很困惑 :)。

非常感谢您的任何想法。

4个回答

9
作为一名JavaScriptMVC的贡献者,我有很大的偏见。但我会尽力给出最好的答案。
JavaScriptMVC也花费了多年时间来开发。但它并没有专注于UI功能,而是专注于UI功能下面的层。这其中有一些原因:
  1. 你可以找到几乎满足所有需求的jQuery小部件。没有理由去竞争这些插件。相反,JavaScriptMVC试图与它们配合使用。
  2. 大多数人只需要一个或两个自定义小部件/控件。JavaScriptMVC希望尽可能地简化构建和维护这些部件。
  3. 灵活性+API。我不确定如何解释这一点...但这是我的最佳尝试...在JavaScriptMVC中,我们希望应用程序的每个层都尽可能易于理解和维护。这就是为什么我们选择了jQuery作为我们的低级库。它的API是关于DOM的最好的抽象。人们通常直接从低级API开始构建小部件/控件。这就是为什么大多数jQuery小部件的代码看起来非常不同。我们想要一个中间层来组织我们的代码并促进最佳实践,同时提供足够的灵活性来满足几乎任何要求。因此,在JavaScriptMVC中,您可以获得非常稳定的低级和中间层。但是,你不会得到小部件。
JavaScriptMVC将测试、错误报告和文档编入了框架中。其中最令人印象深刻的部分是测试。它集成了selenium和envjs测试。
我的建议是,如果您的要求可以通过SproutCore相当简单地构建,请选择SproutCore。但是,如果您熟悉jQuery,需要构建许多自定义控件或需要真正出色的测试,请使用JavaScriptMVC。

目前正在研究Dojo,因为我们想使用一个更为知名和支持的框架(这样易于找到/雇用开发人员来维护/扩展)。然而,Justin给出了非常好的答案。我肯定会选择JMVC,正是基于你所提供的原因。 - swami

8
有趣的是,就在一个月前左右,我们的团队对这两个框架进行了头对头的评估。最终我们选择了JavaScriptMVC,并且我已经亲自使用它约一个月了。
我喜欢它...但是,我曾经是SproutCore的铁杆支持者。在我们评估它们之前,我从未听说过这两个框架,但一旦我看到了SproutCore并深入研究了它,我非常非常地印象深刻。老实说,我认为没有其他任何东西可以给你提供它所提供的强大功能。是的,你需要学习曲线,但一旦你掌握了它,它可以让一个人完成5或10个人的工作量。
所以我会毫不犹豫地使用SproutCore。
话虽如此,JavascriptMVC(又称“JMVC”)也很好。它本身并没有为jQuery提供太多内容。您仍然需要构建一些基础设施(具体取决于您的要求有多复杂)。这既是优点也是缺点。其中一个好处是,如果您需要深入了解某个JMVC的细节,您可以...它并不是无法理解的巨大系统。
总之,JMVC没有任何问题。但在我看来,与SproutCore相比,甚至没有任何东西能够与它相提并论。

+1 感谢您分享有关这两个框架的经验。 - IsmailS

2
我认为它们之间的主要区别是SproutCore包含GUI界面,而JMVC则是没有图形界面的底层内容,因此如果你需要GUI界面,则不能使用JMVC,除非包括其他脚本,如jQuery UI或jQuery插件。
你说“JMVC可能更好,因为它不试图做太多”,我不同意这个观点。在SproutCore 1.0发布之前,花费了数年时间,因此开发人员有足够的时间制作出一个伟大的产品。
我建议您使用SproutCore,也许您需要学习更多的知识,花费更多的时间来练习和理解所有内容,但您将学习如何使用一个非常好的框架,这对未来的项目也将非常有用。

我不介意学习新的东西。事实上,我真的很喜欢SproutCore语法和它的工作方式。但是我正在构建的应用程序相当非标准 - 基本上提供了一个界面来标记XML文档。所以需要做很多自定义工作 - 所以我想也许在这种特殊情况下更适合使用更底层的东西... - swami
但是这样你就必须自己构建一个界面,而不是使用已经创建好的(美丽)GUI。无论如何,你说你不在乎学习新东西,但这是你生命中的最后一个项目吗?希望不是。所以下次你开始另一个应用程序时,你已经学会了框架的所有内容,因此你只需做一半的工作。总之,你必须在使用具有巨大框架但已经创建好了图形的项目与使用没有 GUI 框架但规模较小的项目之间进行选择。 - mck89
1
我认为UI小部件不是SproutCore最大的优势。它有几个吸引人的特点,其中我会把数据绑定和属性观察者放在首位。连接视图和模型并保持它们同步需要大量的样板代码,而SproutCore可以显著减少这些代码。 - Anurag

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接