写点什么

SproutCore:将 MVC 引入 JavaScript

  • 2007-08-15
  • 本文字数:1695 字

    阅读完需:约 6 分钟

SproutIt 发布了 SproutCore ,一个基于 JavaScript 语言的完整的全新 MVC 应用程序框架。SproutCore 是 SproutIt 为了他们的产品 Mailroom 而开发的,现在已经被 Apple 用在了.Mac Web Gallery 上。下面是来自 Tucows 的报导:

[……]SproutCore 是一个完全运行于浏览器端的 JavaScript 框架,可以运行在以任何服务器技术为后端的配置环境中。在 Jolley 的公司 SproutIt,他们使用 Rails 作为服务器后端,他们用一个包含了 SproutCore 框架的 Rails 插件来将一切变得更容易。Jolley 说 Apple 前端使用的是 SproutCore,后台则使用 WebObjects 技术和一台 WebDAV 服务器 [……]

由于市面上早就出现了不少 Ajax 程序库,InfoQ 采访了作者 Charles, Jolly,详细了解 SproutCore 与它们的不同之处。Jolly 首先被问到究竟是什么灵感使得他在已有的很多 JavaScript 框架的之外还要再重新开发一个全新的框架:

在我们构建新版本的 Mailroom(我们为小型商业公司提供的邮件管理器—— http://www.sproutit.com/mailroom)时,我想做一些更加丰富多彩的东西,使其更像一个桌面软件,而不是一个 Web 应用程序。 但有个问题就是其它的框架都是被设计用来帮助你在网页的这儿或那儿添加一些 Ajax 以及动画效果,它们不能帮助你在 Web 浏览器之上构建一个功能齐备的应用程序。所以我在开发 Mailroom 的时候,所以我不得不额外构建的用来支持这个富界面的部分,都被我抽取出来,并在软件本身的基础上做出了这个框架。

他又回答了 SproutCore 所拥有的而其它现有框架没有的特性:

SproutCore 和其它框架最大的不同之处在于,它为你提供了所有必要的工具,让你能真正得以与实际数据打交道。换句话说,你可以从服务器读取数据,然后用 SproutCore 来生成你的用户界面。同样,用户操作数据,SproutCore 也将自动的更新你的用户界面并且不需要和服务器进行交互。它使得你的应用程序感觉非常的快速并且丰富多彩。 来看一个非常简单的例子:在 Mailroom 中我们有一个叫做“Needs Attention”的页面,来告诉你你现在必须回复的邮件。当你回复了一个信息,我们就马上将它从“Needs Attention”这个页面移除。

在传统的框架和 Web 程序中,你必须与服务器进行一次完整的交互或者编写大量额外的 JavaScript。但是用 SproutCore 这一切都是自动的。只要将消息的状态设置为“已回复”,那么消息列表就会更新。

接下来 Jolley 被问到到底哪些应用程序该用 SproutCore,哪些不该:

如果你希望构建一个更像桌面程序的富客户端程序,你一定要使用 SproutCore。一旦你在页面上加入工具栏、菜单和源列表之类的组件后,你很快就会发现你得在页面上维护很多细微的状态。SproutCore 使得这些变得更加容易实现。 如果你只是有个网页,并且只需要一些 Ajax 和动画特效的话,SproutCore 就显得大材小用了。我倾向于使用一些更加简捷的框架,譬如 Scriptaculous。实际上,在我们的营销页面和 Sproutit 的 Blog 中,我们使用的是 Scriptaculous 和 Prototype。不过我们也使用 SproutCore 来构建我们所有的 Web 程序。

随后,这次采访的话题又转向了 Apple。Jolley 谈到他自己和 Apple 之间在.Mac Galley 上的合作。他说当 Apple 发现 SpoutCore 框架后,他被邀请加入他们的团队来帮助他们构建应用程序。为了提高 SproutCore 的性能以及完善它的 API,.Mac 团队为在原有基础上又添加了大量的功能。这就使得如今的 SproutCore API 的运行速度提高了 4 到 5 倍,同时跨浏览器方面的表现也是渐入佳境。

最后 Jolley 被问及了 SproutCore 的未来:

我正在为它加入更多的功能,例如源列表、工具栏、拖拽和一些超炫的动画效果,这将使 SproutCore 在 UI 设计方面更上一层楼。不过可能更重要的是,我正在构建一个实例性的应用或是一个入门教程,因为我认为这是现在采用 SproutCore 最重要的障碍。

查看英文原文: Bringing MVC to JavaScript - SproutCore - - - - - -

译者简介:冉翔,有着三年 JavaEE 工作经验,目前是一个 Linux/RoR fan。北京RoR 培训活动核心成员,个人网站 ranxiang.com ,你可以通过 Email&Gtalk 找到他:ranxiang(at)gmail.com。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-08-15 22:521862

评论

发布
暂无评论
发现更多内容

优化数据处理效率,解读 EasyMR 大数据组件升级

袋鼠云数栈

大数据组件 大数据计算引擎 大数据引擎 数据组件 组件升级

数据安全风险怎么理解?包括哪些方面?

行云管家

数字化 数据安全 企业数据

淘宝API接口测试中的安全性保障

Noah

新版HAP应用市场即将推出,诚邀意向开发者提前入驻,抢占先机

明道云

利用人工智能ChatGPT自动生成基于PO的数据驱动测试框架

测试人

软件测试

Go 并发编程原语及并发设计模式

baiyutang

Go 编程 云原生 并发’

7thonline第七在线出席中服协时尚科技峰会 探讨AI商品管理落地

第七在线

百度智能云 ABC Stack 获可信云技术最佳实践,共建一云多算生态

Baidu AICLOUD

大咖公开课 | 大模型场景讲解以及测试方法

测试人

软件测试

【YashanDB知识库】ycm托管数据库时,数据库非OM安装无法托管

YashanDB

yashandb 崖山数据库 崖山DB

生成式 AI 时代的数据库:Databend 与大模型的融合探索

Databend

全渠道AI数字化商品管理 零售品牌增长“超级引擎”

第七在线

利用人工智能ChatGPT自动生成基于PO的数据驱动测试框架

测吧(北京)科技有限公司

测试

【YashanDB知识库】ycm纳管主机安装YCM-AGENT时报错“任务提交失败,无法连接主机”

YashanDB

yashandb 崖山数据库 崖山DB

硅纪元视角 | 6秒生成4张图,Getty Images和英伟达联合推出文生图AI模型

硅纪元

【Hbase】运维问题汇总

扬_帆_起_航

闲鱼开发者必读:如何利用闲鱼商品列表数据接口进行数据分析

tbapi

闲鱼API 闲鱼商品列表接口 闲鱼商品列表数据接口 闲鱼商品列表数据采集

穿越流程管理的丛林!Prothentic学院「流程管理培训」第1期圆满落幕

望繁信科技

业务流程管理 望繁信科技 流程管理培训 陈果George Prothentic学院

利用人工智能ChatGPT自动生成基于PO的数据驱动测试框架

霍格沃兹测试开发学社

济宁有正规等保测评机构吗?大神求告知!

行云管家

等保 等级保护 济宁

测试环境领域到测试环境产品

阿里技术

阿里巴巴 测试 淘宝 测试环境

SproutCore:将MVC引入JavaScript_Java_Shane Witbeck_InfoQ精选文章