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
引用聲明:http://www.infoq.com/cn/news/2007/08/sproutcore
本博客為學習交流用,凡未注明引用的均為本人作品,轉載請注明出處,如有版權問題請及時通知。由于博客時間倉促,錯誤之處敬請諒解,有任何意見可給我留言,愿共同學習進步。