写点什么

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:521795

评论

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

从几个方面深入分析信创堡垒机的作用

行云管家

信创 数据安全 堡垒机 国产化

从Rust模块化探索到DLB 2.0实践|得物技术

得物技术

rust DLB

CST圆极化贴片天线阵列 --- 时域T-solver, 分组激励法 By zone(Grouping)

思茂信息

电磁 天线 CST Studio Suite

A Better Finder Attributes 7 for Mac文件批量重命名工具

Geek贝

数字藏品 NFT 系统的开发

北京木奇移动技术有限公司

NFT开发 软件外包公司 音乐NFT

前端热更新:静默引擎重构中国互联网敏捷生态与数字化转型范式

xuyinyin

vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复

vivo互联网技术

Java 大数据 消息队列 pulsar Kafk

AI 在英语口语练习中的核心应用

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

【社招】斑马、问界、长城、一汽、鉴智招人

Y11

安全 简历优化 找工作

法律AI或将颠覆行业,AlphaGPT带来法律工具新革命

科技汇

助力律师团队持续增长,iCourt跨界论坛走进华为探讨法律行业发展方向

科技汇

NocoBase 本周更新汇总:支持自定义聚合变量

NocoBase

开源 低代码 零代码 无代码 版本更新

技术分享 | 基于 Amazon Codepipeline 的静态网站自动部署

伊克罗德信息科技

宋泽致“全体员工”的一封信——野火不惧寒风,山花终将灿烂

中烟创新

Awesome LLM Apps - 精选大型语言模型应用集合

qife122

语音助手 LLM rag

淘宝API文档:淘宝商品详情API接口

tbapi

淘宝数据采集 淘宝API 淘宝商品详情API接口 天猫API 天猫商品详情api

一文让你深刻理解等保制度的重大意义

行云管家

等保 等保测评 等级测评

Google Search Console 做SEO分析之“已发现未编入” 与 “已抓取未编入” 有什么区别?

村头的猫

搜索引擎 SEO 建站 SEO工具 SEO 优化

SQLPro for MSSQL for Mac(MSSQL数据库客户端)

晨光熹微

Spring框架中的Component与Bean注解

码语者

Java spring bean Component

Cisdem Duplicate Finder for Mac重复文件查找工具

Geek贝

Mac 软件

JixiPix Premium Pack for mac图像处理工具

Geek贝

配得准才是真降本:AI破解零售补调困局

第七在线

大数据-36 HBase 增删改查 列族详解 实测

武子康

Java 大数据 hadoop 分布式 HBase

Vectorworks 2023 for mac(3D建筑设计软件)

晨光熹微

在AI时代挖掘真实需求:从CSV转HTML工具看用户痛点与创新方向

qife122

数据分析 需求挖掘

以标准为舟,驶向能源管理新未来 —— 解读 ISO 50003

开源能源管理系统

开源 能源管理系统

猫头虎 推荐:国产开源AI工具 爱派(AiPy)|支持本地部署、自动化操作本地文件的AI办公神器

猫头虎

人工智能 大模型 AI编程 AI 编程 猫头虎

为什么选择开源能源管理系统?

开源能源管理系统

开源 能源管理系统

CTF竞赛教会我的那些大学没教的事:从理论到实战的蜕变

qife122

CTF竞赛 实战技能

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