SPFxの車輪の再発明をやめる: すべてのDeveloperが使うべき5つの必須PnP Reactコントロール
By Mirko Peters ·
SPFxソリューションの車輪の再発明をやめる方法を解説します。PnP React Controlsと Microsoft 365 コミュニティコンポーネントが、エンタープライズ向けWebパーツの開発をどのように加速するかを学びましょう。
Automatically translated with AI from the original post. Read the English original
![Cover: Stop Reinventing SPFx- Building Better SharePoint Solutions with PnP React Controls with Siddharth Vaghasia [MVP]](https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/39e91285397053de371efe06eda2fa15.jpg)
ゼロからカスタムのSharePoint Frameworkソリューションを構築すると、貴重な時間とエンジニアリングのリソースが失われます。オープンソースのPnP React Controlsライブラリを活用すれば、開発者はピープルピッカーやファイルピッカーのような、本番環境で使えるMicrosoft 365対応コンポーネントを即座に組み込めます。これにより、モダンなWebパーツの提供が加速し、UIの一貫性も保たれます。
重要なポイント
- PnPエコシステムにすでに存在する標準機能に対して、カスタムコンポーネントを作成するのはやめましょう。
- SharePointとMicrosoft 365を認識するReactコントロールを使えば、コード量を大幅に削減できます。
- まずMicrosoftの標準機能を優先し、次にPnPコントロールを使用し、カスタムコードは最後の手段としてのみ書くようにしましょう。
- 次の5つの重要なコントロールを習得しましょう: ピープルピッカー、タクソノミーピッカー、リストビュー、ファイルピッカー、ライブペルソナ。
- コミュニティでテスト済みのUIエレメントを活用することで、アプリケーションのパフォーマンスと一貫性が向上します。
カスタムSharePoint開発に潜む見えないコスト
モダンなSharePoint Framework(SPFx)開発では、よく知られた落とし穴にはまりがちです。開発者はカスタムWebパーツの要件を受け取ると、新しいプロジェクトテンプレートを開き、標準的なインターフェイス要素のためにカスタムのTypeScript、CSS、API連携レイヤーを書き始めてしまいます。カスタムのユーザーピッカー、マネージドメタデータのドロップダウン、高度なファイルセレクターをゼロから作ると、綿密なコーディング、テスト、デバッグに数日から数週間かかります。
エンタープライズのソフトウェア開発において、このアプローチはほとんど不要であることが多いです。オープンソースのMicrosoft 365 Patterns and Practices(PnP)コミュニティは、SPFx開発者向けに特別に設計された、本番環境で使えるReactコンポーネントを長年にわたり構築、テスト、最適化してきました。優れた開発者は、クライアントプロジェクトごとに車輪を再発明するのではなく、コンポーネント優先の階層を採用します。まず標準のSharePoint機能を使い、次にMicrosoft Fluent UIやPnP React Controlsを使用し、独自のビジネスロジックが必要な場合にのみ完全にカスタムのコンポーネントを構築します。
すべてのSPFx開発者が知っておくべき5つのPnP React Controls
PnP React Controlsライブラリは、モダンなワークプレイス開発者向けに広範なツールキットを提供していますが、いくつかのコンポーネントが、エンタープライズにおける繰り返し発生する要件の大半を解決します。次のSPFxプロジェクトにこの5つのコントロールを組み込めば、開発時間を何時間も節約できるでしょう。
1. ピープルピッカー
ピープルピッカーは、社内イントラネット開発において、おそらく最も多くの要望が寄せられるコンポーネントです。タスクの割り当て、承認のルーティング、プロジェクトの関係者の表示のいずれの場合でも、Azure ADやMicrosoft Graphを手動で照会するには、検索のデバウンス、キャッシュ、非同期リクエスト、リッチなプロファイル表示を処理する必要があります。PnPピープルピッカーコントロールはこの複雑さを抽象化し、組織の境界とディレクトリのアクセス許可を自然に尊重する、すぐに使える検索インターフェイスを提供します。
2. タクソノミーピッカー
マネージド メタデータとエンタープライズ分類体系は、最新の SharePoint 情報アーキテクチャの土台となります。ツリービューや用語セットの選択インターフェイスを SharePoint Term Store とうまく連携させて作るのは、すぐに頭の痛い作業になりがちです。PnP Taxonomy Picker コントロールは、用語ストアのグループと用語セットに直接接続し、タクソノミー サービスのエンドポイントに対してカスタムの REST クエリ ロジックを書くことなく、直感的なドロップダウンまたはモーダルでの選択操作を提供します。
3. List View
表形式のデータを表示することは、業務アプリケーションにおいて常に求められる要件です。並べ替え、フィルター、ページング処理を備えた HTML テーブルを独自に作成する代わりに、PnP List View コントロールがデータを認識するリッチなグリッド体験を提供します。最新の SharePoint リスト インターフェイスの外観と操作感を再現するため、カスタム Web パーツを Microsoft 365 環境の他の部分にスムーズに溶け込ませることができ、フロントエンドのコードベースも大幅に削減できます。
4. File Picker
SharePoint ドキュメント ライブラリ、サイト コレクション、OneDrive、パブリック URL からユーザーがドキュメントを選択できるようにするには、複雑な非同期のピッカー API を扱う必要があります。PnP File Picker コントロールは、この複数ソースからの選択機能を 1 つのまとまったユーザー インターフェイス コンポーネントに統合します。ユーザーはファイルを簡単に参照、アップロード、選択でき、開発者はカスタムのモーダル ダイアログやファイル管理の処理を自分で書く必要がありません。
5. Live Persona
エンタープライズでのコラボレーションは、ユーザーのコンテキストによって効果が高まります。Live Persona コントロールを使うと、ユーザーのメールアドレスまたは ID を渡すだけで、在席状況インジケーター、連絡先情報、組織図、Teams チャットや Outlook メールなどの直接的なコミュニケーション リンクを備えたリッチなユーザー カードを表示できます。基本的なデータ テーブルやダッシュボードを、魅力的で対話的な Microsoft 365 の体験へと、すぐに引き上げることができます。
PnP によるより良いアプリケーションの設計
PnP React Controls を採用すると、SharePoint ソリューションの設計方法が変わります。SPFx Web パーツを独立した孤立したカスタム コードの島として扱う代わりに、開発者は、堅牢なコミュニティ コンポーネントを組み合わせることで、プロジェクト管理ダッシュボード、リソース割り当てツール、顧客ポータルといった複雑な業務アプリケーションを組み立てることができます。
これらのコントロールは SharePoint を本来的に理解しているため、認証トークン、Graph リクエスト、エラー状態を標準で確実に処理します。これによりバグが発生する可能性が大幅に減り、アクセシビリティ標準への準拠が確保され、将来の更新に備えてプロジェクトを整理された保守しやすい状態に保つことができます。
まとめ
スプリントのサイクルを、標準的な UI コンポーネントをゼロから作ることに費やすのはやめましょう。PnP React Controls ライブラリを採用すれば、本番環境で使える、高性能で洗練された SharePoint ソリューションを、はるかに短い時間で提供できます。モダンな SPFx アーキテクチャ、パフォーマンスのチューニング、コミュニティの専門的な戦略についてさらに深く知るには、Microsoft MVP の Siddharth Vaghasia 氏が出演する M365 FM Podcast のエピソード全編をお聴きください。
よくある質問
PnP React Controls とは何ですか?
PnP React Controls は、SPFx(SharePoint Framework)開発者がアプリケーション構築を加速できるように設計された、オープンソースでコミュニティ主導の、SharePoint と Microsoft 365 を認識するユーザー インターフェイス コンポーネントのコレクションです。
PnP コントロールは Fluent UI とどう違いますか?
Fluent UI は、標準的なボタンやテキスト フィールドなどの基本的なアトミック デザイン要素を提供しますが、PnP React Controls は、People Picker や Taxonomy Picker などの複雑な業務向けコンポーネントを提供します。これらは Microsoft 365 環境に必要なデータ取得ロジックが事前に組み込まれています。
PnP React Controls は本番環境で使用できますか?
はい。グローバルな Microsoft 365 Patterns and Practices コミュニティと Microsoft MVP によって積極的に保守されており、これらのコントロールは世界中の数千のエンタープライズ本番環境で使用されています。
PnP React Controls を使う場合でも PnPjs は必要ですか?
はい。PnPjs と PnP React Controls は互いに補完する役割を担っています。PnPjs は SharePoint と Microsoft Graph へのデータアクセスと API 呼び出しを簡素化し、PnP React Controls は、そのデータを表示または入力する UI コンポーネントを提供します。