| 開発者 | 出典: |
|---|---|
| 安定版リリース | 9.6.0 / 2021年8月10日[1] |
| リポジトリ |
|
| オペレーティング·システム | クロスプラットフォーム( JVM ) |
| タイプ | Ajax ウェブフレームワーク |
| ライセンス | LGPL / ZOL / 商用[2] |
| Webサイト | 出典: |
ZKはJavaで書かれたオープンソースの Ajax Webアプリケーションフレームワークであり、[3] [4] [5]、プログラミングの知識をほとんど必要とせずに Webアプリケーション用のグラフィカルユーザーインターフェイスを作成できます。
ZKのコアは、Ajaxベースのイベント駆動型メカニズム、123を超えるXULと83を超えるXHTMLベースのコンポーネント、[6]、およびユーザーインターフェイスを設計するためのマークアップ言語で構成されています。プログラマーは、機能豊富な XUL / XHTMLコンポーネントでアプリケーションページを設計し、エンドユーザーのアクティビティによってトリガーされるイベントに基づいてそれらを操作します。これは、デスクトップGUIベースのアプリケーションに見られるプログラミングモデルに似ています。
ZK は、コンポーネントのコンテンツ同期とクライアントとサーバー間のイベント パイプラインがエンジンによって自動的に実行されるサーバー中心のアプローチを採用しており、Ajax 配管コードは Web アプリケーション開発者にとって完全に透過的です。そのため、エンド ユーザーはデスクトップ アプリケーションと同様のインタラクティブ性と応答性を実現でき、プログラマーの開発はデスクトップ アプリケーションと同様のシンプルさを維持できます。
ZK は標準的な Web要求応答メカニズムを使用せず、クエリ パラメータ付きのGET要求またはPOST要求を行ってフォーム フィールドをサーバーに送信しません。代わりに、AJAX 要求がサーバーに送信され、各画面ウィジェットの内部状態が更新されます。ブラウザーでは、ZK はWeb ページのJSON記述のみをダウンロードし、クライアント レンダラーを使用してそれを UI に変換します。これは非常に効率的で、詳しく調べると、すべてを一度にダウンロードするわけではありません。クライアントとサーバー間のトラフィックを見ると、ページのレンダリングが最終的に完了するまで、クライアントとブラウザーの間で複数の要求が行き来していることがわかります。
オプションのクライアント側のカスタマイズにより、開発者は、カスタマイズや Ajax トラフィックの削減のために、いわゆるサーバー + クライアント融合を使用してクライアント側のリソースを活用することができます。
ZK は、 Swingに似たコンポーネントベースのプログラミングに加えて、豊富なユーザー インターフェイス定義のための ZUML と呼ばれるマークアップ言語をサポートしています。
- ZUML は、プログラマー以外の開発者が直感的にユーザー インターフェイスを設計できるように設計されています。
- ZUML を使用すると、開発者はMozilla XUL 言語や XHTMLなどのさまざまなマークアップ言語を同じページにシームレスに統合できます。
- ZUML を使用すると、開発者は純粋な Java 言語 ( BeanShellによって解釈される) でスクリプトを埋め込み、EL式を使用してコンポーネントを操作し、データにアクセスできます。
特徴
- シンプルな Java。ZK は「JavaScript を使用しない Ajax」アプローチで有名で、開発者は Ajax や JavaScript の知識がなくても、透過的にリッチな Web アプリケーションを構築できます。
- Bootstrapサポート付きのレスポンシブデザインテーマ
- HTML 5 および CSS 3 のサポート
- 100 を超える Ajax コンポーネントは、エンタープライズ Ajax アプリケーションの要求を満たす、さまざまな機能豊富なコンポーネントを UI デザイナーに提供します。
- ZUML を使用すると、HTML ページの作成と同様に、リッチなユーザー インターフェイスを設計できます。ZUML は、XML で使用できるすべての機能を継承した XUL のバリアントであり、UI 定義を実行時ロジックから分離します。
- 複数のイベント駆動型GUI設計パターンをサポートするイベント駆動型コンポーネントベースモデル(デスクトッププログラミングモデルに類似)。[7]
- モデル・ビュー・コントローラ(MVC) [8]、モデル・ビュー・プレゼンター[9]、モデル・ビュー・ビューモデル(MVVM)[10]デザインパターンのサポート
- UI ビューとデータおよび POJO 間の CRUD と状態同期を自動化する、ZUML ページ内注釈を介したデータバインディング機能。
- スプレッドシート、ピボット テーブル、カレンダーなどのアプリケーション コンポーネント。
- Java(Beanshell [11])によるスクリプトサポートの埋め込み。これは、ユーザーインターフェイスとバックエンドプログラミングの両方に統一されたプログラミング言語を使用できるという重要な利点です。JavaScript(Rhino [12])、Ruby(JRuby [13])、Python(Jython [14])、Groovyなどの他の言語によるサーバーサイドJavaスクリプトのオプションサポート。[15]
- JSP カスタム タグ ライブラリ、JSF サポート、ポートレット、サーブレット フィルターを介して既存の Web フレームワークとの統合をサポートします。Spring と Hibernate をサポートします。
- プログラマーが新しいカスタム UI コントロールを作成できるという点で拡張可能です。コントロールのグループは、マクロ コンポーネントとして再利用できます。
- ZK Chartsによる広範なチャート作成
XULとの違い
- ZK は HTML を出力するサーバー側フレームワークであり、クライアント側のGeckoの存在に依存せず、どのブラウザーにも移植可能です。ZK は ZUML (xul および xhtml) サーバー側ページを入力として受け取り、ブラウザー用の dhtml を出力します。
- ZK は、サーバー上でユーザー インターフェイス ロジックを Java で処理します。これにより、ロジックの作成に使用できるスクリプト エンジンとアプリケーション ライブラリの選択肢が増えます。クライアント側アクション機能を使用して、プレゼンテーション効果をブラウザーに委任し、DHTML 効果のサーバー負荷を軽減できます。単一のアプリケーション コンテナーでサーバー上のアプリケーション ロジックを実行すると、ブラウザーで DOM を大規模にプログラミングする場合と比較して、クロス ブラウザーおよびブラウザー バージョンのテストの量が減ります。
- ZK と XUL には重複するコンポーネントのサブセットがありますが、ZK には独自のコンポーネント セットがあります。コンポーネント ライブラリはカスタム コンポーネントで拡張できます。コンポーネントの複合であるマクロ コンポーネントを定義できます。
- ZK は、UI コンポーネントをサーバー側データに宣言的にバインドするためのサーバー側データバインディング アノテーションを提供します。
- 外観と操作感の違い。
システム要件
プログラミングスキルの前提条件
必須
- Java またはGroovy、Rhino (Java JavaScript)、JRuby (Java Ruby)、Jython (Java Python)などの Java スクリプト エンジン言語の基礎知識
- HTMLとXULの基礎知識
オプション
- 接着ロジック (サーバー上で実行) を記述するためのスクリプト言語の知識:
- オブジェクト指向プログラミング
- サーブレットプログラミング
- アヤックス
- JavaScript (クライアント側)
- 宣言型データバインディング
- JSTLスタイルの表現言語
ズムル
ZUML (ZK ユーザー インターフェイス マークアップ言語) は、豊富なユーザー インターフェイスを定義するためのマークアップ言語です。
- ZUMLは、非プログラマーがZUMLマークアップを使用してユーザーインターフェイスを効率的に設計できるように設計されています。
- ZUML を使用すると、開発者はMozilla XUL 言語や XHTMLなどのさまざまなマークアップ言語を同じページにシームレスに統合できます。
- ZUML を使用すると、開発者は純粋な Java 言語 ( BeanShellによって解釈される) にスクリプトを埋め込み、EL式を使用してコンポーネントを操作し、データにアクセスできます。
- ZUML はZKによってサポートされています。
- 公式ドキュメント: ZUML リファレンス
クライアント側テクノロジー
ZK はサーバー中心のフレームワークです。技術的には、クライアント側の実装について知る必要はありません。これは、Java Mobile VM 上で実行される ZK Mobile の仕組みです。
ZK 5.0以降、いわゆるサーバー+クライアントフュージョン[16]アーキテクチャが導入されました。開発者は必要に応じてクライアント側のウィジェットに直接アクセスできます。ZKクライアントエンジンはjQueryに基づいています。[17]技術的にはjQuery準拠のライブラリとウィジェットを使用できます。
アドオン
参照
参考文献
- ^ 「ZK 9.6.0 リリースノート」。
- ^ ZK 3 およびそれ以前のバージョンは GPLライセンスです。
- ^ チェン、ヘンリ (2008) 。ZK - JavaScript なしの Ajax。Apress。p . 125。ISBN 978-1-59059-901-3。
- ^ Staeuble, Markus (2008). ZK 開発者ガイド. Packt Publishing. p. 184. ISBN 978-1-84719-200-4。
- ^ Van der Schyff, Andre (2009-03-31). 「MVC フレームワークの概要」。ITWeb。2009-08-22 にオリジナルからアーカイブ。2009-04-14に取得。MVC
フレームワークは、ZK、Echo、その他の Java Web フレームワークと比較すると機能が制限されています。
- ^ 「ZK Explorer」Zkoss.org . 2010年8月25日閲覧。
- ^ Massey, Simon. 「ZK Java AJAX フレームワークを使用したイベント駆動型 GUI パターンの実装」www.ibm.com/ . IBM . 2014 年7 月 5 日閲覧。
- ^ 「ZK - ZK 開発者リファレンス/MVC - ドキュメント」。Books.zkoss.org。2014 年 1 月 27 日。2014年 3 月 2 日閲覧。
- ^ 「ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation」。 Books.zkoss.org 。 2014年3月2日閲覧。
- ^ 「ZK - Small Talks/2011/November/MVVM in ZK 6 - 最初の MVVM ページを設計する - ドキュメント」。 Books.zkoss.org 。2014 年 3 月 2 日閲覧。
- ^ 「Java 用軽量スクリプト」。BeanShell。2014年 3 月 2 日閲覧。
- ^ 「Rhino | MDN」。Mozilla.org。2012年8月9日。 2014年3月2日閲覧。
- ^ “Home — JRuby.org”. Jruby.codehaus.org. 2014-02-25. 2009年8月30日時点のオリジナルよりアーカイブ。 2014年3月2日閲覧。
- ^ 「Jython : ホームページ」 Jython.org。2009年5月16日時点のオリジナルよりアーカイブ。2014年3月2日閲覧。
- ^ “Groovy - Home”. Groovy.codehaus.org. 2014-02-18. 2014年3月2日時点のオリジナルよりアーカイブ。 2014年3月2日閲覧。
- ^ Clare, Timothy (2010-02-09). 「サーバー + クライアントの融合: アーキテクチャの提案」. Dr. Dobb's.
優れたフレームワーク アーキテクチャは柔軟性が高く、開発者やアーキテクトがアプリケーションをスマートかつエレガントな方法で実装できるようにします。
- ^ Mahajan, Sachin (2010-10-19)。「jQuery、ZK、Java コードの融合による Ajax 開発の強化」。IBM developerWorks。
サーバーサイド Java コードと jQuery を組み合わせることで、エンタープライズ Ajax アプリケーション開発の課題に取り組むことができます。
外部リンク
公式サイト
