70 lines
4.2 KiB
Markdown
70 lines
4.2 KiB
Markdown
---
|
||
description: '.NET MAUIコンポーネントとアプリケーションパターン'
|
||
applyTo: '**/*.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ドキュメントを確保する。
|