MRが楽しい

MRやVRについて学習したことを書き残す

AWESOME-COPILOTのドキュメントを読む その59(Code Components for Model-Driven Apps)

本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つCode Components for Model-Driven Appsについてです。

Code Components for Model-Driven Apps

Code Components for Model-Driven AppsはModel-driven AppsでPCFコンポーネントを使用する際の開発・利用ルールをCopilotに教えるカスタムインストラクションです
Model-driven AppsはMicrosoft Power Apps(Power Platform)のアプリの種類の1つで、データモデル(Dataverse)を中心に自動的にUIやアプリを生成するビジネスアプリ作成方式です。

以下のページからCode Components for Model-Driven Appsのインストールボタンをクリックして取得します。
github.com

インストールボタンを押してCode Components for Model-Driven Appsをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、CopilotはModel-driven AppsでPCFコンポーネントを使う方法を理解した前提でコード生成・提案を行います。

具体的にはCopilotは以下のような行動をとります。

Model-driven Appsのアーキテクチャを前提にする

CopilotはPCFをModel-driven Appsのデータモデル中心の構造の中で使うことを前提に説明します。

アーキテクチャの主な要素は以下の通りです。

要素 役割
Dataverse データストレージ
Entity / Table データ構造
Form UI画面
PCF Control フィールドのUI拡張

つまりPCFはフォームのフィールド表示をカスタマイズするUIコンポーネントとして扱われます。

PCFコンポーネントをDataverseソリューションに追加

CopilotはPCFコンポーネントをソリューションとして管理する方法を前提に説明します。
以下の基本フローに従います。

  1. PCFコンポーネント作成
  2. build
  3. Dataverse solution に追加
  4. Power Apps 環境にインポート

Power Platform開発ではSolution管理が必須であることを前提に提案します。

フィールドコントロールとしての利用

Model-driven AppsではPCFコンポーネントはフォームフィールドのUIコントロールとして使われます。
Copilotは次のような用途を想定して提案します。

  • カスタム日付ピッカー
  • マップ表示
  • グラフ表示
  • リッチテキスト
  • 外部API表示

つまりDataverseフィールドを拡張するUIとして設計します。

PCFコントロールのバインディング

CopilotはPCFコンポーネントとDataverseフィールドのバインディングを前提にコードを提案します。
PCFはcontext.parametersを使ってDataverseデータを取得します。

UIとユーザー体験を重視

Model-driven Appsはビジネスアプリとして使われるため、Copilotは以下を考慮したUIコンポーネント設計を提案します。

  • Fluent UI
  • アクセシビリティ
  • レスポンシブ

パフォーマンスを考慮する

Copilotは以下のパフォーマンス最適化を提案します。

  • 不要なレンダリングを避ける
  • DOM操作最小化
  • 軽量UI

Dataverseセキュリティを考慮

Model-driven Appsでは以下のセキュリティで考慮すべき点があります。

  • ロールベースアクセス
  • フィールドセキュリティ
  • Dataverse 権限

CopilotはPCFコンポーネント設計時に以下を考慮した提案を行います。

  • 権限不足のケース
  • API 制限

PCFコンポーネントの開発ライフサイクル

CopilotはPCF開発の典型フローを理解した上で提案します。
基本的な開発手順は以下の通りになります。

  1. PCFプロジェクト作成
  2. TypeScript実装
  3. build
  4. solution package 作成
  5. Dataverse インポート
  6. フォームに配置

つまりPower Platform開発フロー全体を理解した回答になります。