フレームワークの拡張ポイント
アプリケーション全体を通じて変更を伝達する必要がある場合は、その要素の拡張機能を作成して、プロパティまたはコンポーネントを変更する必要があります。
次に、一般的な要素タイプの概要と、要素の拡張を作成する理由を示します。
- ラベル - ラベル拡張ファイルを作成して、ラベルの値を変更したり、新しいラベルを追加したり、新しい言語を追加したりすることができます。 ラベルファイル拡張子には、FLM_Extensionのような
_extension
接尾語が付けられています。 - 列挙 (enum) - この
IsExtensible
プロパティが Trueに設定されている場合は、列挙を拡張して新しい値を追加することができます。 - 拡張データ型 (EDTs) - 文字列サイズを拡張可能が はいに設定されている場合に、拡張子を作成することによって、ラベル、文字列サイズ、ヘルプテキストなど、EDT のプロパティを変更することができます。
- テーブル - テーブルを拡張して、新しいフィールド、インデックス、またはリレーションを追加したり、テーブル要素やテーブルのプロパティを変更することができます。 テーブル メソッドの基本実装から呼び出されるイベント ハンドラーを実装することもできます。
- データ エンティティ - 基になるテーブル スキーマの非正規化バージョンを提供します。 データ エンティティは、テーブルのような多くの理由から拡張することができます。また、データソースを追加するために拡張することもできます。
- フォーム - 新しいデータ ソースを追加したり、新しいコントロールを追加したり、ラベル、ヘルプ テキスト、キャプションなどのプロパティを変更するために拡張することができます。 テーブルと同様に、フォーム メソッドの基本実装から呼び出されるイベント ハンドラーを実装することもできます。
- メニュー - 新しいメニュー項目、サブメニュー、またはメニュー参照を追加したり、これらの項目を非表示にするために、メイン メニューなどのメニューが拡張されます。 たとえば、新しいモジュールを作成した場合、メイン メニュー (ナビゲーション ウィンドウ) を拡張してそれにサブメニューを追加します。
多くの拡張機能が用意されていますが、拡張機能を使用して完了できないカスタマイズもあります。 これらのカスタマイズを行うには、ニーズを指定する Microsoft への要求をログに記録する必要があります。 これらの要求は、Lifecycle Services の特定のプロジェクトに記録されます。 関連する要求を同じプロジェクトに記録することによって、特定の実装に対するすべての要求が Microsoft に完全に表示されます。 Lifecycle Services プロジェクトでは、画面の上部のハンバーガー アイコンを選択し、サポートを選択して、ログ機能拡張要求を表示するか、新しい拡張要求を作成します。 これにより、機能拡張要求は、エンジニアが作業しているバックログに追加されます。 要求が過度に侵入的と見なされた場合は、シームレスなアップグレードを妨げる可能性があるため、その要求をサポートすることはできません。
侵入的なカスタマイズは、継続的なアップグレード費用をできるだけ低く抑えるための大きな障害の 1 つです。 コードをコンパイルすると、Visual Studio によって一部のタイプの侵入的なカスタマイズを防ぐことができますが、すべてが検出されるわけではありません。
過度に侵入的なカスタマイズを実行しないようにするには、次のガイドラインに従ってください。
- すべての参照を更新する必要がある破壊的変更であるために、タイプの定義を変更することはできません。 将来参照が正しく実装されることを保証するには、タイプの定義を変更する必要があります。
- モデルの作成者は、アプリケーションを改善するために、カプセル化されたコードやタイプを管理する必要があります。
- 新しい動作の追加は、拡張機能を使用して有効にすることをお勧めします。
- 拡張機能は、拡張のためにオープンなものとして設計する必要があります。また、同じインストールで左右に並べられている複数の拡張機能をサポートする必要があります。
一般的な用語で拡張機能を作成するには、次の手順を実行します。
- アプリケーション エクスプローラーウィンドウで、AOTノードを展開します。
- 拡張する要素のノードを展開します。 たとえば、クラシックビューでデータ モデル ノードを拡張し、テーブル ノードを拡張して、使用可能なすべてのテーブルを表示します。
- 拡張する要素を右クリックします。
- 現在のプロジェクトに拡張機能を追加するには、拡張の作成を選択します。 新しいプロジェクトに拡張機能を追加する場合は、新しいプロジェクトで拡張機能を作成するを選択します。 要素は、ソリューション エクスプローラー ウィンドウのプロジェクトに追加され、要素デザイナーで開きます。