AEM テクノロジースタック
AEM がベースとして使用する Granite プラットフォームには、特に Java™ コンテンツリポジトリが含まれます。
Granite
Granite は、アドビのオープン web スタックで、次のような様々なコンポーネントを提供します。
- アプリケーションランチャー
- すべてがデプロイされる OSGi フレームワーク
- アプリケーションの構築をサポートする複数の OSGi 簡易サービス
- 様々なログ API を提供する包括的なログフレームワーク
- JCR API 仕様の CRX リポジトリ実装
- Apache Sling web フレームワーク
- 現在の CRX 製品の追加要素
Granite UI
Granite エンジニアリングプラットフォームには、基盤 UI フレームワークも用意されています。主な目的は次のとおりです。
- 詳細な UI ウィジェットの提供
- UI の概念を実装し、ベストプラクティス(長いリストのレンダリング、リストのフィルタリング、オブジェクト CRUD、CUD ウィザードなど)を説明します。
- 拡張可能なプラグインベースの管理 UI の提供
これらは次の要件に準拠しています。
- 「モバイル優先」を重視
- 拡張可能
- 上書きが簡単
GraniteUI.pdf
ファイルを取得
Granite UI は次のようになります。
- Sling の RESTful アーキテクチャを使用
- コンテンツ中心の web アプリケーションの構築を目的としたコンポーネントライブラリを実装
- 詳細な UI ウィジェットの提供
- デフォルトの標準化された UI を提供
- 拡張可能
- モバイルデバイスとデスクトップデバイスの両方に対応(モバイル優先)
- Granite ベースのすべてのプラットフォーム/製品/プロジェクト(AEM など)で使用
- Granite UI 基盤コンポーネント
この基盤コンポーネントライブラリは他のライブラリで使用または拡張できます。 - Granite UI 管理コンポーネント
クライアントサイドとサーバーサイド
Granite UI でのクライアントとサーバーの通信は、オブジェクトではなく、ハイパーテキストで行われるので、クライアントでビジネスロジックを認識する必要はありません。
- サーバーは HTML をセマンティックデータで強化
- クライアントはハイパーテキストをハイパーメディア(インタラクション)で強化
クライアント側
HTML ボキャブラリの拡張が使用され、作成者はインタラクティブな web アプリケーションを構築するという意向を表明できるようになります。これは、WAI-ARIA および microformats と同様のアプローチです。
主に、クライアントサイドで実行される JS および CSS コードによって解釈されるインタラクションパターンのコレクション(例えば、フォームの非同期送信)で構成されます。クライアントサイドの役割は、(サーバーによってハイパーメディアアフォーダンスとして指定された)マークアップを拡張してインタラクティブ機能を持たせることです。
クライアントサイドは、どのサーバーテクノロジーとも無関係です。サーバーが適切なマークアップを提供している限り、クライアントサイドはその役割を果たすことができます。
現在、JS および CSS コードは、Granite clientlibs として、次のカテゴリで提供されています。
granite.ui.foundation and granite.ui.foundation.admin
これらはコンテンツパッケージの一部として提供されています。
granite.ui.content
サーバーサイド
sling コンポーネントのコレクションによって形成され、作成者は Web アプリケーションを迅速に構成できるようになります 。 開発者はコンポーネントを開発し、作成者はコンポーネントを組み立てて web アプリを作成します。サーバーサイドの役割は、ハイパーメディアアフォーダンス(マークアップ)をクライアントに提供することです。
現在、コンポーネントは Granite リポジトリの次の場所にあります。
/libs/granite/ui/components/foundation
これはコンテンツパッケージの一部として提供されています。
granite.ui.content
クラシック UI との違い
Granite UI と ExtJS(クラシック UI に使用)の違いも重要です。
Granite UI 基盤コンポーネント
Granite UI 基盤コンポーネントは、UI の構築に必要な基本的な構築ブロックを提供します。次に例を示します。
- ボタン
- ハイパーリンク
- ユーザーアバター
基盤コンポーネントは次の場所にあります。
/libs/granite/ui/components/foundation
このライブラリには、各 Coral 要素の Granite UI コンポーネントが含まれます。コンポーネントはコンテンツ主導で、その設定はリポジトリに保持されます。これにより、HTML マークアップを手動で記述しなくても、Granite UI アプリケーションを構成できます。
目的:
- HTML 要素のコンポーネントモデル
- コンポーネントの構成
- 自動単体および機能テスト
実装:
- リポジトリベースの構成と設定
- Granite プラットフォームが提供するテスト機能の使用
- JSP テンプレート
この基盤コンポーネントライブラリは他のライブラリで使用または拡張できます。
ExtJS と対応する Granite UI コンポーネント
Granite UI を使用するように ExtJS コードをアップグレードする際は、次のリストでは、ExtJS xtype およびノードタイプと、それぞれに対応する Granite UI のリソースタイプを確認できます。
ExtJS xtype | Granite UI のリソースタイプ |
---|---|
button | granite/ui/components/foundation/form/button |
checkbox | granite/ui/components/foundation/form/checkbox |
componentstyles | cq/gui/components/authoring/dialog/componentstyles |
cqinclude | granite/ui/components/foundation/include |
datetime | granite/ui/components/foundation/form/datepicker |
dialogfieldset | granite/ui/components/foundation/form/fieldset |
hidden | granite/ui/components/foundation/form/hidden |
html5smartfile, html5smartimage | granite/ui/components/foundation/form/fileupload |
multifield | granite/ui/components/foundation/form/multifield |
numberfield | granite/ui/components/foundation/form/numberfield |
pathfield, paragraphreference | granite/ui/components/foundation/form/pathbrowser |
selection | granite/ui/components/foundation/form/select |
sizefield | cq/gui/components/authoring/dialog/sizefield |
tags | granite/ui/components/foundation/form/autocomplete``cq/gui/components/common/datasources/tags |
textarea | granite/ui/components/foundation/form/textarea |
textfield | granite/ui/components/foundation/form/textfield |
ノードタイプ | Granite UI のリソースタイプ |
---|---|
cq:WidgetCollection | granite/ui/components/foundation/container |
cq:TabPanel | granite/ui/components/foundation/container``granite/ui/components/foundation/layouts/tabs |
cq:panel | granite/ui/components/foundation/container |
Granite UI 管理コンポーネント
Granite UI 管理コンポーネントは、基盤コンポーネントをベースに構築され、あらゆる管理アプリケーションが実装できる汎用構築ブロックを提供します。次に例を示します。
- グローバルナビゲーションバー
- パネル(スケルトン)
- 検索パネル
目的:
- 管理アプリケーションの統一されたルックアンドフィール
- 管理アプリケーション向けの Rad
実装:
- 基盤コンポーネントを使用した事前定義済みのコンポーネント
- カスタマイズ可能なコンポーネント
Coral UI
CoralUI.pdf
ファイルを取得
Coral UI(CUI)は、アドビのタッチ操作対応 UI 用のビジュアルスタイルを実装したものです。複数の製品間で一貫性のあるユーザーエクスペリエンスを提供するように設計されています。Coral UI は、オーサリング環境で使用されるビジュアルスタイルを採用するのに必要なものをすべて備えています。
- AEM にバンドルされて出荷された場合。
- オーサリング環境の既存の UI を拡張する際に使用する場合。
- アドビの販促品、広告、プレゼンテーション
- アドビブランドアプリケーションの UI(フォントは他の用途にすぐに利用できないようにする必要があります)。
- わずかにカスタマイズされている場合。
- アドビに関係しないドキュメントやその他の項目。
- コンテンツ作成環境(前述の項目が他者によって生成される可能性がある場合)。
- アドビと明確なつながりのないアプリケーション/コンポーネント/web ページ
Coral UI は、web アプリケーションを開発するための構成要素のコレクションです。
最初からモジュール式に設計され、各モジュールは、主な役割に基づいて個別のレイヤーを形成します。レイヤーは相互にサポートするように設計されていますが、必要に応じて単独で使用することもできます。これにより、あらゆる HTML 対応環境で Coral のユーザーエクスペリエンスを実装できます。
Coral UI では、特定の開発モデルやプラットフォームを使用することは必須ではありません。Coral の主な目的は、統一されたクリーンな HTML5 マークアップを提供することにあり、このマークアップを実際に生成する方法は関係しません。これは、クライアントサイドまたはサーバサイドのレンダリング、テンプレート、JSP、PHP、さらには Adobe Flash RIA アプリケーションなどに使用される場合があります。