都知道ajax的框架已經爲數衆多, 真正瞭解點的大框架也只有ms的asp.net ajax (atlas)以及Jquery吧,其他的都是拿來就用。最近有想做個小應用,所以想換一個其他新框架來用。dojo去年就有下過0.3.1版本,但當時用的不太舒服(可能是還不瞭解),就 放一邊。這幾天無意看到了dojo1.0這個月發佈了,於是帶着好奇去關注了下。真的很吃驚,這個框架發展真的太快了,變得出奇的強大,已經把許多框架遠遠拋在了後面,令人讚歎!!於是我就想深入下dojo。但究竟Dojo是怎麼一個東西,我翻譯了《the book of dojo》的introduce章節,也許可以回答一些這問題吧。另外,也希望大家可以關注mootool,我發現它也挺好,對我目前用不Dojo,所以我會選用它。但至於你選擇哪一種框架,也許下文會對你的選擇有所幫助,或許你也因此想有投身Dojo的衝動,至少我有點了。
最後,希望Dojo有更多的中文文檔。。。
詳細文檔:http://dojotoolkit.org/book/dojo-book-0-9-0
Dojo1.0下載地址:http://dojotoolkit.org/downloads
- Firebug Lite (Dojo Base): BSD License
- Common Locale Data Repository, CLDR (Dojo Base): Unicode License
- dojo.css (Dojo Base): BSD License
- AES Encryption Algorithm (DojoX SQL): BSD License
- MD5 and SHA1 Encruption Algorithms (DojoX Cryptography): BSD License
- Dojo Offline Editor Server Demo (DojoX Offline): Apache License
- CLDR (Dojo Utilities): Apache and Mozilla Public Licenses
- Packer (Dojo Utilities): MIT License
- DOH Sounds (Dojo Utilities): Copyright Original Authors
- ShrinkSafe, Rhino Interpreter (Dojo Utilities): Mozilla Public License 1.1
- 寬度和深度: Dojo是一個“full stack”(意指集成了全部所需功能的框架)。與將幾個來自不同源碼的組件揉合在一起不同,Dojo是在可信賴的一套高質量大廈的基礎上,用整合的公共基礎和多種可選的模塊去使用組件。這些組件提供了非常好的用戶體驗問題的解決方案,能夠很容易地被放入你的需要。從平板層到客戶圖表和圖象,從數據綁定到時間測試模塊系統,Dojo都是實現強大體驗的堅固基礎。
- 質量: 國際化和易用性基礎,貫穿在整個Dojo的結構中。按鍵事件能正確地響應。所有的組件拼裝成一個粘接力的整體。每一件事用CSS定製很輕鬆。可是,只要做很少的事,就可以在所有的地方都有非常好看的UI。
- 表現: Dojo每天都被用在高收益、高流量的網站上,使用Dojo的構建工具是主要原因。Dojo的包系統,讓管理大型UI項目開發、系統頂層建設更加的容易,使你的項目更出色。
- 社區: Dojo是個開放社區。因此,許許多多的個人和公司一起加入進來,開發了大家得益的工具。工具的許可授權也儘量做得非政治。如果你正在打算涉及這些,我們也努力使滿足你的渴望變得容易。所有的開發都是在開源環境中進行,參與近來的障礙也特意放得非常低。我們不在意你在哪工作或者你多有資格,我只關心你很想構件更好用戶體驗的產品。設計者、開發者或文檔編寫人員,Dojo社區尊重每一種貢獻,你在社區中的地位只等於你所做工作,而不是政治口角。我們正做工作改變關於那些人可以參與貢獻開源組織的概念,我們邀請你參與我們一起繪描繪新的路徑。如果你想要構建一個強大的產品以及覺得自己可以幫助我們,那麼希望你告訴我們。
- MochiKit:MochiKit是一個高質量的JavaScript工具包,它使得寫Javacript代碼更出神入化並且達到出色的表現效果。它和Dojo一樣,採用了許多舊的打包、命名、全局名字空間的慣例。主要由Bob Ippolito所寫。它有大量的文檔和測試。但是不像Dojo,它沒有一個小組件系統(widget system)和可擴展的組件套。一些代碼被Mochi和Dojo共享(當然,在CLA許可協議下)。Mochi沒有被一個基金會所援助,代碼門第也未得證明,但是它被很自由地許可。
- Prototype+Scriptaculous: 這二者是個普遍使用的庫,提供了許多和Dojo Core同樣的功能。但是,在關於全局命名空間、常使用方法簡命名偏好,及其它所關心的方面上,它們和Dojo保持了不同的原理。這兩個庫主要有良好的文檔和廣泛的社區支持,還可以與Ruby On Rails(以及其他框架中)緊湊的整合在一起。Scriptaculous提供了一些控件,比如自動完成輸入框(auto-complete)、滑動條(sliders)等,但都不是組件工具包,也沒有爲輕鬆構件組件提供支持。雖然許多第三方擴展(add-on)庫可以用在Prototype+Scriptaculous上,可是同樣沒有和庫一起發佈,也沒有具有特色的包和構建系統。Prototype和Scriptaculous Mochi沒有被一個基金會所援助,代碼門第也未得證明,但是它們非常自由的被使用。
- YUI: YUI是由Yahoo內部開發,以可擴展性、高質量的文檔和示例爲特色。目的是爲實現快速,鎖定專業PHP開發者設計。其實說實話,YUI主要是爲滿足Yahoo規模的應用程序的需要而設計的。工具包中的可用控件日漸變多,都使用了好用的標準化佈局樣式表CSS。YUI沒有使用包系統,但是分發了” 向上滾動(roll up)”常用功能文件,並用文檔清楚告訴用什麼順序裝載。不能用CSS查詢、標記驅動組件(markup-driven widget)。YUI有活躍的社區和大方的許可授權,但是外部的貢獻者並不被允許進入這個項目,Yohoo也沒有澄清代碼的血統和其他工具包的知識產權(IP)。YUI沒從源頭控制任何的數據訪問。在Yahoo CDN上使用的YUI都被邊緣緩存(edge-cached)。
- JQuery:一個最初關注於操縱現在DOM結構的小型系統。它以混合Xpath/CSS查詢語言(Dojo使用的是標準的CSS3.0查詢)爲特色,爲查詢結果提供了一套豐富的選擇和操作。Jquery將Ajax、效果和其他一些運用裝入一個核心(除了Mootools,勝過其他所有的)然而Jquery中沒有足見和包系統,可以使用在Jquery上建立的第三方組件庫。Jquery社區高度活躍,常常也很有幫助,外部的貢獻和補丁也被接受。Jqurey由MIT與GPL雙重許可,John Resig具有所有版權。但是並不清楚在什麼條款下,其他貢獻者如何把知識產權(IP)分給了John。有幾個框架(特別是Drupal)已將Jquery整合了進去。
- EXT:有點類似Dojo的Dijit系統,EXT是一個組件庫。它以數量龐大的一致且好看的小組件(widget)爲特色,這些組件實現了跨瀏覽器的純像素佈局和仿桌面UI。最初EXT是爲在YUI和後來的Jquery上運行而設計。如今,它有自己的低層庫,不需要依賴第三方。EXT社區非常活躍,具有良好的庫文檔。依據LGPL許可授權,有多種形式的商業許可證。但是,外部的貢獻者是否被認可(在哪些條款下),以及在某些方面,無名子版本的訪問受不受那些項目資金提供者的限制,都還不清楚。
- GWT:GWT注意到JavaScript應是個要被解決的bug,應運用高級編譯器技術讓開發者在Java中編寫,並生成以JavaScript爲基礎的動態Google風格的UI。因此,GWT直接整合了服務器端開發和客戶端開發。默認的小組件(widget)系列完全是Dijit所提供的子系列,但是要充分地運用所有的代碼生成卻相當辛苦。不斷增大的第三方擴展庫很寶貴,可爲默認組件做了不少提升。不像YUI和EXT,GWT是以一個開源項目進行的,允許來自外部的貢獻者(committer)。在開源環境下進行開發,然而這也使得在管理知識產權(IP)的問題上用了很複雜方式(CLA、代碼檢查,許多地方很像Apache和Dojo)。GWT應用程序只能用Java來寫,並且很多是要依賴於Java的容器。良好的文檔和不斷成長的社區提供了很有幫助。
- 接受外部貢獻者,並使用CLA許可協議(如同GWT和Apache)來保證沒有知識產權的爭論。
- 許可授權非常自由,爲每個人都提供了匿名SVN訪問。權利也得到了保證。
- 提供一個比較豐富的客戶端組件套,但不要求和任何服務器端語言(“是協議,而不是API”)緊密綁定。
- 儘量在網線中傳輸大小和常用功能之間提供一種平衡。Dojo的基礎庫(Dojo Base)大小和Prototype接近。
- 非常注意使你的頁面不會侵犯到其他代碼,並且都保留了它們的全局命名空間。
- AOLs CDN上的所有使用都會可以被邊際緩存(edge-cached)。
- 提供包系統,使你知道在假設的問題上以什順序進行加載的。