この文章は Salesforce 機械翻���システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Visualforce とは?

Visualforce は、Force.com プラットフォームでネイティブにホストできる高度なカスタムユーザインターフェースを、開発者が作成できるようにするフレームワークです。Visualforce フレームワークには、HTML に似たタグベースのマークアップ言語、およびクエリや保存など、基本的なデータベース操作を非常に簡単に実行できるサーバ側の「標準コントローラ」のセットが含まれています。

Visualforce マークアップ言語では、各 Visualforce タグが、ページのセクション、関連リスト、または項目など、大まかなユーザインターフェースコンポーネントまたはきめの細かいユーザインターフェースコンポーネントに対応しています。Visualforce コンポーネントの動作は、標準の Salesforce ページと同じロジックを使用して制御することも、開発者が独自のロジックを Apex で記述されたコントローラクラスと関連付けることもできます。

Visualforce コンポーネントと、それに対応するタグのサンプル apex:page、apex:commandLink、apex:image、apex:relatedList、apex:pageBlock、apex:dataTable、および apex:detail タグへのコールアウトを含む Apex ページ

Visualforce ページとは?

開発者は Visualforce を使用して Visualforce ページ定義を作成できます。ページ定義は次の 2 つの主要な要素で構成されます。
  • Visualforce マークアップ
  • Visualforce コントローラ

Visualforce マークアップ

Visualforce マークアップは、Visualforce タグ、HTML、Javascript、または 1 つの <apex:page> タグ内に埋め込まれているその他の Web 対応コードで構成されています。マークアップでは、ページに含める必要のあるユーザインターフェースコンポーネントとその表示方法を定義します。

Visualforce コントローラ

Visualforce コントローラは、関連付けられた Visualforce マークアップで指定されたコンポーネントをユーザが操作 (ボタンやリンクのクリックなど) したときの動作を指定する命令のセットです。コントローラを使用すると、ページに表示されるデータにアクセスでき、また、コンポーネントの動作を変更できます。

開発者は Force.com プラットフォームが提供する標準コントローラを使用するか、または Apex で記述されたクラスを含むカスタムコントローラロジックを追加できます。
  • 標準コントローラは、標準の Salesforce ページで使用されているものと同じ機能およびロジックで構成されます。たとえば、標準取引先コントローラを使用する場合、Visualforce ページで [保存] ボタンをクリックした場合、標準の取引先編集ページで [保存] をクリックした場合と同じ動作が行われます。

    ページで標準コントローラを使用した場合に、ユーザにそのオブジェクトへのアクセス権がないと、ページには権限がないというエラーメッセージが表示されます。オブジェクトへのユーザのアクセシビリティを確認し、コンポーネントを適切に表示することでこれを回避できます。

  • 標準リストコントローラでは、一連のレコードを表示または操作できる Visualforce ページを作成できます。レコードセットを使用する既存の Salesforce ページの例として、リストページ、関連リスト、一括アクションページなどがあります。
  • カスタムコントローラは Apex で記述されるクラスで、標準コントローラを使用せずにすべてのページのロジックを実装します。カスタムコントローラを使用する場合、新しいナビゲーション要素または動作を定義できますが、標準コントローラにすでに定義された機能も再実装する必要があります。

    その他の Apex クラスと同様に、カスタムコントローラ全体はシステムモードで実行されます。このモードでは現在のユーザのオブジェクトと項目レベルの権限は無視されます。カスタムコントローラ内で、ユーザプロファイルを用いてアクセスするか否かを独自に決定することができます。

  • コントローラ拡張は、Apex で記述されるクラスで、標準コントローラまたはカスタムコントローラの動作を追加するか、動作を上書きします。拡張を使用すれば、独自のカスタムロジックを追加する一方で、別のコントローラの機能も使用できます。

    標準コントローラはユーザモードで実行し、現在のユーザの権限、項目レベルのセキュリティ、共有ルールが強制されるため、標準コントローラを拡張すると、ユーザ権限を重視する Visualforce ページを構築できます。拡張クラスはシステムモードで実行しますが、標準コントローラはユーザモードで実行します。カスタムコントローラと同様、ユーザプロファイルを参照してプログラムでアクセスさせるか否かを指定できます。

カスタムコントローラとコントローラ拡張クラスはシステムモードで実行されるため、ユーザ権限や項目レベルのセキュリティを無視しますが、クラス定義に with sharing キーワードを使用することによって、ユーザの組織の共有設定、ロール階層、および共有ルールを使用するかどうかを選択できます。詳細は、『Apex コード開発者ガイド』の「with sharing または without sharing キーワードの使用」を参照してください。

メモ

Visualforce ページを使用できる場所

開発者は Visualforce ページを使用して次のことを実行できます。
  • 取引先の [新規] ボタンまたは取引先責任者の [編集] ボタンなどの、標準ボタンを上書きする
  • [取引先] タブホームページなどのタブ概要ページを上書きする
  • カスタムタブを定義する
  • 詳細ページレイアウトにコンポーネントを埋め込む
  • ダッシュボードコンポーネントまたはカスタムヘルプページを作成する
  • Salesforce コンソールのサイドバー (カスタムコンソールコンポーネント) をカスタマイズ、拡張、統合する
  • Salesforce1 でメニュー項目、アクション、およびモバイルカードを追加する