草庐IT

javascript - 用于 Web 应用程序开发的 sproutcore 与 javascriptMVC 对比

coder 2024-05-18 原文

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

有人知道比较这两者时有什么区别吗?

我想要一些简单、直接的东西,我可以很容易地定制/破解,而且不会妨碍我太多,但同时它为我提供了一个让我的代码井井有条的基础,以及事件驱动。我还计划大量使用 jquery。

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

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

如有任何想法,我们将不胜感激。

最佳答案

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

JavaScriptMVC 也经过多年的发展。但它不是专注于 ui 功能,而是专注于它下面的层。这有几个原因:

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

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

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

关于javascript - 用于 Web 应用程序开发的 sproutcore 与 javascriptMVC 对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919461/

有关javascript - 用于 Web 应用程序开发的 sproutcore 与 javascriptMVC 对比的更多相关文章

  1. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  4. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  9. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  10. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

随机推荐