写点什么

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

评论

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

macOS Sequoia 15(Macos15系统)v15.0 Beta 3测试版本

Rose

如何激活Parallels Desktop 18虚拟机?PD18破解激活教程

理理

火山引擎数据飞轮升级实验平台架构,解决人效与成本问题

Geek_2d6073

深入了解 DN-404:引领 NFT 市场的创新标准

NFT Research

NFT\ web3、 ERC404

顶级免费缺陷管理工具评测:你的最佳选择

爱吃小舅的鱼

缺陷管理 缺陷跟踪 缺陷管理软件推荐

解决 SecureCRT中文乱码方法(附SecureCRT mac永久注册码)

Rose

Macs Fan Control Pro风扇预设介绍 Macs Fan Control Pro mac风扇转速和温度

Rose

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)安装简单 兼容m芯片

理理

DriveDx for mac(mac磁盘健康检测和监控工具)v1.12.1激活版

理理

VSD Viewer破解版(Visio绘图文件阅读器) v6.16.1激活版

理理

跨平台的SSH、Telnet和SFTP客户端 Termius for Mac v8.4.0激活版

Rose

Microsoft Remote Desktop如何远程Windows电脑?

理理

华为大咖说 | 数字时代的财富秘诀:数据资产化全攻略

华为云PaaS服务小智

华为云 资产管理

参加DevSecOps认证培训 ,掌握安全高效的软件开发

雅菲奥朗

运维 SRE DevSecOps

AIOps:解决企业IT挑战的智能利器

雅菲奥朗

运维 可观测性 AIOPS SRE

【永久密钥】VMware Fusion Pro 13 for Mac(VM虚拟机)v13.5.0激活版

Rose

Cornerstone意外退出的解决方法 Cornerstone 4.2永久激活版 Mac SVN工具

Rose

使用css制作心形图案并且添加动画心动效果

源字节1号

开源

NTFS磁盘格式读写工具 Tuxera 2022 mac注册版 及破解教程

Rose

腾讯云大数据连续三年蝉联中国大数据市场领导者象限

腾讯云大数据

腾讯云 大数据

Parallels Desktop 19 for Mac(PD19虚拟机)无需关闭sipv19.1.0一键激活版

Rose

新手必看!sublime text 快捷键大集合

Rose

photoshop2020电脑配置要求 ps 2020中文直装版下载【Mac/win】

理理

数据驱动运维:如何通过可观测性实现AIOps的突破

雅菲奥朗

运维 可观测性 AIOPS Observability 人工智能运维

KES数据库实践指南:探索KES数据库的事务隔离级别

EquatorCoco

数据库 oracle

set a light 3d studio 2.5汉化版 Mac 3D模拟布光软件

理理

Axure RP教程(Axure RP中文授权码),如何查看和共享您的原型?

Rose

云原生向量数据库内核揭秘亮了,PostgreSQL 中国技术大会AIGC场景引关注

AI数据云Relyt

AIGC 向量数据库 GenAI AIGC案例 AI数据云

Beyond Compare 4 文件同步对比工具|适用于PC端和macOS电脑

理理

(2024最新)Pycharm破解激活2099年激活码教程(含win+mac)

理理

理解 gRPC 与 REST:选择适合您项目的最佳 API 方案

Liam

程序员 gRPC 后端 Rest API

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