はじめに
Zenは、Caché Server Page(CSP)とCachéのオブジェクトデータベーステクノロジを基礎として開発された、Webアプリケーションフレームワークです。今回は、提供されて間もないZenの機能紹介と、サンプルプログラムをもとに、簡単なZenページを作成してみましょう。
なお、Zenでは、グラフやメータといった、Scalable Vector Graphics(SVG)コンポーネントセットを使用して、Webアプリケーションに対話型グラフィックを追加できます。そのため、利用するブラウザもSVGをサポートしている必要があります。本稿では、Firefox 2.0を利用して解説を行いますが、Internet Explorerをお使いの際は、適宜Adobe SVG Viewerをインストールしてください。
対象読者
- アプリケーション・システム開発をしている人
- データベース関連の開発およびメンテナンスをしている人
- JavaやC#でプログラミングしている人
Zenの概要と利点
Zenは、コンポーネントをベースとするオブジェクト指向のWebアプリケーションフレームワークであり、Zenコンポーネントとデータベース間のデータ交換をすべて自動的に処理するなど、Cachéデータベースとの密接な統合ができるように設計されています。Zenには、標準的なコンポーネントタイプのほか、データ認識コンボボックス、テーブル、グリッドなど、豊富なコンポーネントライブラリが用意されているため、開発者はこれらのコンポーネントを組み合わせ、短期間で、対話性の高いユーザインタフェースを作り上げることができます。
典型的なZenアプリケーションの構成
Zenアプリケーションは、次表にある3つのクラスで構成されています。
クラス名 | 説明 | 派生元クラス |
アプリケーションクラス | Zenアプリケーションの基本的クラス。クラス内に埋め込まれたXMLブロックとして定義される。 | %ZEN.application |
ページクラス | アプリケーションを構成するページ。 | %ZEN.Componet.page |
コンポーネントクラス | ボタンやリストボックスなどの外観と使用感を提供し、対話機能を実現する。 | %ZEN.Component.component |
1つのZenアプリケーションは、複数のページクラスと、そのページに関連する複数のコンポーネントクラスからのオブジェクトツリー構造をもっています。それを簡単に図式化すると次図のようになります。
このオブジェクトツリーは、クライアントのブラウザでページを表示するために必要なスタイルシート(CSS)、イベント処理用のJavaScriptコード、およびHTMLをすべて生成します。クライアントのブラウザでは、JavaScriptオブジェクトのセットとして、同じオブジェクトツリーが自動的に作成されます。ユーザがページと対話を進めるに従って、クライアント側のオブジェクトツリーのさまざまなメソッドを呼び出すイベントを駆動します。
Zenコンポーネントの概念
コンポーネントクラスでは、ページのレイアウト、スタイル、動作を指定します。個々のコンポーネントには、アプリケーションのプログラミングで使用できる属性が多数用意されており、このような属性のなかには、レイアウト、スタイル、および一部の動作に影響するものがあります。次表は、そのコンポーネントで使われる用語をまとめたものです。
用語 | 要約 | 説明 |
ページ | ブラウザに表示される四角形 | 初期状態では空ページ。構築するに従い、コンポーネントで埋められていくため、どこのコンポーネントを表示するかの「レイアウト」が重要となる。 |
レイアウト | ページ上での各コンポーネント(およびコンポーネントグループ)の位置指定 | 「ページ」自体が1つのコンポーネントグループとなり、グループ定義に基づいて標準HTMLテーブル要素を生成する。レイアも使用可能。 |
スタイル | コンポーネントの外観 | 背景色、塗りつぶしのパターン、線幅などのスタイル属性を「コンポーネント」に設定する。設定された内容に基づいて標準CSSを生成する。 |
動作 | ユーザ入力などのイベントの結果生じる内部または外部アプリケーションのアクション | マウスクリックやデータベースのクエリに基づくテーブルの自動生成など。 |
コンポーネントの「動作」は、コンポーネントごとに異なり、非常に豊富な機能を有しています。本記事ではそのすべてを説明することはできませんので、Cachéドキュメントの「Caché開発ガイド―Zenの使用」を参照してください。