💡 WPFアプリケーションのMVVM構造とディレクトリ構成ガイド

🧱 MVVMとは?

WPFでは「MVVM(Model-View-ViewModel)」パターンを使って、役割ごとにコードを分離することで、保守性・テスト性・再利用性を高めます。

コンポーネント 役割 詳細
Model データとビジネスロジック データ構造、DBアクセス、API処理など
View UI XAMLによる画面定義。見た目と表示に専念
ViewModel 状態と振る舞い ViewとModelの橋渡し。コマンド、状態、バインディングの管理

📁 推奨ディレクトリ構成

MyApp/
│
├── Models/           ← データ構造やロジック(例:User.cs)
├── ViewModels/       ← Viewに対応するViewModel(例:UserViewModel.cs)
├── Views/            ← XAML UI(例:UserView.xaml, UserView.xaml.cs)
├── Services/         ← API通信やDBアクセスなどの業務ロジック(例:UserService.cs)
├── Commands/         ← ICommandなどの共通ロジック(例:RelayCommand.cs)
├── Utils/            ← 再利用可能な補助ロジック(例:StringUtils.cs, DateTimeUtils.cs)
├── Extensions/       ← 拡張メソッドなど(例:StringExtensions.cs)
├── App.xaml          ← アプリケーションエントリポイント


🔁 Utilsディレクトリの使い方

📌 注意Utilsは他のレイヤーに依存しないように設計すること(逆はOK)

View → ViewModel → Model / Service → Utils(依存関係の一方向性を守る)


✅ なぜこの構造が重要か?