私はOracleのADFにまったく慣れていませんが、ADFとSunのJSFのリファレンス実装の違いは何でしょうか。
4 に答える
いくつかのエンタープライズプロジェクトでADFFacesを使用しているので、承認された回答に少し同意しません。ADFFacesはJSF実装またはコンポーネントライブラリとして使用できます。JSF実装として使用する場合、ライフサイクルが長くなる(ADFFacesは元のJSFライフサイクルに2つのステップを追加する)、要求より長くセッションより短い変数を格納するための追加スコープ(つまり、「プロセススコープ」)など、JSF仕様とは異なります。 )。
JSF実装としてADFFacesを使用することになった場合は、Oracle JSF実装の方法で実行していることに注意する必要があります(そのため、多くの場合、実行しようとしていることに対する答えはOracleドキュメントでしか見つかりません。不足している)。
ADFは完全なフレームワークです。これは、ADFFacesとADFBusiness Componentsで構成されており、完全なフレームワークであり、モデルからコントローラーに表示されます。開発者は、JDeveloperとともにADFを使用することで、Javaコードに触れることなく(理論的には)アプリケーションを開発できます。私はまだJavaを使用していることに気づきますが、これはJava以外の開発者が参加する移行プロジェクトであるため、できるだけ少なく制限するようにしています。(そして、はい、彼らは最終的にJavaを学ぶ必要があります)。
これは、適切に実装されていないか、バニラJSFで完全に欠落しているものの一部です。
ツーリング
データベース、Webサービス、またはコンテンツサービスに至るまで、ビジネスレイヤーとの宣言型バインディング。
各ページを最初から開発するのではなく、ページ間でユーザーインターフェイスのフラグメントを簡単に共有できる再利用可能なタスクフロー。
国際化
Webcenter拡張機能を使用してカスタマイズ可能でパーソナライズ可能なページを配信する機能
OracleBusinessIntelligenceまたはその他のソースからの高度なデータ視覚化を埋め込む機能。
ADFは、上記のすべてとそれ以上のことを行います。
ADFライフサイクルは最適化されたライフサイクルです。
ADFコンポーネントは、境界内で更新を取得できます(値の変更イベントは、他のコンポーネントに影響を与えることなく、コンポーネントに対してのみ発生する可能性があります。テーブルを更新すると(スクロールダウンしてフェッチ(フェッチモードと言う)など)、検証エラーなしでデータを取得できます。ページ。
テーブル境界内のデータは更新されるだけです。
ADFにはクライアント側のライフサイクルがあります。検証エラーが発生した場合、adfは不要なラウンドトリップを回避します(JSFとの違いはわかりません)。