awesome-copilot/instructions/dotnet-maui.instructions_ja.md

4.2 KiB
Raw Blame History

description applyTo
.NET MAUIコンポーネントとアプリケーションパターン **/*.xaml, **/*.cs

.NET MAUI

.NET MAUIコードスタイルと構造

  • 慣用的で効率的な.NET MAUIとC#コードを書く。
  • .NETと.NET MAUI規約に従う。
  • 小さなコンポーネントにはインライン関数を好むが、複雑なロジックはコードビハインドやサービスクラスに分離する。
  • ンブロッキングUI操作を保証するため、該当する場所でAsync/awaitを使用する。

命名規則

  • コンポーネント名、メソッド名、パブリックメンバーにはPascalCaseに従う。
  • プライベートフィールドとローカル変数にはcamelCaseを使用する。
  • インターフェース名に"I"のプレフィックスを付けるIUserService

.NET MAUIと.NET固有のガイドライン

  • コンポーネントライフサイクルOnAppearing、OnDisappearingなどには.NET MAUIの組み込み機能を利用する。
  • {Binding}でデータバインディングを効果的に使用する。
  • 関心の分離に従って.NET MAUIコンポーネントとサービスを構造化する。
  • レコードタイプ、パターンマッチング、グローバルusingなど、現在のC# 13機能を含む最新バージョンのC#を常に使用する。

エラーハンドリングと検証

  • .NET MAUIページとAPI呼び出しに適切なエラーハンドリングを実装する。
  • バックエンドでエラー追跡にはログ機能を使用し、MAUI Community ToolkitのLoggerなどのツールでMAUIのUIレベルエラーをキャプチャすることを検討する。
  • フォームでFluentValidationまたはDataAnnotationsを使用して検証を実装する。

MAUI APIとパフォーマンス最適化

  • コンポーネントライフサイクルOnAppearing、OnDisappearingなどにはMAUIの組み込み機能を利用する。
  • メインスレッドをブロックする可能性のあるAPI呼び出しやUIアクションには非同期メソッドasync/awaitを使用する。
  • 不要なレンダリングを減らし、OnPropertyChanged()を効率的に使用してMAUIコンポーネントを最適化する。
  • 必要でない限り再レンダリングを避け、適切な場所でBatchBegin()とBatchCommit()を使用してコンポーネントレンダツリーを最小化する。

キャッシュ戦略

  • 特にMAUIアプリで、頻繁に使用されるデータにインメモリキャッシュを実装する。軽量キャッシュソリューションにはIMemoryCacheを使用する。
  • 複数のユーザーやクライアント間で共有状態が必要な大規模アプリケーションには、分散キャッシュ戦略RedisやSQL Server Cacheなどを検討する。
  • データが変更されにくい場合は応答を保存してAPI呼び出しをキャッシュし、冗長な呼び出しを避けることでユーザーエクスペリエンスを向上させる。

状態管理ライブラリ

  • コンポーネント間での状態共有には依存性注入と.NET MAUI Community Toolkitを使用する。

API設計と統合

  • 外部APIや独自のバックエンドとの通信にはHttpClientやその他の適切なサービスを使用する。
  • try-catchを使用してAPI呼び出しにエラーハンドリングを実装し、UIで適切なユーザーフィードバックを提供する。

テストとデバッグ

  • xUnit、NUnit、またはMSTestを使用してコンポーネントとサービスをテストする。
  • テスト中の依存関係モッキングにはMoqまたはNSubstituteを使用する。

セキュリティと認証

  • API認証にOAuthまたはJWTトークンを使用して、必要な場所でMAUIアプリに認証と認可を実装する。
  • すべてのWeb通信にHTTPSを使用し、適切なCORSポリシーが実装されていることを確認する。

APIドキュメントとSwagger

  • バックエンドAPIサービスのAPIドキュメントにはSwagger/OpenAPIを使用する。
  • Swaggerドキュメントの強化のため、モデルとAPIメソッドにXMLドキュメントを確保する。