《the book of dojo》介紹翻譯

   都知道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

CONTENTS
目錄
介紹
 
Dojo做得非常多,努力地使它在3個主要的層面上容易使用:Dojo CoreDijit、和DojoX。這本書作爲這三個層面的指導,介紹一些你需要的概念。使你在建立自己的組件、客戶命名空間、單元測試這些高層次運用時,從手足難堪中解脫出來。
正如你所見,Dijit和DojoXJ建立在爲所有Dojo應用程序提供支持Dojo Core的固定基礎上。由於Core和Dijit被放入可靠的API及強大品質保證(QA)、國際化(i18n),容易處理許多網頁邊緣化特徵的能力,也是因此Dojo而爲人們所知。它們也在更鬆散的、更有組織的DojoX項目中得到發展。我們在整本書中都會向你展示各個部分是如何建立在彼此之上,以及如何運用每一個提供的基礎,優雅地去解決直到現在用基於瀏覽器UI也難以對付的用戶體驗問題。
感謝你能看Dojo和《the Dojo Book》一書。如果在這本書中你沒有弄明白,就在該書的網頁中評論,留下你的問題。我們會努力地去改善。正是由於你的運用,激勵了我們建立了Dojo。正是大家不斷提升toolkit的用戶體驗的許多事,使我們一直堅持。正是在你們的幫助下,我們寫下了這本書。
許可授權
 
你可以在商業軟件中使用Dojo。這不需要去單獨獲取許可證或承擔其他的責任。
 
Dojo Toolkit是雙重許可。優先許可協議是Academic Free License v2.1http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43)。它是非常開放的,允許被做商業用途,也爲次級許可授權提供支持。Dojo基金會的所有項目的代碼都在這個許可條款下發行。因爲AFL極其自由,因而幾乎沒有必要都使用雙重許可授權條款的兩個部分。
由於用戶要面臨一些FSF所造成的問題。這些問題有關於AFL(L)GPL的兼容性,模糊不清且由人爲。因此,Toolkit也許會交替使用BSD許可證。但是,AFLBSD許可證都符合Dojo基金許可授權目標。
Dojo的雙重許可授權和許多開源項目的不同。兩個條款都是開放源碼和非常自由,沒有特權和麻煩的商業用途條款。在任何時候,你都不需要選擇AFL外其他東西。一般情況下,你也不需要另外做什麼來表明你選擇了一個許可證。如果你還有什麼有關Dojo許可授權的問題,請不要猶豫,立即同目前Dojo基金會的主席Alex Russell聯繫吧。
 
Dojo基金會的角色
 
Dojo是一個開元源軟件,由非贏利性基金會發布。這個基金會是作爲中立的知識產權所有者而設立。爲了向基金會的項目用戶明確,關於基金會的代碼不存在任何模棱兩可或者隱藏的責任,所有的貢獻者都被要求在貢獻者許可同意書上的簽名。
基金會的事務都要由Dojo基金會的所有委員投票決定。基金會由貢獻者以透明的方式運作,並且只是依靠捐贈籌集資金。
基金會的許可授權目標概括在Foundation page.http://dojotoolkit.org/foundation )。
 
第三方許可證
 
Dojo使用了其他開源項目的代碼,因此也要服從他們的許可條款。這些許可證和軟件版權公告列表如下:
 
歷史
早在2004年之前,Alex Russell(netWindows的創始人)就開始有意聘用DHTML項目Informatica的合作者。在這個過程中,許多DHTML社區的成員之間不斷接觸,以一封2004425日標題爲“出售DHTML的未來”的郵件達到了頂點。David Schontzler (Stilleye)Informatica上花費了一個暑期的工作。Dylan Schiemann也在那時加入。就這樣,在Informatica項目的幫助下,AlexDylan寫下了Dojo的第一行代碼。還有其他許多社區成員也活躍參與Dojo方面的設計。他們是Joyce ParkTom TrenkaMark AndersonLeonard Lin (是他建議取名Dojo)Aaron Boodman, Simon WillisonCal Henderson以及Dan Pupius
在許可授權、選擇名字、代碼規範、開發工具、服務器配置及需求上,我們和ng-dhtml(現在Dojo的開發者)用一系列郵件討論了幾個月。這之後,便開始了工作,併成立了Dojo基金會。這個基金會是一個501(c)6(美國的一個聯邦法案條款)實體,這個條款用來管理代碼權和知識產權(IP),今天也管着一些其他項目。在20053月,來自的社區的貢獻開始重於核心開發團隊。今天,Dojo 0.4.x5個主要發佈版本已經有了超過300,000次的下載,有超過60個開發者的貢獻和代碼。以及有一些像IBMAOLSunSitePenBloglines等等這些大用戶,也不斷地使Dojo質量得到提高、社區變得活躍。
 
爲什麼要選擇Dojo?
今天已經有幾個高質量的JavaScript工具包,以及其他幾百種質量與完整性不斷改變的工具包。但爲什麼在如此多的選擇中,你就要選擇Dojo呢?
  • 寬度和深度: Dojo是一個“full stack”(意指集成了全部所需功能的框架)。與將幾個來自不同源碼的組件揉合在一起不同,Dojo是在可信賴的一套高質量大廈的基礎上,用整合的公共基礎和多種可選的模塊去使用組件。這些組件提供了非常好的用戶體驗問題的解決方案,能夠很容易地被放入你的需要。從平板層到客戶圖表和圖象,從數據綁定到時間測試模塊系統,Dojo都是實現強大體驗的堅固基礎。
  • 質量: 國際化和易用性基礎,貫穿在整個Dojo的結構中。按鍵事件能正確地響應。所有的組件拼裝成一個粘接力的整體。每一件事用CSS定製很輕鬆。可是,只要做很少的事,就可以在所有的地方都有非常好看的UI。
  • 表現: Dojo每天都被用在高收益、高流量的網站上,使用Dojo的構建工具是主要原因。Dojo的包系統,讓管理大型UI項目開發、系統頂層建設更加的容易,使你的項目更出色。
  • 社區: Dojo是個開放社區。因此,許許多多的個人和公司一起加入進來,開發了大家得益的工具。工具的許可授權也儘量做得非政治。如果你正在打算涉及這些,我們也努力使滿足你的渴望變得容易。所有的開發都是在開源環境中進行,參與近來的障礙也特意放得非常低。我們不在意你在哪工作或者你多有資格,我只關心你很想構件更好用戶體驗的產品。設計者、開發者或文檔編寫人員,Dojo社區尊重每一種貢獻,你在社區中的地位只等於你所做工作,而不是政治口角。我們正做工作改變關於那些人可以參與貢獻開源組織的概念,我們邀請你參與我們一起繪描繪新的路徑。如果你想要構建一個強大的產品以及覺得自己可以幫助我們,那麼希望你告訴我們。
Dojo與其他的工具包的比較
 
幾個其他的工具包常常被用來和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規模的應用程序的需要而設計的。工具包中的可用控件日漸變多,都使用了好用的標準化佈局樣式表CSSYUI沒有使用包系統,但是分發了向上滾動(roll up常用功能文件,並用文檔清楚告訴用什麼順序裝載。不能用CSS查詢、標記驅動組件(markup-driven widget)。YUI有活躍的社區和大方的許可授權,但是外部的貢獻者並不被允許進入這個項目,Yohoo也沒有澄清代碼的血統和其他工具包的知識產權(IP)YUI沒從源頭控制任何的數據訪問。在Yahoo CDN上使用的YUI都被邊緣緩存(edge-cached)。
  • JQuery:一個最初關注於操縱現在DOM結構的小型系統。它以混合Xpath/CSS查詢語言(Dojo使用的是標準的CSS3.0查詢)爲特色,爲查詢結果提供了一套豐富的選擇和操作。JqueryAjax、效果和其他一些運用裝入一個核心(除了Mootools,勝過其他所有的)然而Jquery中沒有足見和包系統,可以使用在Jquery上建立的第三方組件庫。Jquery社區高度活躍,常常也很有幫助,外部的貢獻和補丁也被接受。JqureyMITGPL雙重許可,John Resig具有所有版權。但是並不清楚在什麼條款下,其他貢獻者如何把知識產權(IP)分給了John。有幾個框架(特別是Drupal)已將Jquery整合了進去。
  • EXT:有點類似DojoDijit系統,EXT是一個組件庫。它以數量龐大的一致且好看的小組件(widget)爲特色,這些組件實現了跨瀏覽器的純像素佈局和仿桌面UI。最初EXT是爲在YUI和後來的Jquery上運行而設計。如今,它有自己的低層庫,不需要依賴第三方。EXT社區非常活躍,具有良好的庫文檔。依據LGPL許可授權,有多種形式的商業許可證。但是,外部的貢獻者是否被認可(在哪些條款下),以及在某些方面,無名子版本的訪問受不受那些項目資金提供者的限制,都還不清楚。
  • GWT:GWT注意到JavaScript應是個要被解決的bug,應運用高級編譯器技術讓開發者在Java中編寫,並生成以JavaScript爲基礎的動態Google風格的UI。因此,GWT直接整合了服務器端開發和客戶端開發。默認的小組件(widget)系列完全是Dijit所提供的子系列,但是要充分地運用所有的代碼生成卻相當辛苦。不斷增大的第三方擴展庫很寶貴,可爲默認組件做了不少提升。不像YUIEXTGWT是以一個開源項目進行的,允許來自外部的貢獻者(committer)。在開源環境下進行開發,然而這也使得在管理知識產權(IP)的問題上用了很複雜方式(CLA、代碼檢查,許多地方很像ApacheDojo)。GWT應用程序只能用Java來寫,並且很多是要依賴於Java的容器。良好的文檔和不斷成長的社區提供了很有幫助。
爲了比較, Dojo:
  • 接受外部貢獻者,並使用CLA許可協議(如同GWT和Apache)來保證沒有知識產權的爭論。
  • 許可授權非常自由,爲每個人都提供了匿名SVN訪問。權利也得到了保證。
  • 提供一個比較豐富的客戶端組件套,但不要求和任何服務器端語言(“是協議,而不是API”)緊密綁定。
  • 儘量在網線中傳輸大小和常用功能之間提供一種平衡。Dojo的基礎庫(Dojo Base)大小和Prototype接近。
  • 非常注意使你的頁面不會侵犯到其他代碼,並且都保留了它們的全局命名空間。
  • AOLs CDN上的所有使用都會可以被邊際緩存(edge-cached)。
  • 提供包系統,使你知道在假設的問題上以什順序進行加載的。
允許通過標記進一步增進。提供了易用的小組件(widget)系統構建你自己的可重用組件(component),這些都能非常容易通過標記實例化。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章