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と呼ばれる、リッチなユーザーインターフェースを定義するためのマークアップ言語をサポートしています。
特徴 ZK6環境下におけるiDempiereのWebUIインターフェース シンプルにJavaで。ZKは「JavaScriptを使わないAjax」というアプローチで知られており、開発者はAjaxやJavaScriptの知識がなくても、リッチなWebアプリケーションを透過的に構築できます。 Bootstrap対応のレスポンシブデザインテーマ HTML5とCSS3をサポート 100種類以上のAjaxコンポーネントは、UIデザイナーに多様な機能豊富なコンポーネントを提供し、エンタープライズ向けAjaxアプリケーションのニーズを満たします。 ZUMLは、リッチなユーザーインターフェースの設計をHTMLページの作成に似たものにします。ZUMLはXULの派生版であり、XMLで利用可能なすべての機能を継承し、UI定義と実行時ロジックを分離します。 複数のイベント駆動型GUI設計パターンをサポートするイベント駆動型コンポーネントベースモデル(デスクトッププログラミングモデルに類似)。[ 7 ] Model-View-Controller (MVC) [ 8 ] 、 Model-View-Presenter [ 9 ] 、およびModel-View-ViewModel (MVVM) [ 10 ] のデザインパターンをサポートしています。ZUMLページ内の注釈によるデータバインディング機能により、UIビューとデータおよびPOJO間のCRUD操作と状態同期が自動化されます。 スプレッドシート、ピボットテーブル、カレンダーなどのアプリケーションコンポーネント。 Java (Beanshell [ 11 ] ) によるスクリプトサポートの組み込み。これは、ユーザーインターフェイスとバックエンドプログラミングの両方に統一されたプログラミング言語を使用できるという重要な利点です。JavaScript (Rhino [ 12 ] )、Ruby (JRuby [ 13 ] )、Python (Jython [ 14 ] )、Groovy [ 15 ]などの他の言語によるサーバーサイド Java スクリプトのオプションサポート。 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コンポーネントをサーバーサイドデータに宣言的にバインドするためのサーバーサイドデータバインディング注釈を提供します。 見た目と感触の 違い。
プログラミングスキルの前提条件
オプション サーバー上で実行される連携ロジックを記述するためのスクリプト言語の知識: オブジェクト指向プログラミング サーブレットプログラミング アヤックス JavaScript (クライアントサイド)宣言型データバインディング JSTLスタイルの式言語
ZUML ZUML (ZK User Interface Markup Language)は、リッチなユーザーインターフェースを定義するためのマークアップ言語です。
クライアントサイド技術 ZKはサーバー中心のフレームワークです。クライアント側では、実装に関する技術的な知識は必要ありません。そのため、ZK MobileはJava Mobile VM上で動作します。
ZK 5.0以降、いわゆるサーバー+クライアント融合 [ 16 ] アーキテクチャが導入されました。開発者は必要に応じてクライアント側のウィジェットに直接アクセスできます。ZKクライアントエンジンはjQuery に基づいています。[ 17 ] 技術的には、jQuery準拠のライブラリとウィジェットを使用できます。
参考文献 ↑ 「ZK 10.1.0 リリースノート 」 ↑ ZK 3 およびそれ以前のバージョンはGPL ライセンス の下で提供されています。 ↑ Chen, Henri (2008). ZK - JavaScript なしの Ajax . Apress. p. 125. ISBN 978-1-59059-901-3 。↑ Staeuble, Markus (2008). ZK Developer's Guide . 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-01-27 . 2014-03-02 に取得 . ↑ "ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation" . Books.zkoss.org . 2014-03-02 に取得. ↑ "ZK - Small Talks/2011/November/MVVM in ZK 6 - Design your first MVVM page - Documentation" . Books.zkoss.org . 2014-03-02 に取得. ↑ 「Java 用の軽量スクリプト」 . BeanShell . 2014-03-02 取得 。 ↑ "Rhino | MDN" . Mozilla.org. 2012-08-09 . 2014-03-02 に閲覧 . ↑ "ホーム — JRuby.org" . Jruby.codehaus.org. 2014-02-25. 2009年8月30日の オリジナルからアーカイブ済み 。2014-03-02に 取得 。 ↑ 「Jython : ホームページ」 。Jython.org。 2009年5月16日の オリジナルからアーカイブ済み 。 2014年3月2日 に取得。 ↑ "Groovy - ホーム" . Groovy.codehaus.org. 2014-02-18. 2014年3月2日の オリジナルからアーカイブ済み 。2014-03-02に 取得 。 ↑ Clare, Timothy (2010-02-09). "Server+client Fusion: An Architectural Proposal" . Dr. Dobb's. 優れたフレームワークアーキテクチャは柔軟性があり、開発者やアーキテクトがスマートかつ洗練された方法でアプリケーションを実装できるようにします。 ↑ Mahajan, Sachin (2010-10-19). "jQuery、ZK、Java コードの融合で Ajax 開発を強化する" . IBM developerWorks. 2017-07-16 の オリジナルからアーカイブ済み。 サーバーサイド Java コードと jQuery の組み合わせは、エンタープライズ Ajax アプリケーション開発の課題に取り組むのに役立ちます。