Dojo Toolkit
Dojo ToolkitはオープンソースのJavaScriptライブラリの1つで、クロスブラウザに対応したJavaScript/Ajaxアプリケーションを迅速に開発するために設計されている。2004年にAlex Russell, Dylan Schiemann, David Schontzlerらによって作成されたものが元となっており、現在はBSDライセンスとAcademic Free Licenseのデュアルライセンスで配布されている。 Dojo Toolkitを提供しているDojo Foundationは、Dojo Toolkitの企業採用を促進するために設立された非営利組織である。
開発元 | Dojo Foundation |
---|---|
最新版 |
1.15.0
/ 2019年2月16日 |
リポジトリ | |
プログラミング 言語 | JavaScript |
対応OS | クロスプラットフォーム |
種別 | JavaScriptライブラリ |
ライセンス | デュアルライセンス (BSD License, Academic Free License) |
公式サイト | http://dojotoolkit.org |
機能
編集豊富な標準機能とUIパーツ(Dojoウィジェット)
編集Dojoを利用することで、ブラウザのJavaScript実装の違いを吸収する他、Ajaxアプリケーションの作成やJavaScriptのコーディングを手助けする様々な標準APIが利用可能となる。例えば、Ajaxアプリケーションではページ遷移による画面状態を失わなせないため、ブラウザの履歴に状態を保持する必要があるが、この機能はDojoではdojo.backという名称で提供されている。
また、Dojoは標準で様々なUIパーツを提供しており、ほとんどのUIパーツはプラグインなどを導入せずとも利用可能である。これらはDojoウィジェット、もしくは単にウィジェットと呼ばれる。Dojoウィジェットは、JavaScript、HTMLマークアップ、およびCSSを包括したコンポーネントであり、例えば以下のようなものがある。
- メニュー、タブ、ツールチップ、ダイアログ
- 並べ替え可能なテーブル
- 動的なグラフ
- アニメーション効果(フェードイン、フェードアウト、ワイプ、スライド)
- ドラッグアンドドロップ可能なツリー
- 多彩なフォーム部品と、フォームへの入力の妥当性検査
- カレンダーによる日付入力、時刻入力
提供されるAPI、ウィジェットの詳細については、Dojo API Reference[1]を参照のこと。また、DojoのデモがDojo公式サイトで公開されているので、合わせて参照されたい[2]。
テーマ
編集Dojoウィジェットの見た目は、テーマによって規定されており、デフォルトでは、以下の4種類のテーマを利用することが可能である。
- tundra
- soria
- nihilo
- claro (1.5から)
これらテーマは自作することも可能である。
アクセシビリティへの配慮
編集Dojoが提供するデフォルトのウィジェットはアクセシビリティに配慮されており、ほとんど全てのウィジェットがキーボードのみでも操作可能になっている。また、デフォルトのテーマは色覚異常の人にも見やすいカラーリングとなるように配慮されている。
国際化対応
編集Dojoでは、国際化対応を行うための機能、および機構が提供されている (dojo.i18n)。また、Dojoが提供するデフォルトのウィジェットは最初から国際化対応されているものがほとんどで、ブラウザーの言語設定によって、UIパーツが自動的にローカライズされた見た目に変化する。
非同期通信
編集Dojoは、様々なブラウザでのXMLHttpRequestの実装の差異を吸収した、ラッパークラスを提供する(dojo.xhr)。また、様々な他のトランスポート(iframeなど)やデータフォーマット(ファイルのアップロードなど)もサポートしている (dojo.io)。これらを利用することによって、ページリロードなしでの情報のやり取り、およびページの見た目を変更することが可能である。
パッケージシステム
編集Dojoは、モジュールの開発、利用を容易にするためのパッケージシステムを提供している。Dojoにおいて最も基本となるスクリプトであるdojo.jsを読み込むと、ルートとなる名前空間である"dojo"以下に、階層構造を持ったパッケージの名前空間がセットアップされる(io, eventなど)。この初期セットアップが完了すると、dojo.jsによって提供される関数(dojo.require)によってXMLHttpRequestが送信され、個々のDojoパッケージが読み込まれる。Dojoのパッケージからは、他のパッケージへの依存性を指定することも可能である。つまり、そのパッケージが読み込まれると、依存性が指定された他のパッケージも読み込まれる。
このパッケージの依存性解決には順序性を保障する必要があるため、同期的なHTTP通信が行われる。このため、パッケージを多く読み込むページでは、初期ロードに非常に時間がかかってしまい、またキャッシュが有効に機能しなくなってしまう(ほとんどのWebブラウザは、XMLHttpRequestを介して読み込まれたファイルをキャッシュしない)ため、Dojoでは以下で説明するカスタムビルドの機能を提供している。
カスタムビルド
編集Dojoでは、最小限のパッケージを含むカスタマイズされたビルドを生成する、カスタムビルドの機能を提供している。この仕組みは、Dojoが標準で豊富な機能を提供するため、ファイルサイズやファイル数が肥大化してしまっていることを解決するだけでなく、パッケージシステムによるdojo.requireの同期通信をなくし、さらにクロスドメインでのスクリプト読み込みへの解決策を提供する。
カスタムビルドでは、プロファイルと呼ばれるパッケージのリストをインプットとして受け取る。ビルドを行うと、依存性を持ったパッケージが全て含まれ、更にRhinoを利用して圧縮された、1つのJavaScriptファイルを生成する。一般的な利用向けに事前構築されたプロファイルは、Dojo Toolkit(完全版)と同じ場所からダウンロードすることができる。
Dojoのカスタムビルドについては、Dojo Campusの該当ページ[3]を参照のこと。
データストア
編集Dojoには、データストアと呼ばれる、データの読み書きを抽象化したオブジェクトを提供しており、その拡張として、サーバーサイドとのやり取りを容易にする、様々なクラスを提供している (dojo.data.*, dojox.data.*)。
- ItemFileReadStore: 検索機能を提供する、最も基本となる読み取り専用のデータストア。
- ItemFileWriteStore: データの追加や削除機能を持つ、読み書き可能なデータストア。
- CsvStore: カンマ区切りの表形式のデータを読み取る、読み取り専用のデータストア。
- OpmlStore: OPMLフォーマットの階層構造のデータを読み取る、読み取り専用のデータストア。
- YahooStore: Yahoo! Searchの検索結果を取得する、読み取り専用のデータストア。
- DeliciousStore: del.icio.usのブックマークを取得する、読み取り専用のデータストア。
- RdfStore: SPARQLを利用し、RDFデータサーバ(例: Rhizome RDF application server)とやり取りを行う、読み書き可能なデータストア。
この他、S3Store, RailsStore, WikipediaStore, Google*Store, CouchDBRestStoreなど、様々なWeb上のサービスと連携するためのデータストアが提供されている。詳細はDojo API Reference[1]を参照のこと。
Adobe AIRのサポート
編集JavaScriptベースのAdobe AIRアプリケーションにおいて、Dojoを利用することが可能である。DojoはAIRのセキュリティ要件を満たすように変更されている。
Dojoのコンサルティング会社であるSitepenは、Dojoを利用した"Dojo Toolbox"と呼ばれるAdobe AIRアプリケーションを作成している。これは、APIビューワやDojoのビルドシステムのGUIが含まれている。通常、ビルドシステムはRhinoを通して実行されるが、このAIRアプリケーションではJavaを利用することなく、AIRからビルドシステムを実行している[4]。
Dojoでの開発
編集Dojoでの開発は、任意の適切なエディタを使用して行うことができる。NetBeans, Eclipse, Aptana, ActiveState Comodo等の例がある。NetBeansとEclipseは、フリーソフトウェアであり、AptanaとComodoはコミュニティバージョンが存在する。Dojoのプラグインは様々なIDEで利用可能である。 Dojoを使用したWYSIWYGの開発では、オープンソースのWaveMakerを使用することができる。
Dojo Foundationとスポンサー
編集IBMとサン・マイクロシステムズは、Dojoのコードへの寄与を含めた、公式サポートをアナウンスしている[5][6]。
Zend社はDojoとのパートナーシップと、Zend Frameworkへ組み込むことをアナウンスしている[7]。
Dojo Foundationは501(c)(6)に属する非営利団体で、オープンソースプロジェクトを支援するために設立された。その主な目標は、企業による採用の支援と、コラボレーションのための、その他のプロジェクトの奨励である。
スポンサーとメンバーは以下の通り。
- IBM
- サン・マイクロシステムズ
- JotSpot
- SitePen
- Renkoo
- TurboAjax
- OpenLaszlo
- Nexaweb
- Bea Systems
Dojo Foundationは以下のプロジェクトを支援しており、これらはDojo Toolkitに組み込まれている。
脚注
編集- ^ a b Dojo API Reference
- ^ The Dojo Toolkit - Demos
- ^ Dojo Custom Build
- ^ Dojo Toolbox
- ^ “IBM Contributes Ajax Software Development Technology to Open Source Community”. IBM Press Release (2006年6月5日). 2007年2月3日閲覧。
- ^ “"Sun Joins the OpenAJAX Alliance and Dojo Foundation"”. Sun Microsystems Press Release (2006年6月16日). 2007年2月3日閲覧。
- ^ Dojo and Zend Framework Partnership Announcement
- ^ Lucid Desktop
参考文献
編集- Orchard, Leslie M. (November 24, 2008). Concise Guide to Dojo (1st ed.). Wrox Press. pp. 264. ISBN 978-0470452028
- Russell, Matthew A. (June 24, 2008). Dojo: The Definitive Guide (1st ed.). O'Reilly Media. pp. 500. ISBN 978-0596516482
- Riecke, Craig; Gill, Rawld; Russell, Alex (June 18, 2008). Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (1st ed.). Pragmatic Bookshelf. pp. 568. ISBN 978-1934356111
- Holzner, Steven (December 14, 2008). The Dojo Toolkit: Visual QuickStart Guide (1st ed.). Peachpit Press. pp. 208. ISBN 978-0321605122
- Zammetti, Frank (September 19, 2008). Practical Dojo Projects (1st ed.). Apress. pp. 500. ISBN 978-1430210665
- Hayes, Kyle (November 17, 2009). Getting StartED with Dojo JavaScript Toolkit (1st ed.). Friends of Ed. pp. 350. ISBN 978-1430225218
- Svensson, Peter (November 24, 2008). Learning Dojo (1st ed.). Packt Publishing. pp. 264. ISBN 978-1847192684
- Harmon, James E. (June 21, 2008). Dojo: Using the Dojo JavaScript Library to Build Ajax Applications (1st ed.). Addison-Wesley Professional. pp. 336. ISBN 978-0132358040
- Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (August 31, 2009). Professional JavaScript Frameworks: Prototype,YUI, ExtJS, Dojo and MooTools (1st ed.). Wrox Press. pp. 888. ISBN 978-0470384596
関連項目
編集外部リンク
編集- dojotoolkit.org, Dojo公式サイト、デモなど
- Dojo Foundation
- Infoworld review of Ajax toolkits, 31 July 2006
- Dojo Overview